diff --git a/.github/actions/setup-deps/action.yml b/.github/actions/setup-deps/action.yml new file mode 100644 index 00000000..5781f7ee --- /dev/null +++ b/.github/actions/setup-deps/action.yml @@ -0,0 +1,48 @@ +name: "Setup LLGO Dependencies" +description: "Install all required dependencies for LLGO" +inputs: + llvm-version: + description: "LLVM version to install" + required: true + default: "18" + +runs: + using: "composite" + steps: + - name: Install macOS dependencies + if: runner.os == 'macOS' + shell: bash + run: | + brew update + brew install llvm@${{inputs.llvm-version}} bdw-gc openssl libffi + brew link --force libffi + echo "$(brew --prefix llvm@${{inputs.llvm-version}})/bin" >> $GITHUB_PATH + + # Install optional deps for demos. + # + # NOTE: Keep this list updated as new deps are introduced. + opt_deps=( + cjson # for github.com/goplus/llgo/c/cjson + sqlite # for github.com/goplus/llgo/c/sqlite + python@3.12 # for github.com/goplus/llgo/py + ) + brew install "${opt_deps[@]}" + - name: Install Ubuntu dependencies + if: runner.os == 'Linux' + shell: bash + run: | + echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-${{inputs.llvm-version}} main" | sudo tee /etc/apt/sources.list.d/llvm.list + wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - + sudo apt-get update + sudo apt-get install -y llvm-${{inputs.llvm-version}}-dev clang-${{inputs.llvm-version}} libclang-${{inputs.llvm-version}}-dev lld-${{inputs.llvm-version}} pkg-config libgc-dev libssl-dev zlib1g-dev libffi-dev libcjson-dev libunwind-dev + echo "/usr/lib/llvm-${{inputs.llvm-version}}/bin" >> $GITHUB_PATH + + # Install optional deps for demos. + # + # NOTE: Keep this list updated as new deps are introduced. + opt_deps=( + libcjson-dev # for github.com/goplus/llgo/c/cjson + libsqlite3-dev # for github.com/goplus/llgo/c/sqlite + python3.12-dev # for github.com/goplus/llgo/py + ) + sudo apt-get install -y "${opt_deps[@]}" diff --git a/.github/actions/test-helloworld/action.yml b/.github/actions/test-helloworld/action.yml new file mode 100644 index 00000000..07b0f9fb --- /dev/null +++ b/.github/actions/test-helloworld/action.yml @@ -0,0 +1,35 @@ +name: 'Test Hello World' +description: 'Test Hello World with specific Go and module versions' +inputs: + go-version: + description: 'Go version being tested' + required: true + mod-version: + description: 'Go module version to use' + required: true +runs: + using: "composite" + steps: + - name: Test Hello World + shell: bash + run: | + echo "Testing with Go ${{ inputs.go-version }} and go.mod ${{ inputs.mod-version }}" + mkdir -p _test/helloworld && cd _test/helloworld + cat > go.mod << 'EOL' + module hello + go ${{ inputs.mod-version }} + EOL + cat > main.go << 'EOL' + package main + import ( + "fmt" + "github.com/goplus/llgo/c" + ) + func main() { + fmt.Println("Hello, LLGo!") + println("Hello, LLGo!") + c.Printf(c.Str("Hello, LLGo!\n")) + } + EOL + go mod tidy + llgo run . diff --git a/.github/ci-config/codecov.yml b/.github/ci-config/codecov.yml new file mode 100644 index 00000000..347eee08 --- /dev/null +++ b/.github/ci-config/codecov.yml @@ -0,0 +1,8 @@ +coverage: + ignore: + - "compiler/chore" + - "chore" + - "py" + - "x" + - "cpp" + - "runtime" diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index 594bb059..c10d1ee4 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -36,7 +36,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version: '1.20' + go-version: '1.23' - name: Install dependencies on macOS if: startsWith(matrix.os, 'macos') @@ -65,6 +65,7 @@ jobs: fi } source doc/_readme/scripts/install_llgo.sh + echo "LLGO_ROOT=$GITHUB_WORKSPACE" >> $GITHUB_ENV - name: Test doc code blocks run: | diff --git a/.github/workflows/fmt.yml b/.github/workflows/fmt.yml new file mode 100644 index 00000000..243bead5 --- /dev/null +++ b/.github/workflows/fmt.yml @@ -0,0 +1,30 @@ +name: Format Check + +on: + push: + branches: [ "**" ] + pull_request: + branches: [ "**" ] + +jobs: + fmt: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: '1.23' + + - name: Check formatting + run: | + for dir in . compiler runtime; do + pushd $dir + if [ -n "$(go fmt ./...)" ]; then + echo "Some files are not properly formatted. Please run 'go fmt ./...'" + exit 1 + fi + popd + done + echo "All files are properly formatted." diff --git a/.github/workflows/go.yml b/.github/workflows/go.yml index 8819e8ce..2d458e1c 100644 --- a/.github/workflows/go.yml +++ b/.github/workflows/go.yml @@ -10,23 +10,6 @@ on: branches: [ "**" ] jobs: - fmt: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Set up Go - uses: actions/setup-go@v5 - with: - go-version: '1.20' - - - name: Check formatting - run: | - if [ -n "$(go fmt ./...)" ]; then - echo "Some files are not properly formatted. Please run 'go fmt ./...'" - exit 1 - fi - test: strategy: matrix: @@ -35,54 +18,15 @@ jobs: - ubuntu-24.04 llvm: [18] runs-on: ${{matrix.os}} + defaults: + run: + working-directory: compiler steps: - uses: actions/checkout@v4 - - name: Install dependencies - if: startsWith(matrix.os, 'macos') - run: | - brew update - brew install llvm@${{matrix.llvm}} bdw-gc openssl libffi - brew link --force libffi - echo "$(brew --prefix llvm@${{matrix.llvm}})/bin" >> $GITHUB_PATH - - # Install optional deps for demos. - # - # NOTE: Keep this list updated as new deps are introduced. - opt_deps=( - cjson # for github.com/goplus/llgo/c/cjson - sqlite # for github.com/goplus/llgo/c/sqlite - python@3.12 # for github.com/goplus/llgo/py - ) - brew install "${opt_deps[@]}" - - - name: Install dependencies - if: startsWith(matrix.os, 'ubuntu') - run: | - echo "deb http://apt.llvm.org/$(lsb_release -cs)/ llvm-toolchain-$(lsb_release -cs)-${{matrix.llvm}} main" | sudo tee /etc/apt/sources.list.d/llvm.list - wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - - sudo apt-get update - sudo apt-get install -y llvm-${{matrix.llvm}}-dev clang-${{matrix.llvm}} libclang-${{matrix.llvm}}-dev lld-${{matrix.llvm}} pkg-config libgc-dev libssl-dev zlib1g-dev libffi-dev libcjson-dev libunwind-dev - echo "/usr/lib/llvm-${{matrix.llvm}}/bin" >> $GITHUB_PATH - - # Install optional deps for demos. - # - # NOTE: Keep this list updated as new deps are introduced. - opt_deps=( - libcjson-dev # for github.com/goplus/llgo/c/cjson - libsqlite3-dev # for github.com/goplus/llgo/c/sqlite - python3.12-dev # for github.com/goplus/llgo/py - ) - sudo apt-get install -y "${opt_deps[@]}" - - - name: Install further optional dependencies for demos - run: | - wget -P ./_demo/llama2-c https://huggingface.co/karpathy/tinyllamas/resolve/main/stories15M.bin - py_deps=( - numpy # for github.com/goplus/llgo/py/numpy - torch # for github.com/goplus/llgo/py/torch - ) - pip3.12 install --break-system-packages "${py_deps[@]}" + uses: ./.github/actions/setup-deps + with: + llvm-version: ${{matrix.llvm}} - name: Clang information run: | @@ -93,14 +37,11 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version: '1.20' + go-version: '1.23' - name: Build run: go build -v ./... - - name: Install - run: go install ./... - - name: Test if: ${{!startsWith(matrix.os, 'macos')}} run: go test -v ./... @@ -109,48 +50,9 @@ jobs: if: startsWith(matrix.os, 'macos') run: go test -v -coverprofile="coverage.txt" -covermode=atomic ./... - - name: LLGO tests - if: ${{!startsWith(matrix.os, 'ubuntu')}} - run: | - echo "Test result on ${{matrix.os}} with LLVM ${{matrix.llvm}}" > result.md - bash .github/workflows/test_llgo.sh - - - name: chore/_xtool build tests - run: | - cd chore/_xtool - llgo build -v ./... - - - name: LLDB tests - if: ${{startsWith(matrix.os, 'macos')}} - run: | - echo "Test lldb with llgo plugin on ${{matrix.os}} with LLVM ${{matrix.llvm}}" - bash _lldb/runtest.sh -v - - - name: Test demos - run: | - # TODO(lijie): force python3-embed to be linked with python-3.12-embed - # Currently, python3-embed is python-3.13-embed, doesn't work with pytorch - # Will remove this after pytorch is fixed. - pcdir=$HOME/pc - mkdir -p $pcdir - libdir=$(pkg-config --variable=libdir python-3.12-embed) - echo "libdir: $libdir" - ln -s $libdir/pkgconfig/python-3.12-embed.pc $pcdir/python3-embed.pc - export PKG_CONFIG_PATH=$pcdir - bash .github/workflows/test_demo.sh - - - name: Show test result - run: cat result.md - - - name: PR comment with test result - uses: thollander/actions-comment-pull-request@v3 - if: false - with: - filePath: result.md - comment_tag: test-result-on-${{matrix.os}}-with-llvm-${{matrix.llvm}} - - name: Upload coverage reports to Codecov uses: codecov/codecov-action@v5 with: token: ${{secrets.CODECOV_TOKEN}} slug: goplus/llgo + codecov_yml_path: .github/ci-config/codecov.yml diff --git a/.github/workflows/llgo.yml b/.github/workflows/llgo.yml new file mode 100644 index 00000000..e9722c5f --- /dev/null +++ b/.github/workflows/llgo.yml @@ -0,0 +1,145 @@ +# This workflow will build a golang project +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-go + +name: LLGo + +on: + push: + branches: [ "**" ] + pull_request: + branches: [ "**" ] + +jobs: + llgo-test: + strategy: + matrix: + os: + - macos-latest + - ubuntu-24.04 + llvm: [18] + go: ['1.20', '1.21', '1.22', '1.23'] + runs-on: ${{matrix.os}} + steps: + - uses: actions/checkout@v4 + - name: Install dependencies + uses: ./.github/actions/setup-deps + with: + llvm-version: ${{matrix.llvm}} + - name: Install further optional dependencies for demos + run: | + wget -P ./_demo/llama2-c https://huggingface.co/karpathy/tinyllamas/resolve/main/stories15M.bin + py_deps=( + numpy # for github.com/goplus/llgo/py/numpy + torch # for github.com/goplus/llgo/py/torch + ) + pip3.12 install --break-system-packages "${py_deps[@]}" + + - name: Set up Go for build + uses: actions/setup-go@v5 + with: + go-version: '1.23' + + - name: Install + working-directory: compiler + run: | + go install ./... + echo "LLGO_ROOT=$GITHUB_WORKSPACE" >> $GITHUB_ENV + + - name: Set up Go for testing + uses: actions/setup-go@v5 + with: + go-version: ${{matrix.go}} + + - name: Verify Go version + run: | + go_version=$(go version | cut -d' ' -f3 | sed 's/go//') + if [[ "$go_version" != "${{matrix.go}}"* ]]; then + echo "Expected Go version ${{matrix.go}}, but got $go_version" + exit 1 + fi + echo "Using Go version: $go_version" + + - name: _xtool build tests + run: | + cd _xtool + llgo build -v ./... + + - name: LLGO tests + if: ${{!startsWith(matrix.os, 'ubuntu')}} + run: | + echo "Test result on ${{matrix.os}} with LLVM ${{matrix.llvm}}" > result.md + bash ./.github/workflows/test_llgo.sh + + - name: Test demos + run: | + # TODO(lijie): force python3-embed to be linked with python-3.12-embed + # Currently, python3-embed is python-3.13-embed, doesn't work with pytorch + # Will remove this after pytorch is fixed. + pcdir=$HOME/pc + mkdir -p $pcdir + libdir=$(pkg-config --variable=libdir python-3.12-embed) + echo "libdir: $libdir" + ln -s $libdir/pkgconfig/python-3.12-embed.pc $pcdir/python3-embed.pc + export PKG_CONFIG_PATH=$pcdir + bash .github/workflows/test_demo.sh + + - name: Show test result + run: cat result.md + + - name: LLDB tests + if: ${{startsWith(matrix.os, 'macos')}} + working-directory: compiler + run: | + echo "Test lldb with llgo plugin on ${{matrix.os}} with LLVM ${{matrix.llvm}}" + bash _lldb/runtest.sh -v + + helloworld-test: + strategy: + matrix: + os: [ubuntu-24.04, macos-latest] + llvm: [18] + go: ['1.20', '1.21', '1.22', '1.23'] + runs-on: ${{matrix.os}} + steps: + - uses: actions/checkout@v4 + - name: Install dependencies + uses: ./.github/actions/setup-deps + with: + llvm-version: ${{matrix.llvm}} + + - name: Set up Go 1.23 for building llgo + uses: actions/setup-go@v5 + with: + go-version: '1.23' + + - name: Install llgo + working-directory: compiler + run: | + go install ./... + echo "LLGO_ROOT=$GITHUB_WORKSPACE" >> $GITHUB_ENV + + - name: Set up Go for testing + uses: actions/setup-go@v5 + with: + go-version: ${{matrix.go}} + + - name: Test Hello World with go.mod 1.20 + if: matrix.go == '1.20' || matrix.go == '1.21' || matrix.go == '1.22' || matrix.go == '1.23' + uses: ./.github/actions/test-helloworld + with: + go-version: ${{matrix.go}} + mod-version: '1.20' + + - name: Test Hello World with go.mod 1.21 + if: matrix.go == '1.21' || matrix.go == '1.22' || matrix.go == '1.23' + uses: ./.github/actions/test-helloworld + with: + go-version: ${{matrix.go}} + mod-version: '1.21' + + - name: Test Hello World with go.mod 1.22 + if: matrix.go == '1.22' || matrix.go == '1.23' + uses: ./.github/actions/test-helloworld + with: + go-version: ${{matrix.go}} + mod-version: '1.22' diff --git a/.github/workflows/release-build.yml b/.github/workflows/release-build.yml index 869c4fbd..ff249136 100644 --- a/.github/workflows/release-build.yml +++ b/.github/workflows/release-build.yml @@ -11,9 +11,18 @@ jobs: steps: - name: Check out code uses: actions/checkout@v4 + - name: Cache Darwin sysroot + id: cache-sysroot + uses: actions/cache@v3 + with: + path: | + .sysroot/darwin.tar.gz + key: darwin-sysroot-${{ runner.os }}-${{ hashFiles('.github/workflows/populate_darwin_sysroot.sh') }} - name: Populate Darwin sysroot + if: steps.cache-sysroot.outputs.cache-hit != 'true' run: bash .github/workflows/populate_darwin_sysroot.sh - name: Create Darwin sysroot tarball + if: steps.cache-sysroot.outputs.cache-hit != 'true' run: tar -czvf .sysroot/darwin.tar.gz -C .sysroot darwin - name: Upload Darwin sysroot tarball uses: actions/upload-artifact@v4 @@ -32,7 +41,7 @@ jobs: - name: Set up Go uses: actions/setup-go@v5 with: - go-version: 1.20.x + go-version: 1.23.x - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Download Darwin sysroot tarball diff --git a/.goreleaser.yaml b/.goreleaser.yaml index bd4efc18..0e9b8f0e 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -16,7 +16,9 @@ before: builds: - id: llgo-darwin-amd64 + dir: compiler main: ./cmd/llgo + binary: bin/llgo flags: - -tags=darwin,amd64,byollvm ldflags: @@ -32,7 +34,9 @@ builds: - darwin_amd64 mod_timestamp: "{{.CommitTimestamp}}" - id: llgo-darwin-arm64 + dir: compiler main: ./cmd/llgo + binary: bin/llgo flags: - -tags=darwin,arm64,byollvm ldflags: @@ -48,7 +52,9 @@ builds: - darwin_arm64 mod_timestamp: "{{.CommitTimestamp}}" - id: llgo-linux-amd64 + dir: compiler main: ./cmd/llgo + binary: bin/llgo flags: - -tags=linux,amd64,byollvm ldflags: @@ -64,7 +70,9 @@ builds: - linux_amd64 mod_timestamp: "{{.CommitTimestamp}}" - id: llgo-linux-arm64 + dir: compiler main: ./cmd/llgo + binary: bin/llgo flags: - -tags=linux,arm64,byollvm ldflags: @@ -88,6 +96,7 @@ archives: files: - LICENSE - README.md + - runtime checksum: name_template: "{{.ProjectName}}{{.Version}}.checksums.txt" diff --git a/README.md b/README.md index eb6f989d..ca01cbeb 100644 --- a/README.md +++ b/README.md @@ -413,10 +413,11 @@ How do I generate these tools? ```sh git clone https://github.com/goplus/llgo.git -cd llgo +cd llgo/compiler go install -v ./cmd/... go install -v ./chore/... # compile all tools except pydump -cd chore/_xtool +export LLGO_ROOT=$PWD/.. +cd ../_xtool llgo install ./... # compile pydump go install github.com/goplus/hdq/chore/pysigfetch@v0.8.1 # compile pysigfetch ``` diff --git a/_demo/cgobasic b/_demo/cgobasic deleted file mode 120000 index b6fb76ea..00000000 --- a/_demo/cgobasic +++ /dev/null @@ -1 +0,0 @@ -../cl/_testgo/cgobasic \ No newline at end of file diff --git a/_demo/cgocfiles b/_demo/cgocfiles deleted file mode 120000 index 9007fcee..00000000 --- a/_demo/cgocfiles +++ /dev/null @@ -1 +0,0 @@ -../cl/_testgo/cgocfiles \ No newline at end of file diff --git a/_demo/cgodefer b/_demo/cgodefer deleted file mode 120000 index d4396bb2..00000000 --- a/_demo/cgodefer +++ /dev/null @@ -1 +0,0 @@ -../cl/_testgo/cgodefer \ No newline at end of file diff --git a/_demo/cgofull b/_demo/cgofull deleted file mode 120000 index d01e01ff..00000000 --- a/_demo/cgofull +++ /dev/null @@ -1 +0,0 @@ -../cl/_testgo/cgofull \ No newline at end of file diff --git a/cl/_testgo/cgofull/bar.go b/_demo/cgofull/bar.go similarity index 100% rename from cl/_testgo/cgofull/bar.go rename to _demo/cgofull/bar.go diff --git a/cl/_testgo/cgofull/cgofull.go b/_demo/cgofull/cgofull.go similarity index 96% rename from cl/_testgo/cgofull/cgofull.go rename to _demo/cgofull/cgofull.go index 7d5fa45c..18fda6aa 100644 --- a/cl/_testgo/cgofull/cgofull.go +++ b/_demo/cgofull/cgofull.go @@ -106,8 +106,8 @@ import ( "fmt" "unsafe" - "github.com/goplus/llgo/cl/_testgo/cgofull/pymod1" - "github.com/goplus/llgo/cl/_testgo/cgofull/pymod2" + "github.com/goplus/llgo/_demo/cgofull/pymod1" + "github.com/goplus/llgo/_demo/cgofull/pymod2" ) //export go_callback_not_use_in_go diff --git a/cl/_testgo/cgofull/foo.c b/_demo/cgofull/foo.c similarity index 100% rename from cl/_testgo/cgofull/foo.c rename to _demo/cgofull/foo.c diff --git a/cl/_testgo/cgofull/foo.go b/_demo/cgofull/foo.go similarity index 100% rename from cl/_testgo/cgofull/foo.go rename to _demo/cgofull/foo.go diff --git a/cl/_testgo/cgofull/foo.h b/_demo/cgofull/foo.h similarity index 100% rename from cl/_testgo/cgofull/foo.h rename to _demo/cgofull/foo.h diff --git a/cl/_testgo/cgofull/py.go b/_demo/cgofull/py.go similarity index 100% rename from cl/_testgo/cgofull/py.go rename to _demo/cgofull/py.go diff --git a/cl/_testgo/cgofull/pymod1/pymod1.go b/_demo/cgofull/pymod1/pymod1.go similarity index 100% rename from cl/_testgo/cgofull/pymod1/pymod1.go rename to _demo/cgofull/pymod1/pymod1.go diff --git a/cl/_testgo/cgofull/pymod2/pymod2.go b/_demo/cgofull/pymod2/pymod2.go similarity index 100% rename from cl/_testgo/cgofull/pymod2/pymod2.go rename to _demo/cgofull/pymod2/pymod2.go diff --git a/_demo/cgomacro b/_demo/cgomacro deleted file mode 120000 index 59e0ab5b..00000000 --- a/_demo/cgomacro +++ /dev/null @@ -1 +0,0 @@ -../cl/_testgo/cgomacro \ No newline at end of file diff --git a/_demo/cgopython b/_demo/cgopython deleted file mode 120000 index 1176ad29..00000000 --- a/_demo/cgopython +++ /dev/null @@ -1 +0,0 @@ -../cl/_testgo/cgopython \ No newline at end of file diff --git a/_demo/reflectfunc/reflectfunc.go b/_demo/reflectfunc/reflectfunc.go index 43308873..843c02ab 100644 --- a/_demo/reflectfunc/reflectfunc.go +++ b/_demo/reflectfunc/reflectfunc.go @@ -22,6 +22,8 @@ func main() { println("closure", i) } } + // TODO(lijie): WORKAROUND for reflect problem on go1.23 + _ = any(reflect.Value{}) fns := []any{add, fn, fn1, fn2} for _, fn := range fns { v := reflect.ValueOf(fn) diff --git a/chore/_xtool/astdump/astdump.cpp b/_xtool/astdump/astdump.cpp similarity index 100% rename from chore/_xtool/astdump/astdump.cpp rename to _xtool/astdump/astdump.cpp diff --git a/chore/_xtool/astdump/build.sh b/_xtool/astdump/build.sh similarity index 100% rename from chore/_xtool/astdump/build.sh rename to _xtool/astdump/build.sh diff --git a/chore/_xtool/castdump/castdump.go b/_xtool/castdump/castdump.go similarity index 100% rename from chore/_xtool/castdump/castdump.go rename to _xtool/castdump/castdump.go diff --git a/chore/_xtool/pydump/pydump.go b/_xtool/pydump/pydump.go similarity index 100% rename from chore/_xtool/pydump/pydump.go rename to _xtool/pydump/pydump.go diff --git a/c/clang/_demo/inclusion/inclusion.go b/c/clang/_demo/inclusion/inclusion.go index c2599701..d9f55375 100644 --- a/c/clang/_demo/inclusion/inclusion.go +++ b/c/clang/_demo/inclusion/inclusion.go @@ -5,7 +5,7 @@ import ( "github.com/goplus/llgo/c" "github.com/goplus/llgo/c/clang" - "github.com/goplus/llgo/chore/_xtool/llcppsymg/clangutils" + "github.com/goplus/llgo/compiler/chore/_xtool/llcppsymg/clangutils" ) func main() { diff --git a/cl/_testdata/apkg/out.ll b/cl/_testdata/apkg/out.ll deleted file mode 100644 index adaa6e28..00000000 --- a/cl/_testdata/apkg/out.ll +++ /dev/null @@ -1,29 +0,0 @@ -; ModuleID = 'github.com/goplus/llgo/cl/_testdata/apkg' -source_filename = "github.com/goplus/llgo/cl/_testdata/apkg" - -@"github.com/goplus/llgo/cl/_testdata/apkg.init$guard" = global i1 false, align 1 - -define double @"github.com/goplus/llgo/cl/_testdata/apkg.Max"(double %0, double %1) { -_llgo_0: - %2 = fcmp ogt double %0, %1 - br i1 %2, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - ret double %0 - -_llgo_2: ; preds = %_llgo_0 - ret double %1 -} - -define void @"github.com/goplus/llgo/cl/_testdata/apkg.init"() { -_llgo_0: - %0 = load i1, ptr @"github.com/goplus/llgo/cl/_testdata/apkg.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"github.com/goplus/llgo/cl/_testdata/apkg.init$guard", align 1 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} diff --git a/cl/_testdata/llgotag/out.ll b/cl/_testdata/llgotag/out.ll deleted file mode 100644 index 568edce1..00000000 --- a/cl/_testdata/llgotag/out.ll +++ /dev/null @@ -1,22 +0,0 @@ -; ModuleID = 'github.com/goplus/llgo/cl/_testdata/llgotag' -source_filename = "github.com/goplus/llgo/cl/_testdata/llgotag" - -@"github.com/goplus/llgo/cl/_testdata/llgotag.init$guard" = global i1 false, align 1 - -define void @"github.com/goplus/llgo/cl/_testdata/llgotag.Foo"() { -_llgo_0: - ret void -} - -define void @"github.com/goplus/llgo/cl/_testdata/llgotag.init"() { -_llgo_0: - %0 = load i1, ptr @"github.com/goplus/llgo/cl/_testdata/llgotag.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"github.com/goplus/llgo/cl/_testdata/llgotag.init$guard", align 1 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} diff --git a/cl/_testdata/vargs/out.ll b/cl/_testdata/vargs/out.ll deleted file mode 100644 index 677f92eb..00000000 --- a/cl/_testdata/vargs/out.ll +++ /dev/null @@ -1,140 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@_llgo_int = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1 -@1 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 -@_llgo_string = linkonce global ptr null, align 8 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 48) - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %2, i64 0 - %4 = load ptr, ptr @_llgo_int, align 8 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %5, ptr inttoptr (i64 1 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %3, align 8 - %7 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %2, i64 1 - %8 = load ptr, ptr @_llgo_int, align 8 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %8, 0 - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %9, ptr inttoptr (i64 2 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %10, ptr %7, align 8 - %11 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %2, i64 2 - %12 = load ptr, ptr @_llgo_int, align 8 - %13 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %12, 0 - %14 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %13, ptr inttoptr (i64 3 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %14, ptr %11, align 8 - %15 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %2, 0 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %15, i64 3, 1 - %17 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %16, i64 3, 2 - call void @main.test(%"github.com/goplus/llgo/internal/runtime.Slice" %17) - ret i32 0 -} - -define void @main.test(%"github.com/goplus/llgo/internal/runtime.Slice" %0) { -_llgo_0: - %1 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 1 - br label %_llgo_1 - -_llgo_1: ; preds = %_llgo_4, %_llgo_0 - %2 = phi i64 [ -1, %_llgo_0 ], [ %3, %_llgo_4 ] - %3 = add i64 %2, 1 - %4 = icmp slt i64 %3, %1 - br i1 %4, label %_llgo_2, label %_llgo_3 - -_llgo_2: ; preds = %_llgo_1 - %5 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 0 - %6 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 1 - %7 = icmp slt i64 %3, 0 - %8 = icmp sge i64 %3, %6 - %9 = or i1 %8, %7 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %9) - %10 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %5, i64 %3 - %11 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %10, align 8 - %12 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %11, 0 - %13 = load ptr, ptr @_llgo_int, align 8 - %14 = icmp eq ptr %12, %13 - br i1 %14, label %_llgo_4, label %_llgo_5 - -_llgo_3: ; preds = %_llgo_1 - ret void - -_llgo_4: ; preds = %_llgo_2 - %15 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %11, 1 - %16 = ptrtoint ptr %15 to i64 - %17 = call i32 (ptr, ...) @printf(ptr @0, i64 %16) - br label %_llgo_1 - -_llgo_5: ; preds = %_llgo_2 - %18 = load ptr, ptr @_llgo_string, align 8 - %19 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 21 }, ptr %19, align 8 - %20 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %18, 0 - %21 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %20, ptr %19, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %21) - unreachable -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -define void @"main.init$after"() { -_llgo_0: - %0 = load ptr, ptr @_llgo_int, align 8 - %1 = icmp eq ptr %0, null - br i1 %1, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %2, ptr @_llgo_int, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @_llgo_string, align 8 - %4 = icmp eq ptr %3, null - br i1 %4, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %5, ptr @_llgo_string, align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") - -declare i32 @printf(ptr, ...) diff --git a/cl/_testgo/allocinloop/out.ll b/cl/_testgo/allocinloop/out.ll deleted file mode 100644 index 99783ff3..00000000 --- a/cl/_testgo/allocinloop/out.ll +++ /dev/null @@ -1,66 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } - -@"main.init$guard" = global i1 false, align 1 -@0 = private unnamed_addr constant [5 x i8] c"hello", align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 - -define i64 @main.Foo(%"github.com/goplus/llgo/internal/runtime.String" %0) { -_llgo_0: - %1 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %0, 1 - ret i64 %1 -} - -define void @main.Test() { -_llgo_0: - br label %_llgo_3 - -_llgo_1: ; preds = %_llgo_3 - %0 = call i64 @main.Foo(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }) - %1 = add i64 %3, %0 - %2 = add i64 %4, 1 - br label %_llgo_3 - -_llgo_2: ; preds = %_llgo_3 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void - -_llgo_3: ; preds = %_llgo_1, %_llgo_0 - %3 = phi i64 [ 0, %_llgo_0 ], [ %1, %_llgo_1 ] - %4 = phi i64 [ 0, %_llgo_0 ], [ %2, %_llgo_1 ] - %5 = icmp slt i64 %4, 10000000 - br i1 %5, label %_llgo_1, label %_llgo_2 -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - call void @main.Test() - ret i32 0 -} - -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.init"() diff --git a/cl/_testgo/cgobasic/out.ll b/cl/_testgo/cgobasic/out.ll deleted file mode 100644 index 2598de4f..00000000 --- a/cl/_testgo/cgobasic/out.ll +++ /dev/null @@ -1,404 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } - -@"github.com/goplus/llgo/internal/runtime.cgoAlwaysFalse" = external global i1, align 1 -@_cgo_62905c3ec377_Cfunc__Cmalloc = external global i8, align 1 -@_cgo_62905c3ec377_Cfunc_cos = external global i8, align 1 -@_cgo_62905c3ec377_Cfunc_free = external global i8, align 1 -@_cgo_62905c3ec377_Cfunc_log = external global i8, align 1 -@_cgo_62905c3ec377_Cfunc_puts = external global i8, align 1 -@_cgo_62905c3ec377_Cfunc_sin = external global i8, align 1 -@_cgo_62905c3ec377_Cfunc_sqrt = external global i8, align 1 -@main._cgo_62905c3ec377_Cfunc__Cmalloc = global ptr null, align 8 -@main._cgo_62905c3ec377_Cfunc_cos = global ptr null, align 8 -@main._cgo_62905c3ec377_Cfunc_free = global ptr null, align 8 -@main._cgo_62905c3ec377_Cfunc_log = global ptr null, align 8 -@main._cgo_62905c3ec377_Cfunc_puts = global ptr null, align 8 -@main._cgo_62905c3ec377_Cfunc_sin = global ptr null, align 8 -@main._cgo_62905c3ec377_Cfunc_sqrt = global ptr null, align 8 -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [13 x i8] c"Hello, World!", align 1 -@1 = private unnamed_addr constant [29 x i8] c"Converted back to Go string: ", align 1 -@2 = private unnamed_addr constant [23 x i8] c"Length-limited string: ", align 1 -@3 = private unnamed_addr constant [33 x i8] c"Converted back to Go byte slice: ", align 1 -@_llgo_float64 = linkonce global ptr null, align 8 -@4 = private unnamed_addr constant [14 x i8] c"sqrt(%v) = %v\0A", align 1 -@5 = private unnamed_addr constant [13 x i8] c"sin(%v) = %v\0A", align 1 -@6 = private unnamed_addr constant [13 x i8] c"cos(%v) = %v\0A", align 1 -@7 = private unnamed_addr constant [13 x i8] c"log(%v) = %v\0A", align 1 -@_llgo_byte = linkonce global ptr null, align 8 -@"[]_llgo_byte" = linkonce global ptr null, align 8 -@_llgo_Pointer = linkonce global ptr null, align 8 - -define double @main._Cfunc_cos(double %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %2 = load ptr, ptr @main._cgo_62905c3ec377_Cfunc_cos, align 8 - %3 = load ptr, ptr %2, align 8 - %4 = call double %3(double %0) - ret double %4 -} - -define [0 x i8] @main._Cfunc_free(ptr %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %2 = load ptr, ptr @main._cgo_62905c3ec377_Cfunc_free, align 8 - %3 = load ptr, ptr %2, align 8 - %4 = call [0 x i8] %3(ptr %0) - ret [0 x i8] %4 -} - -define double @main._Cfunc_log(double %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %2 = load ptr, ptr @main._cgo_62905c3ec377_Cfunc_log, align 8 - %3 = load ptr, ptr %2, align 8 - %4 = call double %3(double %0) - ret double %4 -} - -define i32 @main._Cfunc_puts(ptr %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %2 = load ptr, ptr @main._cgo_62905c3ec377_Cfunc_puts, align 8 - %3 = load ptr, ptr %2, align 8 - %4 = call i32 %3(ptr %0) - ret i32 %4 -} - -define double @main._Cfunc_sin(double %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %2 = load ptr, ptr @main._cgo_62905c3ec377_Cfunc_sin, align 8 - %3 = load ptr, ptr %2, align 8 - %4 = call double %3(double %0) - ret double %4 -} - -define double @main._Cfunc_sqrt(double %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %2 = load ptr, ptr @main._cgo_62905c3ec377_Cfunc_sqrt, align 8 - %3 = load ptr, ptr %2, align 8 - %4 = call double %3(double %0) - ret double %4 -} - -define ptr @main._Cgo_ptr(ptr %0) { -_llgo_0: - ret ptr %0 -} - -declare void @runtime.cgoUse(%"github.com/goplus/llgo/internal/runtime.eface") - -declare void @runtime.cgoCheckResult(%"github.com/goplus/llgo/internal/runtime.eface") - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @syscall.init() - call void @fmt.init() - call void @"main.init$after"() - store ptr @_cgo_62905c3ec377_Cfunc_cos, ptr @main._cgo_62905c3ec377_Cfunc_cos, align 8 - store ptr @_cgo_62905c3ec377_Cfunc_free, ptr @main._cgo_62905c3ec377_Cfunc_free, align 8 - store ptr @_cgo_62905c3ec377_Cfunc_log, ptr @main._cgo_62905c3ec377_Cfunc_log, align 8 - store ptr @_cgo_62905c3ec377_Cfunc_puts, ptr @main._cgo_62905c3ec377_Cfunc_puts, align 8 - store ptr @_cgo_62905c3ec377_Cfunc_sin, ptr @main._cgo_62905c3ec377_Cfunc_sin, align 8 - store ptr @_cgo_62905c3ec377_Cfunc_sqrt, ptr @main._cgo_62905c3ec377_Cfunc_sqrt, align 8 - store ptr @_cgo_62905c3ec377_Cfunc__Cmalloc, ptr @main._cgo_62905c3ec377_Cfunc__Cmalloc, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.CString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 13 }) - store ptr %3, ptr %2, align 8 - %4 = load ptr, ptr %2, align 8 - %5 = call i32 @main._Cfunc_puts(ptr %4) - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 4) - %8 = getelementptr inbounds i8, ptr %7, i64 0 - store i8 65, ptr %8, align 1 - %9 = getelementptr inbounds i8, ptr %7, i64 1 - store i8 66, ptr %9, align 1 - %10 = getelementptr inbounds i8, ptr %7, i64 2 - store i8 67, ptr %10, align 1 - %11 = getelementptr inbounds i8, ptr %7, i64 3 - store i8 68, ptr %11, align 1 - %12 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %7, 0 - %13 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %12, i64 4, 1 - %14 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %13, i64 4, 2 - store %"github.com/goplus/llgo/internal/runtime.Slice" %14, ptr %6, align 8 - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %16 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %17 = getelementptr inbounds { ptr }, ptr %16, i32 0, i32 0 - store ptr %6, ptr %17, align 8 - %18 = insertvalue { ptr, ptr } { ptr @"main.main$1", ptr undef }, ptr %16, 1 - %19 = extractvalue { ptr, ptr } %18, 1 - %20 = extractvalue { ptr, ptr } %18, 0 - %21 = call ptr %20(ptr %19) - store ptr %21, ptr %15, align 8 - %22 = load ptr, ptr %2, align 8 - %23 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.GoString"(ptr %22) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 29 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %23) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %24 = load ptr, ptr %2, align 8 - %25 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.GoStringN"(ptr %24, i32 5) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 23 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %25) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %26 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %27 = getelementptr inbounds { ptr }, ptr %26, i32 0, i32 0 - store ptr %15, ptr %27, align 8 - %28 = insertvalue { ptr, ptr } { ptr @"main.main$2", ptr undef }, ptr %26, 1 - %29 = extractvalue { ptr, ptr } %28, 1 - %30 = extractvalue { ptr, ptr } %28, 0 - %31 = call %"github.com/goplus/llgo/internal/runtime.Slice" %30(ptr %29) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 33 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/internal/runtime.Slice" %31) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %32 = call double @main._Cfunc_sqrt(double 2.000000e+00) - %33 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 32) - %34 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %33, i64 0 - %35 = load ptr, ptr @_llgo_float64, align 8 - %36 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %35, 0 - %37 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %36, ptr inttoptr (i64 4611686018427387904 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %37, ptr %34, align 8 - %38 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %33, i64 1 - %39 = load ptr, ptr @_llgo_float64, align 8 - %40 = bitcast double %32 to i64 - %41 = inttoptr i64 %40 to ptr - %42 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %39, 0 - %43 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %42, ptr %41, 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %43, ptr %38, align 8 - %44 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %33, 0 - %45 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %44, i64 2, 1 - %46 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %45, i64 2, 2 - %47 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @fmt.Printf(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 14 }, %"github.com/goplus/llgo/internal/runtime.Slice" %46) - %48 = call double @main._Cfunc_sin(double 2.000000e+00) - %49 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 32) - %50 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %49, i64 0 - %51 = load ptr, ptr @_llgo_float64, align 8 - %52 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %51, 0 - %53 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %52, ptr inttoptr (i64 4611686018427387904 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %53, ptr %50, align 8 - %54 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %49, i64 1 - %55 = load ptr, ptr @_llgo_float64, align 8 - %56 = bitcast double %48 to i64 - %57 = inttoptr i64 %56 to ptr - %58 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %55, 0 - %59 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %58, ptr %57, 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %59, ptr %54, align 8 - %60 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %49, 0 - %61 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %60, i64 2, 1 - %62 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %61, i64 2, 2 - %63 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @fmt.Printf(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 13 }, %"github.com/goplus/llgo/internal/runtime.Slice" %62) - %64 = call double @main._Cfunc_cos(double 2.000000e+00) - %65 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 32) - %66 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %65, i64 0 - %67 = load ptr, ptr @_llgo_float64, align 8 - %68 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %67, 0 - %69 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %68, ptr inttoptr (i64 4611686018427387904 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %69, ptr %66, align 8 - %70 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %65, i64 1 - %71 = load ptr, ptr @_llgo_float64, align 8 - %72 = bitcast double %64 to i64 - %73 = inttoptr i64 %72 to ptr - %74 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %71, 0 - %75 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %74, ptr %73, 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %75, ptr %70, align 8 - %76 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %65, 0 - %77 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %76, i64 2, 1 - %78 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %77, i64 2, 2 - %79 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @fmt.Printf(%"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 13 }, %"github.com/goplus/llgo/internal/runtime.Slice" %78) - %80 = call double @main._Cfunc_log(double 2.000000e+00) - %81 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 32) - %82 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %81, i64 0 - %83 = load ptr, ptr @_llgo_float64, align 8 - %84 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %83, 0 - %85 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %84, ptr inttoptr (i64 4611686018427387904 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %85, ptr %82, align 8 - %86 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %81, i64 1 - %87 = load ptr, ptr @_llgo_float64, align 8 - %88 = bitcast double %80 to i64 - %89 = inttoptr i64 %88 to ptr - %90 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %87, 0 - %91 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %90, ptr %89, 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %91, ptr %86, align 8 - %92 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %81, 0 - %93 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %92, i64 2, 1 - %94 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %93, i64 2, 2 - %95 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @fmt.Printf(%"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 13 }, %"github.com/goplus/llgo/internal/runtime.Slice" %94) - %96 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %97 = getelementptr inbounds { ptr }, ptr %96, i32 0, i32 0 - store ptr %2, ptr %97, align 8 - %98 = insertvalue { ptr, ptr } { ptr @"main.main$3", ptr undef }, ptr %96, 1 - %99 = extractvalue { ptr, ptr } %98, 1 - %100 = extractvalue { ptr, ptr } %98, 0 - call void %100(ptr %99) - %101 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %102 = getelementptr inbounds { ptr }, ptr %101, i32 0, i32 0 - store ptr %15, ptr %102, align 8 - %103 = insertvalue { ptr, ptr } { ptr @"main.main$4", ptr undef }, ptr %101, 1 - %104 = extractvalue { ptr, ptr } %103, 1 - %105 = extractvalue { ptr, ptr } %103, 0 - call void %105(ptr %104) - ret i32 0 -} - -define ptr @"main.main$1"(ptr %0) { -_llgo_0: - %1 = load { ptr }, ptr %0, align 8 - %2 = extractvalue { ptr } %1, 0 - %3 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2, align 8 - %4 = load ptr, ptr @_llgo_byte, align 8 - %5 = load ptr, ptr @"[]_llgo_byte", align 8 - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - store %"github.com/goplus/llgo/internal/runtime.Slice" %3, ptr %6, align 8 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %5, 0 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %7, ptr %6, 1 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.CBytes"(%"github.com/goplus/llgo/internal/runtime.Slice" %3) - ret ptr %9 -} - -define %"github.com/goplus/llgo/internal/runtime.Slice" @"main.main$2"(ptr %0) { -_llgo_0: - %1 = load { ptr }, ptr %0, align 8 - %2 = extractvalue { ptr } %1, 0 - %3 = load ptr, ptr %2, align 8 - %4 = load ptr, ptr @_llgo_Pointer, align 8 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %5, ptr %3, 1 - %7 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.GoBytes"(ptr %3, i32 4) - ret %"github.com/goplus/llgo/internal/runtime.Slice" %7 -} - -define void @"main.main$3"(ptr %0) { -_llgo_0: - %1 = load { ptr }, ptr %0, align 8 - %2 = extractvalue { ptr } %1, 0 - %3 = load ptr, ptr %2, align 8 - %4 = load ptr, ptr @_llgo_Pointer, align 8 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %5, ptr %3, 1 - %7 = call [0 x i8] @main._Cfunc_free(ptr %3) - ret void -} - -define void @"main.main$4"(ptr %0) { -_llgo_0: - %1 = load { ptr }, ptr %0, align 8 - %2 = extractvalue { ptr } %1, 0 - %3 = load ptr, ptr %2, align 8 - %4 = load ptr, ptr @_llgo_Pointer, align 8 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %5, ptr %3, 1 - %7 = call [0 x i8] @main._Cfunc_free(ptr %3) - ret void -} - -declare void @runtime.throw(%"github.com/goplus/llgo/internal/runtime.String") - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare void @syscall.init() - -declare void @fmt.init() - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.CString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.GoString"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.GoStringN"(ptr, i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/internal/runtime.Slice") - -define void @"main.init$after"() { -_llgo_0: - %0 = load ptr, ptr @_llgo_float64, align 8 - %1 = icmp eq ptr %0, null - br i1 %1, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 46) - store ptr %2, ptr @_llgo_float64, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @_llgo_byte, align 8 - %4 = icmp eq ptr %3, null - br i1 %4, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - store ptr %5, ptr @_llgo_byte, align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %6 = load ptr, ptr @"[]_llgo_byte", align 8 - %7 = icmp eq ptr %6, null - br i1 %7, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %8) - store ptr %9, ptr @"[]_llgo_byte", align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %10 = load ptr, ptr @_llgo_Pointer, align 8 - %11 = icmp eq ptr %10, null - br i1 %11, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %12) - store ptr %12, ptr @_llgo_Pointer, align 8 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @fmt.Printf(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.CBytes"(%"github.com/goplus/llgo/internal/runtime.Slice") - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.GoBytes"(ptr, i64) diff --git a/cl/_testgo/closure/out.ll b/cl/_testgo/closure/out.ll deleted file mode 100644 index 0d848b5e..00000000 --- a/cl/_testgo/closure/out.ll +++ /dev/null @@ -1,88 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%main.T = type { ptr, ptr } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [3 x i8] c"env", align 1 -@1 = private unnamed_addr constant [4 x i8] c"func", align 1 -@2 = private unnamed_addr constant [7 x i8] c"closure", align 1 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 3 }, ptr %2, align 8 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %4 = getelementptr inbounds { ptr }, ptr %3, i32 0, i32 0 - store ptr %2, ptr %4, align 8 - %5 = insertvalue { ptr, ptr } { ptr @"main.main$2", ptr undef }, ptr %3, 1 - %6 = alloca %main.T, align 8 - store { ptr, ptr } %5, ptr %6, align 8 - %7 = load %main.T, ptr %6, align 8 - call void @"__llgo_stub.main.main$1"(ptr null, i64 100) - %8 = extractvalue %main.T %7, 1 - %9 = extractvalue %main.T %7, 0 - call void %9(ptr %8, i64 200) - ret i32 0 -} - -define void @"main.main$1"(i64 %0) { -_llgo_0: - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %0) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -define void @"main.main$2"(ptr %0, i64 %1) { -_llgo_0: - %2 = load { ptr }, ptr %0, align 8 - %3 = extractvalue { ptr } %2, 0 - %4 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %3, align 8 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 7 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %1) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %4) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -define linkonce void @"__llgo_stub.main.main$1"(ptr %0, i64 %1) { -_llgo_0: - tail call void @"main.main$1"(i64 %1) - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) diff --git a/cl/_testgo/constconv/out.ll b/cl/_testgo/constconv/out.ll deleted file mode 100644 index 42419715..00000000 --- a/cl/_testgo/constconv/out.ll +++ /dev/null @@ -1,44 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 1) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 1) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 11) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 11) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) diff --git a/cl/_testgo/equal/out.ll b/cl/_testgo/equal/out.ll deleted file mode 100644 index acc08baa..00000000 --- a/cl/_testgo/equal/out.ll +++ /dev/null @@ -1,649 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%main.T = type { i64, i64, %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.eface" } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%main.N = type {} -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } - -@"main.init$guard" = global i1 false, align 1 -@0 = private unnamed_addr constant [6 x i8] c"failed", align 1 -@_llgo_string = linkonce global ptr null, align 8 -@1 = private unnamed_addr constant [5 x i8] c"hello", align 1 -@_llgo_int = linkonce global ptr null, align 8 -@2 = private unnamed_addr constant [2 x i8] c"ok", align 1 -@"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw" = linkonce global ptr null, align 8 -@3 = private unnamed_addr constant [4 x i8] c"main", align 1 -@_llgo_main.T = linkonce global ptr null, align 8 -@4 = private unnamed_addr constant [1 x i8] c"T", align 1 -@_llgo_any = linkonce global ptr null, align 8 -@"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk" = linkonce global ptr null, align 8 -@5 = private unnamed_addr constant [1 x i8] c"X", align 1 -@6 = private unnamed_addr constant [1 x i8] c"Y", align 1 -@7 = private unnamed_addr constant [1 x i8] c"Z", align 1 -@8 = private unnamed_addr constant [1 x i8] c"V", align 1 -@_llgo_main.N = linkonce global ptr null, align 8 -@9 = private unnamed_addr constant [1 x i8] c"N", align 1 -@"map[_llgo_int]_llgo_string" = linkonce global ptr null, align 8 -@10 = private unnamed_addr constant [7 x i8] c"topbits", align 1 -@11 = private unnamed_addr constant [4 x i8] c"keys", align 1 -@12 = private unnamed_addr constant [5 x i8] c"elems", align 1 -@13 = private unnamed_addr constant [8 x i8] c"overflow", align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 - -define void @main.assert(i1 %0) { -_llgo_0: - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - %1 = load ptr, ptr @_llgo_string, align 8 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 6 }, ptr %2, align 8 - %3 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %1, 0 - %4 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %3, ptr %2, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %4) - unreachable - -_llgo_2: ; preds = %_llgo_0 - ret void -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - call void @"main.init#1"() - call void @"main.init#2"() - call void @"main.init#3"() - call void @"main.init#4"() - call void @"main.init#5"() - call void @"main.init#6"() - call void @"main.init#7"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define void @"main.init#1"() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %2 = getelementptr inbounds { ptr }, ptr %1, i32 0, i32 0 - store ptr %0, ptr %2, align 8 - %3 = insertvalue { ptr, ptr } { ptr @"main.init#1$2", ptr undef }, ptr %1, 1 - call void @main.assert(i1 true) - call void @main.assert(i1 true) - call void @main.assert(i1 true) - call void @main.assert(i1 true) - call void @main.assert(i1 true) - call void @main.assert(i1 true) - %4 = extractvalue { ptr, ptr } %3, 0 - %5 = icmp ne ptr %4, null - call void @main.assert(i1 %5) - %6 = extractvalue { ptr, ptr } %3, 0 - %7 = icmp ne ptr null, %6 - call void @main.assert(i1 %7) - call void @main.assert(i1 true) - call void @main.assert(i1 true) - ret void -} - -define i64 @"main.init#1$1"(i64 %0, i64 %1) { -_llgo_0: - %2 = add i64 %0, %1 - ret i64 %2 -} - -define void @"main.init#1$2"(ptr %0) { -_llgo_0: - %1 = load { ptr }, ptr %0, align 8 - %2 = extractvalue { ptr } %1, 0 - %3 = load i64, ptr %2, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -define void @"main.init#2"() { -_llgo_0: - call void @main.assert(i1 true) - %0 = alloca [3 x i64], align 8 - call void @llvm.memset(ptr %0, i8 0, i64 24, i1 false) - %1 = getelementptr inbounds i64, ptr %0, i64 0 - %2 = getelementptr inbounds i64, ptr %0, i64 1 - %3 = getelementptr inbounds i64, ptr %0, i64 2 - store i64 1, ptr %1, align 4 - store i64 2, ptr %2, align 4 - store i64 3, ptr %3, align 4 - %4 = alloca [3 x i64], align 8 - call void @llvm.memset(ptr %4, i8 0, i64 24, i1 false) - %5 = getelementptr inbounds i64, ptr %4, i64 0 - %6 = getelementptr inbounds i64, ptr %4, i64 1 - %7 = getelementptr inbounds i64, ptr %4, i64 2 - store i64 1, ptr %5, align 4 - store i64 2, ptr %6, align 4 - store i64 3, ptr %7, align 4 - %8 = load [3 x i64], ptr %0, align 4 - %9 = load [3 x i64], ptr %4, align 4 - %10 = extractvalue [3 x i64] %8, 0 - %11 = extractvalue [3 x i64] %9, 0 - %12 = icmp eq i64 %10, %11 - %13 = and i1 true, %12 - %14 = extractvalue [3 x i64] %8, 1 - %15 = extractvalue [3 x i64] %9, 1 - %16 = icmp eq i64 %14, %15 - %17 = and i1 %13, %16 - %18 = extractvalue [3 x i64] %8, 2 - %19 = extractvalue [3 x i64] %9, 2 - %20 = icmp eq i64 %18, %19 - %21 = and i1 %17, %20 - call void @main.assert(i1 %21) - %22 = getelementptr inbounds i64, ptr %4, i64 1 - store i64 1, ptr %22, align 4 - %23 = load [3 x i64], ptr %0, align 4 - %24 = load [3 x i64], ptr %4, align 4 - %25 = extractvalue [3 x i64] %23, 0 - %26 = extractvalue [3 x i64] %24, 0 - %27 = icmp eq i64 %25, %26 - %28 = and i1 true, %27 - %29 = extractvalue [3 x i64] %23, 1 - %30 = extractvalue [3 x i64] %24, 1 - %31 = icmp eq i64 %29, %30 - %32 = and i1 %28, %31 - %33 = extractvalue [3 x i64] %23, 2 - %34 = extractvalue [3 x i64] %24, 2 - %35 = icmp eq i64 %33, %34 - %36 = and i1 %32, %35 - %37 = xor i1 %36, true - call void @main.assert(i1 %37) - ret void -} - -define void @"main.init#3"() { -_llgo_0: - %0 = alloca %main.T, align 8 - call void @llvm.memset(ptr %0, i8 0, i64 48, i1 false) - %1 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 0 - %2 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 1 - %3 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 2 - %4 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 3 - store i64 10, ptr %1, align 4 - store i64 20, ptr %2, align 4 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 5 }, ptr %3, align 8 - %5 = load ptr, ptr @_llgo_int, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %5, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr inttoptr (i64 1 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %7, ptr %4, align 8 - %8 = alloca %main.T, align 8 - call void @llvm.memset(ptr %8, i8 0, i64 48, i1 false) - %9 = getelementptr inbounds %main.T, ptr %8, i32 0, i32 0 - %10 = getelementptr inbounds %main.T, ptr %8, i32 0, i32 1 - %11 = getelementptr inbounds %main.T, ptr %8, i32 0, i32 2 - %12 = getelementptr inbounds %main.T, ptr %8, i32 0, i32 3 - store i64 10, ptr %9, align 4 - store i64 20, ptr %10, align 4 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 5 }, ptr %11, align 8 - %13 = load ptr, ptr @_llgo_int, align 8 - %14 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %13, 0 - %15 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %14, ptr inttoptr (i64 1 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %15, ptr %12, align 8 - %16 = alloca %main.T, align 8 - call void @llvm.memset(ptr %16, i8 0, i64 48, i1 false) - %17 = getelementptr inbounds %main.T, ptr %16, i32 0, i32 0 - %18 = getelementptr inbounds %main.T, ptr %16, i32 0, i32 1 - %19 = getelementptr inbounds %main.T, ptr %16, i32 0, i32 2 - %20 = getelementptr inbounds %main.T, ptr %16, i32 0, i32 3 - store i64 10, ptr %17, align 4 - store i64 20, ptr %18, align 4 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 5 }, ptr %19, align 8 - %21 = load ptr, ptr @_llgo_string, align 8 - %22 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 2 }, ptr %22, align 8 - %23 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %21, 0 - %24 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %23, ptr %22, 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %24, ptr %20, align 8 - call void @main.assert(i1 true) - %25 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer) - %26 = and i1 true, %25 - %27 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" zeroinitializer, %"github.com/goplus/llgo/internal/runtime.eface" zeroinitializer) - %28 = and i1 %26, %27 - call void @main.assert(i1 %28) - %29 = load %main.T, ptr %0, align 8 - %30 = load %main.T, ptr %8, align 8 - %31 = extractvalue %main.T %29, 0 - %32 = extractvalue %main.T %30, 0 - %33 = icmp eq i64 %31, %32 - %34 = and i1 true, %33 - %35 = extractvalue %main.T %29, 1 - %36 = extractvalue %main.T %30, 1 - %37 = icmp eq i64 %35, %36 - %38 = and i1 %34, %37 - %39 = extractvalue %main.T %29, 2 - %40 = extractvalue %main.T %30, 2 - %41 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" %39, %"github.com/goplus/llgo/internal/runtime.String" %40) - %42 = and i1 %38, %41 - %43 = extractvalue %main.T %29, 3 - %44 = extractvalue %main.T %30, 3 - %45 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %43, %"github.com/goplus/llgo/internal/runtime.eface" %44) - %46 = and i1 %42, %45 - call void @main.assert(i1 %46) - %47 = load %main.T, ptr %0, align 8 - %48 = load %main.T, ptr %16, align 8 - %49 = extractvalue %main.T %47, 0 - %50 = extractvalue %main.T %48, 0 - %51 = icmp eq i64 %49, %50 - %52 = and i1 true, %51 - %53 = extractvalue %main.T %47, 1 - %54 = extractvalue %main.T %48, 1 - %55 = icmp eq i64 %53, %54 - %56 = and i1 %52, %55 - %57 = extractvalue %main.T %47, 2 - %58 = extractvalue %main.T %48, 2 - %59 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" %57, %"github.com/goplus/llgo/internal/runtime.String" %58) - %60 = and i1 %56, %59 - %61 = extractvalue %main.T %47, 3 - %62 = extractvalue %main.T %48, 3 - %63 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %61, %"github.com/goplus/llgo/internal/runtime.eface" %62) - %64 = and i1 %60, %63 - %65 = xor i1 %64, true - call void @main.assert(i1 %65) - %66 = load %main.T, ptr %8, align 8 - %67 = load %main.T, ptr %16, align 8 - %68 = extractvalue %main.T %66, 0 - %69 = extractvalue %main.T %67, 0 - %70 = icmp eq i64 %68, %69 - %71 = and i1 true, %70 - %72 = extractvalue %main.T %66, 1 - %73 = extractvalue %main.T %67, 1 - %74 = icmp eq i64 %72, %73 - %75 = and i1 %71, %74 - %76 = extractvalue %main.T %66, 2 - %77 = extractvalue %main.T %67, 2 - %78 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" %76, %"github.com/goplus/llgo/internal/runtime.String" %77) - %79 = and i1 %75, %78 - %80 = extractvalue %main.T %66, 3 - %81 = extractvalue %main.T %67, 3 - %82 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %80, %"github.com/goplus/llgo/internal/runtime.eface" %81) - %83 = and i1 %79, %82 - %84 = xor i1 %83, true - call void @main.assert(i1 %84) - ret void -} - -define void @"main.init#4"() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) - %1 = getelementptr inbounds i64, ptr %0, i64 0 - store i64 1, ptr %1, align 4 - %2 = getelementptr inbounds i64, ptr %0, i64 1 - store i64 2, ptr %2, align 4 - %3 = getelementptr inbounds i64, ptr %0, i64 2 - store i64 3, ptr %3, align 4 - %4 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %0, 0 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %4, i64 3, 1 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %5, i64 3, 2 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - %8 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %7, i64 8, i64 2, i64 0, i64 2, i64 2) - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - %10 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %9, i64 8, i64 2, i64 0, i64 0, i64 2) - call void @main.assert(i1 true) - %11 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %6, 0 - %12 = icmp ne ptr %11, null - call void @main.assert(i1 %12) - %13 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %8, 0 - %14 = icmp ne ptr %13, null - call void @main.assert(i1 %14) - %15 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %10, 0 - %16 = icmp ne ptr %15, null - call void @main.assert(i1 %16) - call void @main.assert(i1 true) - ret void -} - -define void @"main.init#5"() { -_llgo_0: - %0 = load ptr, ptr @_llgo_int, align 8 - %1 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %0, 0 - %2 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %1, ptr inttoptr (i64 100 to ptr), 1 - %3 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - store {} zeroinitializer, ptr %4, align 1 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %3, 0 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %5, ptr %4, 1 - %7 = alloca %main.T, align 8 - call void @llvm.memset(ptr %7, i8 0, i64 48, i1 false) - %8 = getelementptr inbounds %main.T, ptr %7, i32 0, i32 0 - %9 = getelementptr inbounds %main.T, ptr %7, i32 0, i32 1 - %10 = getelementptr inbounds %main.T, ptr %7, i32 0, i32 2 - %11 = getelementptr inbounds %main.T, ptr %7, i32 0, i32 3 - store i64 10, ptr %8, align 4 - store i64 20, ptr %9, align 4 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 5 }, ptr %10, align 8 - %12 = load ptr, ptr @_llgo_int, align 8 - %13 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %12, 0 - %14 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %13, ptr inttoptr (i64 1 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %14, ptr %11, align 8 - %15 = load %main.T, ptr %7, align 8 - %16 = load ptr, ptr @_llgo_main.T, align 8 - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - store %main.T %15, ptr %17, align 8 - %18 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %16, 0 - %19 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %18, ptr %17, 1 - %20 = alloca %main.T, align 8 - call void @llvm.memset(ptr %20, i8 0, i64 48, i1 false) - %21 = getelementptr inbounds %main.T, ptr %20, i32 0, i32 0 - %22 = getelementptr inbounds %main.T, ptr %20, i32 0, i32 1 - %23 = getelementptr inbounds %main.T, ptr %20, i32 0, i32 2 - %24 = getelementptr inbounds %main.T, ptr %20, i32 0, i32 3 - store i64 10, ptr %21, align 4 - store i64 20, ptr %22, align 4 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 5 }, ptr %23, align 8 - %25 = load ptr, ptr @_llgo_int, align 8 - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %25, 0 - %27 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %26, ptr inttoptr (i64 1 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %27, ptr %24, align 8 - %28 = alloca %main.T, align 8 - call void @llvm.memset(ptr %28, i8 0, i64 48, i1 false) - %29 = getelementptr inbounds %main.T, ptr %28, i32 0, i32 0 - %30 = getelementptr inbounds %main.T, ptr %28, i32 0, i32 1 - %31 = getelementptr inbounds %main.T, ptr %28, i32 0, i32 2 - %32 = getelementptr inbounds %main.T, ptr %28, i32 0, i32 3 - store i64 10, ptr %29, align 4 - store i64 20, ptr %30, align 4 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 5 }, ptr %31, align 8 - %33 = load ptr, ptr @_llgo_string, align 8 - %34 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 2 }, ptr %34, align 8 - %35 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %33, 0 - %36 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %35, ptr %34, 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %36, ptr %32, align 8 - %37 = load ptr, ptr @_llgo_int, align 8 - %38 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %37, 0 - %39 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %38, ptr inttoptr (i64 100 to ptr), 1 - %40 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %2, %"github.com/goplus/llgo/internal/runtime.eface" %39) - call void @main.assert(i1 %40) - %41 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - %42 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - store {} zeroinitializer, ptr %42, align 1 - %43 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %41, 0 - %44 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %43, ptr %42, 1 - %45 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %6, %"github.com/goplus/llgo/internal/runtime.eface" %44) - call void @main.assert(i1 %45) - %46 = load ptr, ptr @_llgo_main.N, align 8 - %47 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - store %main.N zeroinitializer, ptr %47, align 1 - %48 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %46, 0 - %49 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %48, ptr %47, 1 - %50 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %6, %"github.com/goplus/llgo/internal/runtime.eface" %49) - %51 = xor i1 %50, true - call void @main.assert(i1 %51) - %52 = load %main.T, ptr %20, align 8 - %53 = load ptr, ptr @_llgo_main.T, align 8 - %54 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - store %main.T %52, ptr %54, align 8 - %55 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %53, 0 - %56 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %55, ptr %54, 1 - %57 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %19, %"github.com/goplus/llgo/internal/runtime.eface" %56) - call void @main.assert(i1 %57) - %58 = load %main.T, ptr %28, align 8 - %59 = load ptr, ptr @_llgo_main.T, align 8 - %60 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - store %main.T %58, ptr %60, align 8 - %61 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %59, 0 - %62 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %61, ptr %60, 1 - %63 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %19, %"github.com/goplus/llgo/internal/runtime.eface" %62) - %64 = xor i1 %63, true - call void @main.assert(i1 %64) - ret void -} - -define void @"main.init#6"() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewChan"(i64 8, i64 0) - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.NewChan"(i64 8, i64 0) - %2 = icmp eq ptr %0, %0 - call void @main.assert(i1 %2) - %3 = icmp ne ptr %0, %1 - call void @main.assert(i1 %3) - %4 = icmp ne ptr %0, null - call void @main.assert(i1 %4) - ret void -} - -define void @"main.init#7"() { -_llgo_0: - %0 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %0, i64 0) - %2 = icmp ne ptr %1, null - call void @main.assert(i1 %2) - call void @main.assert(i1 true) - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - ret i32 0 -} - -define void @main.test() { -_llgo_0: - ret void -} - -define void @"main.init$after"() { -_llgo_0: - %0 = load ptr, ptr @_llgo_string, align 8 - %1 = icmp eq ptr %0, null - br i1 %1, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %2, ptr @_llgo_string, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @_llgo_int, align 8 - %4 = icmp eq ptr %3, null - br i1 %4, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %5, ptr @_llgo_int, align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %6 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - %7 = icmp eq ptr %6, null - br i1 %7, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %8, 0 - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, i64 0, 1 - %11 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %10, i64 0, 2 - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 0, %"github.com/goplus/llgo/internal/runtime.Slice" %11) - store ptr %12, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %13 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 1 }, i64 25, i64 48, i64 0, i64 0) - %14 = load ptr, ptr @_llgo_main.T, align 8 - %15 = icmp eq ptr %14, null - br i1 %15, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - store ptr %13, ptr @_llgo_main.T, align 8 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - %16 = load ptr, ptr @_llgo_any, align 8 - %17 = icmp eq ptr %16, null - br i1 %17, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - %18 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %19 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %18, 0 - %20 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %19, i64 0, 1 - %21 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %20, i64 0, 2 - %22 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %21) - store ptr %22, ptr @_llgo_any, align 8 - br label %_llgo_10 - -_llgo_10: ; preds = %_llgo_9, %_llgo_8 - %23 = load ptr, ptr @_llgo_any, align 8 - %24 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8 - %25 = icmp eq ptr %24, null - br i1 %25, label %_llgo_11, label %_llgo_12 - -_llgo_11: ; preds = %_llgo_10 - %26 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %27 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 1 }, ptr %26, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %28 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %29 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 1 }, ptr %28, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %30 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %31 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 1 }, ptr %30, i64 16, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %33 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %32, 0 - %34 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %33, i64 0, 1 - %35 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %34, i64 0, 2 - %36 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %35) - %37 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 1 }, ptr %36, i64 32, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %38 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %39 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %38, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %27, ptr %39, align 8 - %40 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %38, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %29, ptr %40, align 8 - %41 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %38, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %31, ptr %41, align 8 - %42 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %38, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %37, ptr %42, align 8 - %43 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %38, 0 - %44 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %43, i64 4, 1 - %45 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %44, i64 4, 2 - %46 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 48, %"github.com/goplus/llgo/internal/runtime.Slice" %45) - store ptr %46, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8 - br label %_llgo_12 - -_llgo_12: ; preds = %_llgo_11, %_llgo_10 - %47 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8 - br i1 %15, label %_llgo_13, label %_llgo_14 - -_llgo_13: ; preds = %_llgo_12 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %13, ptr %47, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - br label %_llgo_14 - -_llgo_14: ; preds = %_llgo_13, %_llgo_12 - %48 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 1 }, i64 25, i64 0, i64 0, i64 0) - %49 = load ptr, ptr @_llgo_main.N, align 8 - %50 = icmp eq ptr %49, null - br i1 %50, label %_llgo_15, label %_llgo_16 - -_llgo_15: ; preds = %_llgo_14 - store ptr %48, ptr @_llgo_main.N, align 8 - br label %_llgo_16 - -_llgo_16: ; preds = %_llgo_15, %_llgo_14 - %51 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - br i1 %50, label %_llgo_17, label %_llgo_18 - -_llgo_17: ; preds = %_llgo_16 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %48, ptr %51, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - br label %_llgo_18 - -_llgo_18: ; preds = %_llgo_17, %_llgo_16 - %52 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %53 = icmp eq ptr %52, null - br i1 %53, label %_llgo_19, label %_llgo_20 - -_llgo_19: ; preds = %_llgo_18 - %54 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %55 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %56 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %57 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %56) - %58 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @10, i64 7 }, ptr %57, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %59 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %60 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %59) - %61 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 4 }, ptr %60, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %62 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %63 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %62) - %64 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @12, i64 5 }, ptr %63, i64 72, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %65 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %66 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @13, i64 8 }, ptr %65, i64 200, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %67 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %68 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %67, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %58, ptr %68, align 8 - %69 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %67, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %61, ptr %69, align 8 - %70 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %67, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %64, ptr %70, align 8 - %71 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %67, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %66, ptr %71, align 8 - %72 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %67, 0 - %73 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %72, i64 4, 1 - %74 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %73, i64 4, 2 - %75 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 208, %"github.com/goplus/llgo/internal/runtime.Slice" %74) - %76 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %54, ptr %55, ptr %75, i64 4) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %76) - store ptr %76, ptr @"map[_llgo_int]_llgo_string", align 8 - br label %_llgo_20 - -_llgo_20: ; preds = %_llgo_19, %_llgo_18 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 - -declare i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String") - -declare i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface", %"github.com/goplus/llgo/internal/runtime.eface") - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr, i64, i64, i64, i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewChan"(i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr, ptr, ptr, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64, ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr, i64) - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testgo/errors/out.ll b/cl/_testgo/errors/out.ll deleted file mode 100644 index 3a93baf5..00000000 --- a/cl/_testgo/errors/out.ll +++ /dev/null @@ -1,202 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%main.errorString = type { %"github.com/goplus/llgo/internal/runtime.String" } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } -%"github.com/goplus/llgo/internal/abi.Imethod" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr } - -@"main.init$guard" = global i1 false, align 1 -@_llgo_main.errorString = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [4 x i8] c"main", align 1 -@1 = private unnamed_addr constant [11 x i8] c"errorString", align 1 -@_llgo_string = linkonce global ptr null, align 8 -@"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ" = linkonce global ptr null, align 8 -@2 = private unnamed_addr constant [1 x i8] c"s", align 1 -@3 = private unnamed_addr constant [5 x i8] c"Error", align 1 -@"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 -@"*_llgo_main.errorString" = linkonce global ptr null, align 8 -@"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU" = linkonce global ptr null, align 8 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@4 = private unnamed_addr constant [8 x i8] c"an error", align 1 - -define %"github.com/goplus/llgo/internal/runtime.iface" @main.New(%"github.com/goplus/llgo/internal/runtime.String" %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - %2 = getelementptr inbounds %main.errorString, ptr %1, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %0, ptr %2, align 8 - %3 = load ptr, ptr @_llgo_main.errorString, align 8 - %4 = load ptr, ptr @"*_llgo_main.errorString", align 8 - %5 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %6 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %6, ptr %4) - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %7, 0 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %8, ptr %1, 1 - ret %"github.com/goplus/llgo/internal/runtime.iface" %9 -} - -define %"github.com/goplus/llgo/internal/runtime.String" @"main.(*errorString).Error"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %main.errorString, ptr %0, i32 0, i32 0 - %2 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1, align 8 - ret %"github.com/goplus/llgo/internal/runtime.String" %2 -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call %"github.com/goplus/llgo/internal/runtime.iface" @main.New(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 8 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface" %2) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %2) - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %2, 0 - %5 = getelementptr ptr, ptr %4, i64 3 - %6 = load ptr, ptr %5, align 8 - %7 = insertvalue { ptr, ptr } undef, ptr %6, 0 - %8 = insertvalue { ptr, ptr } %7, ptr %3, 1 - %9 = extractvalue { ptr, ptr } %8, 1 - %10 = extractvalue { ptr, ptr } %8, 0 - %11 = call %"github.com/goplus/llgo/internal/runtime.String" %10(ptr %9) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %11) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -define void @"main.init$after"() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 11 }, i64 25, i64 16, i64 0, i64 1) - store ptr %0, ptr @_llgo_main.errorString, align 8 - %1 = load ptr, ptr @_llgo_string, align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %3, ptr @_llgo_string, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %6 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 1 }, ptr %5, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %8 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %7, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %6, ptr %8, align 8 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %7, 0 - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, i64 1, 1 - %11 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %10, i64 1, 2 - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %11) - store ptr %12, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - %13 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - %14 = load ptr, ptr @_llgo_string, align 8 - %15 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %16 = icmp eq ptr %15, null - br i1 %16, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %18 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %17, 0 - %19 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %18, i64 0, 1 - %20 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %19, i64 0, 2 - %21 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %22 = getelementptr ptr, ptr %21, i64 0 - store ptr %14, ptr %22, align 8 - %23 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %21, 0 - %24 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %23, i64 1, 1 - %25 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %24, i64 1, 2 - %26 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %20, %"github.com/goplus/llgo/internal/runtime.Slice" %25, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %26) - store ptr %26, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %27 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %28 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %27, 1 - %29 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %28, ptr @"main.(*errorString).Error", 2 - %30 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %29, ptr @"main.(*errorString).Error", 3 - %31 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %32 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %31, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %30, ptr %32, align 8 - %33 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %31, 0 - %34 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %33, i64 1, 1 - %35 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %34, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, ptr %13, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %35) - %36 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 11 }, i64 25, i64 16, i64 0, i64 1) - %37 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %36) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %37) - store ptr %37, ptr @"*_llgo_main.errorString", align 8 - %38 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %39 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 - %40 = icmp eq ptr %39, null - br i1 %40, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %41 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 5 }, ptr undef }, ptr %38, 1 - %42 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %43 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %42, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %41, ptr %43, align 8 - %44 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %42, 0 - %45 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %44, i64 1, 1 - %46 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %45, i64 1, 2 - %47 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %46) - store ptr %47, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr, ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") diff --git a/cl/_testgo/goroutine/out.ll b/cl/_testgo/goroutine/out.ll deleted file mode 100644 index 341c293a..00000000 --- a/cl/_testgo/goroutine/out.ll +++ /dev/null @@ -1,110 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [5 x i8] c"hello", align 1 -@1 = private unnamed_addr constant [16 x i8] c"Hello, goroutine", align 1 -@2 = private unnamed_addr constant [1 x i8] c".", align 1 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 1) - store i1 false, ptr %2, align 1 - %3 = call ptr @malloc(i64 16) - %4 = getelementptr inbounds { %"github.com/goplus/llgo/internal/runtime.String" }, ptr %3, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %4, align 8 - %5 = alloca i8, i64 8, align 1 - %6 = call i32 @"github.com/goplus/llgo/internal/runtime.CreateThread"(ptr %5, ptr null, ptr @"main._llgo_routine$1", ptr %3) - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %8 = getelementptr inbounds { ptr }, ptr %7, i32 0, i32 0 - store ptr %2, ptr %8, align 8 - %9 = insertvalue { ptr, ptr } { ptr @"main.main$1", ptr undef }, ptr %7, 1 - %10 = call ptr @malloc(i64 32) - %11 = getelementptr inbounds { { ptr, ptr }, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %10, i32 0, i32 0 - store { ptr, ptr } %9, ptr %11, align 8 - %12 = getelementptr inbounds { { ptr, ptr }, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %10, i32 0, i32 1 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 16 }, ptr %12, align 8 - %13 = alloca i8, i64 8, align 1 - %14 = call i32 @"github.com/goplus/llgo/internal/runtime.CreateThread"(ptr %13, ptr null, ptr @"main._llgo_routine$2", ptr %10) - br label %_llgo_3 - -_llgo_1: ; preds = %_llgo_3 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 1 }) - br label %_llgo_3 - -_llgo_2: ; preds = %_llgo_3 - ret i32 0 - -_llgo_3: ; preds = %_llgo_1, %_llgo_0 - %15 = load i1, ptr %2, align 1 - br i1 %15, label %_llgo_2, label %_llgo_1 -} - -define void @"main.main$1"(ptr %0, %"github.com/goplus/llgo/internal/runtime.String" %1) { -_llgo_0: - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %1) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %2 = load { ptr }, ptr %0, align 8 - %3 = extractvalue { ptr } %2, 0 - store i1 true, ptr %3, align 1 - ret void -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare ptr @malloc(i64) - -define ptr @"main._llgo_routine$1"(ptr %0) { -_llgo_0: - %1 = load { %"github.com/goplus/llgo/internal/runtime.String" }, ptr %0, align 8 - %2 = extractvalue { %"github.com/goplus/llgo/internal/runtime.String" } %1, 0 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %2) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - call void @free(ptr %0) - ret ptr null -} - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @free(ptr) - -declare i32 @"github.com/goplus/llgo/internal/runtime.CreateThread"(ptr, ptr, ptr, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -define ptr @"main._llgo_routine$2"(ptr %0) { -_llgo_0: - %1 = load { { ptr, ptr }, %"github.com/goplus/llgo/internal/runtime.String" }, ptr %0, align 8 - %2 = extractvalue { { ptr, ptr }, %"github.com/goplus/llgo/internal/runtime.String" } %1, 0 - %3 = extractvalue { { ptr, ptr }, %"github.com/goplus/llgo/internal/runtime.String" } %1, 1 - %4 = extractvalue { ptr, ptr } %2, 1 - %5 = extractvalue { ptr, ptr } %2, 0 - call void %5(ptr %4, %"github.com/goplus/llgo/internal/runtime.String" %3) - call void @free(ptr %0) - ret ptr null -} diff --git a/cl/_testgo/ifaceconv/out.ll b/cl/_testgo/ifaceconv/out.ll deleted file mode 100644 index c1c7cc96..00000000 --- a/cl/_testgo/ifaceconv/out.ll +++ /dev/null @@ -1,740 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%main.C1 = type {} -%main.C2 = type {} -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.Imethod" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr } -%"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@_llgo_main.I0 = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [4 x i8] c"main", align 1 -@1 = private unnamed_addr constant [2 x i8] c"I0", align 1 -@2 = private unnamed_addr constant [21 x i8] c"nil i0.(I0) succeeded", align 1 -@_llgo_string = linkonce global ptr null, align 8 -@_llgo_main.I1 = linkonce global ptr null, align 8 -@3 = private unnamed_addr constant [2 x i8] c"I1", align 1 -@"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 -@4 = private unnamed_addr constant [6 x i8] c"main.f", align 1 -@"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4" = linkonce global ptr null, align 8 -@5 = private unnamed_addr constant [21 x i8] c"nil i1.(I1) succeeded", align 1 -@_llgo_main.I2 = linkonce global ptr null, align 8 -@6 = private unnamed_addr constant [2 x i8] c"I2", align 1 -@7 = private unnamed_addr constant [6 x i8] c"main.g", align 1 -@"main.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw" = linkonce global ptr null, align 8 -@8 = private unnamed_addr constant [21 x i8] c"nil i2.(I2) succeeded", align 1 -@_llgo_main.C1 = linkonce global ptr null, align 8 -@9 = private unnamed_addr constant [2 x i8] c"C1", align 1 -@"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw" = linkonce global ptr null, align 8 -@10 = private unnamed_addr constant [1 x i8] c"f", align 1 -@11 = private unnamed_addr constant [17 x i8] c"C1 i1.(I0) failed", align 1 -@12 = private unnamed_addr constant [17 x i8] c"C1 i1.(I1) failed", align 1 -@13 = private unnamed_addr constant [20 x i8] c"C1 i1.(I2) succeeded", align 1 -@_llgo_main.C2 = linkonce global ptr null, align 8 -@14 = private unnamed_addr constant [2 x i8] c"C2", align 1 -@15 = private unnamed_addr constant [1 x i8] c"g", align 1 -@16 = private unnamed_addr constant [17 x i8] c"C2 i1.(I0) failed", align 1 -@17 = private unnamed_addr constant [17 x i8] c"C2 i1.(I1) failed", align 1 -@18 = private unnamed_addr constant [17 x i8] c"C2 i1.(I2) failed", align 1 -@19 = private unnamed_addr constant [17 x i8] c"C1 I0(i1) was nil", align 1 -@20 = private unnamed_addr constant [17 x i8] c"C1 I1(i1) was nil", align 1 -@21 = private unnamed_addr constant [4 x i8] c"pass", align 1 - -define void @main.C1.f(%main.C1 %0) { -_llgo_0: - ret void -} - -define void @"main.(*C1).f"(ptr %0) { -_llgo_0: - %1 = load %main.C1, ptr %0, align 1 - call void @main.C1.f(%main.C1 %1) - ret void -} - -define void @main.C2.f(%main.C2 %0) { -_llgo_0: - ret void -} - -define void @main.C2.g(%main.C2 %0) { -_llgo_0: - ret void -} - -define void @"main.(*C2).f"(ptr %0) { -_llgo_0: - %1 = load %main.C2, ptr %0, align 1 - call void @main.C2.f(%main.C2 %1) - ret void -} - -define void @"main.(*C2).g"(ptr %0) { -_llgo_0: - %1 = load %main.C2, ptr %0, align 1 - call void @main.C2.g(%main.C2 %1) - ret void -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = load ptr, ptr @_llgo_main.I0, align 8 - %3 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %2, ptr null) - br i1 %3, label %_llgo_23, label %_llgo_24 - -_llgo_1: ; preds = %_llgo_25 - %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 21 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %7) - unreachable - -_llgo_2: ; preds = %_llgo_25 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) - %9 = load ptr, ptr @_llgo_main.I1, align 8 - %10 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %9, ptr %8) - br i1 %10, label %_llgo_26, label %_llgo_27 - -_llgo_3: ; preds = %_llgo_28 - %11 = load ptr, ptr @_llgo_string, align 8 - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 21 }, ptr %12, align 8 - %13 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %11, 0 - %14 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %13, ptr %12, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %14) - unreachable - -_llgo_4: ; preds = %_llgo_28 - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) - %16 = load ptr, ptr @_llgo_main.I2, align 8 - %17 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %16, ptr %15) - br i1 %17, label %_llgo_29, label %_llgo_30 - -_llgo_5: ; preds = %_llgo_31 - %18 = load ptr, ptr @_llgo_string, align 8 - %19 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 21 }, ptr %19, align 8 - %20 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %18, 0 - %21 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %20, ptr %19, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %21) - unreachable - -_llgo_6: ; preds = %_llgo_31 - %22 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) - %23 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %22, 0 - %24 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %23, ptr null, 1 - %25 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %25, 0 - %27 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %26, ptr null, 1 - %28 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) - %29 = load ptr, ptr @"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 - %30 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %29, ptr %28) - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %30, 0 - %32 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %31, ptr null, 1 - %33 = load ptr, ptr @_llgo_main.C1, align 8 - %34 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - store %main.C1 zeroinitializer, ptr %34, align 1 - %35 = load ptr, ptr @"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 - %36 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %35, ptr %33) - %37 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %36, 0 - %38 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %37, ptr %34, 1 - %39 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %38) - %40 = load ptr, ptr @_llgo_main.I0, align 8 - %41 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %40, ptr %39) - br i1 %41, label %_llgo_32, label %_llgo_33 - -_llgo_7: ; preds = %_llgo_34 - %42 = load ptr, ptr @_llgo_string, align 8 - %43 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 17 }, ptr %43, align 8 - %44 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %42, 0 - %45 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %44, ptr %43, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %45) - unreachable - -_llgo_8: ; preds = %_llgo_34 - %46 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %38) - %47 = load ptr, ptr @_llgo_main.I1, align 8 - %48 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %47, ptr %46) - br i1 %48, label %_llgo_35, label %_llgo_36 - -_llgo_9: ; preds = %_llgo_37 - %49 = load ptr, ptr @_llgo_string, align 8 - %50 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @12, i64 17 }, ptr %50, align 8 - %51 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %49, 0 - %52 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %51, ptr %50, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %52) - unreachable - -_llgo_10: ; preds = %_llgo_37 - %53 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %38) - %54 = load ptr, ptr @_llgo_main.I2, align 8 - %55 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %54, ptr %53) - br i1 %55, label %_llgo_38, label %_llgo_39 - -_llgo_11: ; preds = %_llgo_40 - %56 = load ptr, ptr @_llgo_string, align 8 - %57 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @13, i64 20 }, ptr %57, align 8 - %58 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %56, 0 - %59 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %58, ptr %57, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %59) - unreachable - -_llgo_12: ; preds = %_llgo_40 - %60 = load ptr, ptr @_llgo_main.C2, align 8 - %61 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - store %main.C2 zeroinitializer, ptr %61, align 1 - %62 = load ptr, ptr @"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 - %63 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %62, ptr %60) - %64 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %63, 0 - %65 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %64, ptr %61, 1 - %66 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %65) - %67 = load ptr, ptr @_llgo_main.I0, align 8 - %68 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %67, ptr %66) - br i1 %68, label %_llgo_41, label %_llgo_42 - -_llgo_13: ; preds = %_llgo_43 - %69 = load ptr, ptr @_llgo_string, align 8 - %70 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @16, i64 17 }, ptr %70, align 8 - %71 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %69, 0 - %72 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %71, ptr %70, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %72) - unreachable - -_llgo_14: ; preds = %_llgo_43 - %73 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %65) - %74 = load ptr, ptr @_llgo_main.I1, align 8 - %75 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %74, ptr %73) - br i1 %75, label %_llgo_44, label %_llgo_45 - -_llgo_15: ; preds = %_llgo_46 - %76 = load ptr, ptr @_llgo_string, align 8 - %77 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @17, i64 17 }, ptr %77, align 8 - %78 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %76, 0 - %79 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %78, ptr %77, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %79) - unreachable - -_llgo_16: ; preds = %_llgo_46 - %80 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %65) - %81 = load ptr, ptr @_llgo_main.I2, align 8 - %82 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %81, ptr %80) - br i1 %82, label %_llgo_47, label %_llgo_48 - -_llgo_17: ; preds = %_llgo_49 - %83 = load ptr, ptr @_llgo_string, align 8 - %84 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @18, i64 17 }, ptr %84, align 8 - %85 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %83, 0 - %86 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %85, ptr %84, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %86) - unreachable - -_llgo_18: ; preds = %_llgo_49 - %87 = load ptr, ptr @_llgo_main.C1, align 8 - %88 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - store %main.C1 zeroinitializer, ptr %88, align 1 - %89 = load ptr, ptr @"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 - %90 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %89, ptr %87) - %91 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %90, 0 - %92 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %91, ptr %88, 1 - %93 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %92) - %94 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %92, 1 - %95 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %93, 0 - %96 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %95, ptr %94, 1 - %97 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %96, %"github.com/goplus/llgo/internal/runtime.eface" zeroinitializer) - br i1 %97, label %_llgo_19, label %_llgo_20 - -_llgo_19: ; preds = %_llgo_18 - %98 = load ptr, ptr @_llgo_string, align 8 - %99 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @19, i64 17 }, ptr %99, align 8 - %100 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %98, 0 - %101 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %100, ptr %99, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %101) - unreachable - -_llgo_20: ; preds = %_llgo_18 - %102 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %92) - %103 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %92, 1 - %104 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %102, 0 - %105 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %104, ptr %103, 1 - %106 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) - %107 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %106, 0 - %108 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %107, ptr null, 1 - %109 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %105, %"github.com/goplus/llgo/internal/runtime.eface" %108) - br i1 %109, label %_llgo_21, label %_llgo_22 - -_llgo_21: ; preds = %_llgo_20 - %110 = load ptr, ptr @_llgo_string, align 8 - %111 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @20, i64 17 }, ptr %111, align 8 - %112 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %110, 0 - %113 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %112, ptr %111, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %113) - unreachable - -_llgo_22: ; preds = %_llgo_20 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @21, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 - -_llgo_23: ; preds = %_llgo_0 - br label %_llgo_25 - -_llgo_24: ; preds = %_llgo_0 - br label %_llgo_25 - -_llgo_25: ; preds = %_llgo_24, %_llgo_23 - %114 = phi { %"github.com/goplus/llgo/internal/runtime.eface", i1 } [ { %"github.com/goplus/llgo/internal/runtime.eface" zeroinitializer, i1 true }, %_llgo_23 ], [ zeroinitializer, %_llgo_24 ] - %115 = extractvalue { %"github.com/goplus/llgo/internal/runtime.eface", i1 } %114, 0 - %116 = extractvalue { %"github.com/goplus/llgo/internal/runtime.eface", i1 } %114, 1 - br i1 %116, label %_llgo_1, label %_llgo_2 - -_llgo_26: ; preds = %_llgo_2 - %117 = load ptr, ptr @"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 - %118 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %117, ptr %8) - %119 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %118, 0 - %120 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %119, ptr null, 1 - %121 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/internal/runtime.iface" %120, 0 - %122 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %121, i1 true, 1 - br label %_llgo_28 - -_llgo_27: ; preds = %_llgo_2 - br label %_llgo_28 - -_llgo_28: ; preds = %_llgo_27, %_llgo_26 - %123 = phi { %"github.com/goplus/llgo/internal/runtime.iface", i1 } [ %122, %_llgo_26 ], [ zeroinitializer, %_llgo_27 ] - %124 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %123, 0 - %125 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %123, 1 - br i1 %125, label %_llgo_3, label %_llgo_4 - -_llgo_29: ; preds = %_llgo_4 - %126 = load ptr, ptr @"main.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8 - %127 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %126, ptr %15) - %128 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %127, 0 - %129 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %128, ptr null, 1 - %130 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/internal/runtime.iface" %129, 0 - %131 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %130, i1 true, 1 - br label %_llgo_31 - -_llgo_30: ; preds = %_llgo_4 - br label %_llgo_31 - -_llgo_31: ; preds = %_llgo_30, %_llgo_29 - %132 = phi { %"github.com/goplus/llgo/internal/runtime.iface", i1 } [ %131, %_llgo_29 ], [ zeroinitializer, %_llgo_30 ] - %133 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %132, 0 - %134 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %132, 1 - br i1 %134, label %_llgo_5, label %_llgo_6 - -_llgo_32: ; preds = %_llgo_6 - %135 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %38, 1 - %136 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %39, 0 - %137 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %136, ptr %135, 1 - %138 = insertvalue { %"github.com/goplus/llgo/internal/runtime.eface", i1 } undef, %"github.com/goplus/llgo/internal/runtime.eface" %137, 0 - %139 = insertvalue { %"github.com/goplus/llgo/internal/runtime.eface", i1 } %138, i1 true, 1 - br label %_llgo_34 - -_llgo_33: ; preds = %_llgo_6 - br label %_llgo_34 - -_llgo_34: ; preds = %_llgo_33, %_llgo_32 - %140 = phi { %"github.com/goplus/llgo/internal/runtime.eface", i1 } [ %139, %_llgo_32 ], [ zeroinitializer, %_llgo_33 ] - %141 = extractvalue { %"github.com/goplus/llgo/internal/runtime.eface", i1 } %140, 0 - %142 = extractvalue { %"github.com/goplus/llgo/internal/runtime.eface", i1 } %140, 1 - br i1 %142, label %_llgo_8, label %_llgo_7 - -_llgo_35: ; preds = %_llgo_8 - %143 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %38, 1 - %144 = load ptr, ptr @"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 - %145 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %144, ptr %46) - %146 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %145, 0 - %147 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %146, ptr %143, 1 - %148 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/internal/runtime.iface" %147, 0 - %149 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %148, i1 true, 1 - br label %_llgo_37 - -_llgo_36: ; preds = %_llgo_8 - br label %_llgo_37 - -_llgo_37: ; preds = %_llgo_36, %_llgo_35 - %150 = phi { %"github.com/goplus/llgo/internal/runtime.iface", i1 } [ %149, %_llgo_35 ], [ zeroinitializer, %_llgo_36 ] - %151 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %150, 0 - %152 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %150, 1 - br i1 %152, label %_llgo_10, label %_llgo_9 - -_llgo_38: ; preds = %_llgo_10 - %153 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %38, 1 - %154 = load ptr, ptr @"main.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8 - %155 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %154, ptr %53) - %156 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %155, 0 - %157 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %156, ptr %153, 1 - %158 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/internal/runtime.iface" %157, 0 - %159 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %158, i1 true, 1 - br label %_llgo_40 - -_llgo_39: ; preds = %_llgo_10 - br label %_llgo_40 - -_llgo_40: ; preds = %_llgo_39, %_llgo_38 - %160 = phi { %"github.com/goplus/llgo/internal/runtime.iface", i1 } [ %159, %_llgo_38 ], [ zeroinitializer, %_llgo_39 ] - %161 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %160, 0 - %162 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %160, 1 - br i1 %162, label %_llgo_11, label %_llgo_12 - -_llgo_41: ; preds = %_llgo_12 - %163 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %65, 1 - %164 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %66, 0 - %165 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %164, ptr %163, 1 - %166 = insertvalue { %"github.com/goplus/llgo/internal/runtime.eface", i1 } undef, %"github.com/goplus/llgo/internal/runtime.eface" %165, 0 - %167 = insertvalue { %"github.com/goplus/llgo/internal/runtime.eface", i1 } %166, i1 true, 1 - br label %_llgo_43 - -_llgo_42: ; preds = %_llgo_12 - br label %_llgo_43 - -_llgo_43: ; preds = %_llgo_42, %_llgo_41 - %168 = phi { %"github.com/goplus/llgo/internal/runtime.eface", i1 } [ %167, %_llgo_41 ], [ zeroinitializer, %_llgo_42 ] - %169 = extractvalue { %"github.com/goplus/llgo/internal/runtime.eface", i1 } %168, 0 - %170 = extractvalue { %"github.com/goplus/llgo/internal/runtime.eface", i1 } %168, 1 - br i1 %170, label %_llgo_14, label %_llgo_13 - -_llgo_44: ; preds = %_llgo_14 - %171 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %65, 1 - %172 = load ptr, ptr @"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 - %173 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %172, ptr %73) - %174 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %173, 0 - %175 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %174, ptr %171, 1 - %176 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/internal/runtime.iface" %175, 0 - %177 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %176, i1 true, 1 - br label %_llgo_46 - -_llgo_45: ; preds = %_llgo_14 - br label %_llgo_46 - -_llgo_46: ; preds = %_llgo_45, %_llgo_44 - %178 = phi { %"github.com/goplus/llgo/internal/runtime.iface", i1 } [ %177, %_llgo_44 ], [ zeroinitializer, %_llgo_45 ] - %179 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %178, 0 - %180 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %178, 1 - br i1 %180, label %_llgo_16, label %_llgo_15 - -_llgo_47: ; preds = %_llgo_16 - %181 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %65, 1 - %182 = load ptr, ptr @"main.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8 - %183 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %182, ptr %80) - %184 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %183, 0 - %185 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %184, ptr %181, 1 - %186 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/internal/runtime.iface" %185, 0 - %187 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %186, i1 true, 1 - br label %_llgo_49 - -_llgo_48: ; preds = %_llgo_16 - br label %_llgo_49 - -_llgo_49: ; preds = %_llgo_48, %_llgo_47 - %188 = phi { %"github.com/goplus/llgo/internal/runtime.iface", i1 } [ %187, %_llgo_47 ], [ zeroinitializer, %_llgo_48 ] - %189 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %188, 0 - %190 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %188, 1 - br i1 %190, label %_llgo_18, label %_llgo_17 -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -define void @"main.init$after"() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 2 }) - %1 = load ptr, ptr @_llgo_main.I0, align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - store ptr %0, ptr @_llgo_main.I0, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - br i1 %2, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %4 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %3, 0 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %4, i64 0, 1 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %5, i64 0, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr %0, %"github.com/goplus/llgo/internal/runtime.Slice" %6) - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %7 = load ptr, ptr @_llgo_string, align 8 - %8 = icmp eq ptr %7, null - br i1 %8, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %9, ptr @_llgo_string, align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %10 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 2 }) - %11 = load ptr, ptr @_llgo_main.I1, align 8 - %12 = icmp eq ptr %11, null - br i1 %12, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - store ptr %10, ptr @_llgo_main.I1, align 8 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - %13 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %14 = icmp eq ptr %13, null - br i1 %14, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %15, 0 - %17 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %16, i64 0, 1 - %18 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %17, i64 0, 2 - %19 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %20 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %19, 0 - %21 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %20, i64 0, 1 - %22 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %21, i64 0, 2 - %23 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %18, %"github.com/goplus/llgo/internal/runtime.Slice" %22, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %23) - store ptr %23, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - br label %_llgo_10 - -_llgo_10: ; preds = %_llgo_9, %_llgo_8 - %24 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - br i1 %12, label %_llgo_11, label %_llgo_12 - -_llgo_11: ; preds = %_llgo_10 - %25 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 6 }, ptr undef }, ptr %24, 1 - %26 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %27 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %26, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %25, ptr %27, align 8 - %28 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %26, 0 - %29 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %28, i64 1, 1 - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %29, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr %10, %"github.com/goplus/llgo/internal/runtime.Slice" %30) - br label %_llgo_12 - -_llgo_12: ; preds = %_llgo_11, %_llgo_10 - %31 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %32 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 6 }, ptr undef }, ptr %31, 1 - %33 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %34 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %33, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %32, ptr %34, align 8 - %35 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %33, 0 - %36 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %35, i64 1, 1 - %37 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %36, i64 1, 2 - %38 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %37) - store ptr %38, ptr @"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 - %39 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 2 }) - %40 = load ptr, ptr @_llgo_main.I2, align 8 - %41 = icmp eq ptr %40, null - br i1 %41, label %_llgo_13, label %_llgo_14 - -_llgo_13: ; preds = %_llgo_12 - store ptr %39, ptr @_llgo_main.I2, align 8 - br label %_llgo_14 - -_llgo_14: ; preds = %_llgo_13, %_llgo_12 - %42 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %43 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - br i1 %41, label %_llgo_15, label %_llgo_16 - -_llgo_15: ; preds = %_llgo_14 - %44 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 6 }, ptr undef }, ptr %42, 1 - %45 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 6 }, ptr undef }, ptr %43, 1 - %46 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %47 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %46, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %44, ptr %47, align 8 - %48 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %46, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %45, ptr %48, align 8 - %49 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %46, 0 - %50 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %49, i64 2, 1 - %51 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %50, i64 2, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr %39, %"github.com/goplus/llgo/internal/runtime.Slice" %51) - br label %_llgo_16 - -_llgo_16: ; preds = %_llgo_15, %_llgo_14 - %52 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %53 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %54 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 6 }, ptr undef }, ptr %52, 1 - %55 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 6 }, ptr undef }, ptr %53, 1 - %56 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %57 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %56, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %54, ptr %57, align 8 - %58 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %56, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %55, ptr %58, align 8 - %59 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %56, 0 - %60 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %59, i64 2, 1 - %61 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %60, i64 2, 2 - %62 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %61) - store ptr %62, ptr @"main.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8 - %63 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 2 }, i64 25, i64 0, i64 1, i64 1) - %64 = load ptr, ptr @_llgo_main.C1, align 8 - %65 = icmp eq ptr %64, null - br i1 %65, label %_llgo_17, label %_llgo_18 - -_llgo_17: ; preds = %_llgo_16 - store ptr %63, ptr @_llgo_main.C1, align 8 - br label %_llgo_18 - -_llgo_18: ; preds = %_llgo_17, %_llgo_16 - %66 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - %67 = icmp eq ptr %66, null - br i1 %67, label %_llgo_19, label %_llgo_20 - -_llgo_19: ; preds = %_llgo_18 - %68 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %69 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %68, 0 - %70 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %69, i64 0, 1 - %71 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %70, i64 0, 2 - %72 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 0, %"github.com/goplus/llgo/internal/runtime.Slice" %71) - store ptr %72, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - br label %_llgo_20 - -_llgo_20: ; preds = %_llgo_19, %_llgo_18 - %73 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - br i1 %65, label %_llgo_21, label %_llgo_22 - -_llgo_21: ; preds = %_llgo_20 - %74 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %75 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %74, 1 - %76 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %75, ptr @"main.(*C1).f", 2 - %77 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %76, ptr @"main.(*C1).f", 3 - %78 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %74, 1 - %79 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %78, ptr @"main.(*C1).f", 2 - %80 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %79, ptr @main.C1.f, 3 - %81 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %82 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %81, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %80, ptr %82, align 8 - %83 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %81, 0 - %84 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %83, i64 1, 1 - %85 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %84, i64 1, 2 - %86 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %87 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %86, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %77, ptr %87, align 8 - %88 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %86, 0 - %89 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %88, i64 1, 1 - %90 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %89, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %63, ptr %73, %"github.com/goplus/llgo/internal/runtime.Slice" %85, %"github.com/goplus/llgo/internal/runtime.Slice" %90) - br label %_llgo_22 - -_llgo_22: ; preds = %_llgo_21, %_llgo_20 - %91 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @14, i64 2 }, i64 25, i64 0, i64 2, i64 2) - %92 = load ptr, ptr @_llgo_main.C2, align 8 - %93 = icmp eq ptr %92, null - br i1 %93, label %_llgo_23, label %_llgo_24 - -_llgo_23: ; preds = %_llgo_22 - store ptr %91, ptr @_llgo_main.C2, align 8 - br label %_llgo_24 - -_llgo_24: ; preds = %_llgo_23, %_llgo_22 - %94 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - br i1 %93, label %_llgo_25, label %_llgo_26 - -_llgo_25: ; preds = %_llgo_24 - %95 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %96 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %95, 1 - %97 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %96, ptr @"main.(*C2).f", 2 - %98 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %97, ptr @"main.(*C2).f", 3 - %99 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %95, 1 - %100 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %99, ptr @"main.(*C2).f", 2 - %101 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %100, ptr @main.C2.f, 3 - %102 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %103 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %102, 1 - %104 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %103, ptr @"main.(*C2).g", 2 - %105 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %104, ptr @"main.(*C2).g", 3 - %106 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %102, 1 - %107 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %106, ptr @"main.(*C2).g", 2 - %108 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %107, ptr @main.C2.g, 3 - %109 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %110 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %109, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %101, ptr %110, align 8 - %111 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %109, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %108, ptr %111, align 8 - %112 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %109, 0 - %113 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %112, i64 2, 1 - %114 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %113, i64 2, 2 - %115 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %116 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %115, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %98, ptr %116, align 8 - %117 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %115, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %105, ptr %117, align 8 - %118 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %115, 0 - %119 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %118, i64 2, 1 - %120 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %119, i64 2, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %91, ptr %94, %"github.com/goplus/llgo/internal/runtime.Slice" %114, %"github.com/goplus/llgo/internal/runtime.Slice" %120) - br label %_llgo_26 - -_llgo_26: ; preds = %_llgo_25, %_llgo_24 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") - -declare ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface", %"github.com/goplus/llgo/internal/runtime.eface") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) diff --git a/cl/_testgo/ifaceprom/out.ll b/cl/_testgo/ifaceprom/out.ll deleted file mode 100644 index 664638b3..00000000 --- a/cl/_testgo/ifaceprom/out.ll +++ /dev/null @@ -1,668 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%main.S = type { %"github.com/goplus/llgo/internal/runtime.iface" } -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%main.impl = type {} -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } -%"github.com/goplus/llgo/internal/abi.Imethod" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } - -@"main.init$guard" = global i1 false, align 1 -@0 = private unnamed_addr constant [3 x i8] c"two", align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@_llgo_main.impl = linkonce global ptr null, align 8 -@1 = private unnamed_addr constant [4 x i8] c"main", align 1 -@2 = private unnamed_addr constant [4 x i8] c"impl", align 1 -@"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw" = linkonce global ptr null, align 8 -@3 = private unnamed_addr constant [3 x i8] c"one", align 1 -@4 = private unnamed_addr constant [8 x i8] c"main.one", align 1 -@_llgo_int = linkonce global ptr null, align 8 -@"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA" = linkonce global ptr null, align 8 -@5 = private unnamed_addr constant [8 x i8] c"main.two", align 1 -@_llgo_string = linkonce global ptr null, align 8 -@"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 -@"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA" = linkonce global ptr null, align 8 -@_llgo_main.I = linkonce global ptr null, align 8 -@6 = private unnamed_addr constant [1 x i8] c"I", align 1 -@7 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 -@8 = private unnamed_addr constant [4 x i8] c"pass", align 1 - -define i64 @main.S.one(%main.S %0) { -_llgo_0: - %1 = alloca %main.S, align 8 - call void @llvm.memset(ptr %1, i8 0, i64 16, i1 false) - store %main.S %0, ptr %1, align 8 - %2 = getelementptr inbounds %main.S, ptr %1, i32 0, i32 0 - %3 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %2, align 8 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %3) - %5 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %3, 0 - %6 = getelementptr ptr, ptr %5, i64 3 - %7 = load ptr, ptr %6, align 8 - %8 = insertvalue { ptr, ptr } undef, ptr %7, 0 - %9 = insertvalue { ptr, ptr } %8, ptr %4, 1 - %10 = extractvalue { ptr, ptr } %9, 1 - %11 = extractvalue { ptr, ptr } %9, 0 - %12 = call i64 %11(ptr %10) - ret i64 %12 -} - -define %"github.com/goplus/llgo/internal/runtime.String" @main.S.two(%main.S %0) { -_llgo_0: - %1 = alloca %main.S, align 8 - call void @llvm.memset(ptr %1, i8 0, i64 16, i1 false) - store %main.S %0, ptr %1, align 8 - %2 = getelementptr inbounds %main.S, ptr %1, i32 0, i32 0 - %3 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %2, align 8 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %3) - %5 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %3, 0 - %6 = getelementptr ptr, ptr %5, i64 4 - %7 = load ptr, ptr %6, align 8 - %8 = insertvalue { ptr, ptr } undef, ptr %7, 0 - %9 = insertvalue { ptr, ptr } %8, ptr %4, 1 - %10 = extractvalue { ptr, ptr } %9, 1 - %11 = extractvalue { ptr, ptr } %9, 0 - %12 = call %"github.com/goplus/llgo/internal/runtime.String" %11(ptr %10) - ret %"github.com/goplus/llgo/internal/runtime.String" %12 -} - -define i64 @"main.(*S).one"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %main.S, ptr %0, i32 0, i32 0 - %2 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %1, align 8 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %2) - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %2, 0 - %5 = getelementptr ptr, ptr %4, i64 3 - %6 = load ptr, ptr %5, align 8 - %7 = insertvalue { ptr, ptr } undef, ptr %6, 0 - %8 = insertvalue { ptr, ptr } %7, ptr %3, 1 - %9 = extractvalue { ptr, ptr } %8, 1 - %10 = extractvalue { ptr, ptr } %8, 0 - %11 = call i64 %10(ptr %9) - ret i64 %11 -} - -define %"github.com/goplus/llgo/internal/runtime.String" @"main.(*S).two"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %main.S, ptr %0, i32 0, i32 0 - %2 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %1, align 8 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %2) - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %2, 0 - %5 = getelementptr ptr, ptr %4, i64 4 - %6 = load ptr, ptr %5, align 8 - %7 = insertvalue { ptr, ptr } undef, ptr %6, 0 - %8 = insertvalue { ptr, ptr } %7, ptr %3, 1 - %9 = extractvalue { ptr, ptr } %8, 1 - %10 = extractvalue { ptr, ptr } %8, 0 - %11 = call %"github.com/goplus/llgo/internal/runtime.String" %10(ptr %9) - ret %"github.com/goplus/llgo/internal/runtime.String" %11 -} - -define i64 @main.impl.one(%main.impl %0) { -_llgo_0: - ret i64 1 -} - -define %"github.com/goplus/llgo/internal/runtime.String" @main.impl.two(%main.impl %0) { -_llgo_0: - ret %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 3 } -} - -define i64 @"main.(*impl).one"(ptr %0) { -_llgo_0: - %1 = load %main.impl, ptr %0, align 1 - %2 = call i64 @main.impl.one(%main.impl %1) - ret i64 %2 -} - -define %"github.com/goplus/llgo/internal/runtime.String" @"main.(*impl).two"(ptr %0) { -_llgo_0: - %1 = load %main.impl, ptr %0, align 1 - %2 = call %"github.com/goplus/llgo/internal/runtime.String" @main.impl.two(%main.impl %1) - ret %"github.com/goplus/llgo/internal/runtime.String" %2 -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = alloca %main.S, align 8 - call void @llvm.memset(ptr %2, i8 0, i64 16, i1 false) - %3 = getelementptr inbounds %main.S, ptr %2, i32 0, i32 0 - %4 = load ptr, ptr @_llgo_main.impl, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - store %main.impl zeroinitializer, ptr %5, align 1 - %6 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %7 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %8 = load ptr, ptr @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %8, ptr %4) - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %9, 0 - %11 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %10, ptr %5, 1 - store %"github.com/goplus/llgo/internal/runtime.iface" %11, ptr %3, align 8 - %12 = getelementptr inbounds %main.S, ptr %2, i32 0, i32 0 - %13 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %12, align 8 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %13) - %15 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %13, 0 - %16 = getelementptr ptr, ptr %15, i64 3 - %17 = load ptr, ptr %16, align 8 - %18 = insertvalue { ptr, ptr } undef, ptr %17, 0 - %19 = insertvalue { ptr, ptr } %18, ptr %14, 1 - %20 = extractvalue { ptr, ptr } %19, 1 - %21 = extractvalue { ptr, ptr } %19, 0 - %22 = call i64 %21(ptr %20) - %23 = icmp ne i64 %22, 1 - br i1 %23, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %24 = load ptr, ptr @_llgo_int, align 8 - %25 = inttoptr i64 %22 to ptr - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %24, 0 - %27 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %26, ptr %25, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %27) - unreachable - -_llgo_2: ; preds = %_llgo_0 - %28 = load %main.S, ptr %2, align 8 - %29 = extractvalue %main.S %28, 0 - %30 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %29) - %31 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %29, 0 - %32 = getelementptr ptr, ptr %31, i64 3 - %33 = load ptr, ptr %32, align 8 - %34 = insertvalue { ptr, ptr } undef, ptr %33, 0 - %35 = insertvalue { ptr, ptr } %34, ptr %30, 1 - %36 = extractvalue { ptr, ptr } %35, 1 - %37 = extractvalue { ptr, ptr } %35, 0 - %38 = call i64 %37(ptr %36) - %39 = icmp ne i64 %38, 1 - br i1 %39, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %40 = load ptr, ptr @_llgo_int, align 8 - %41 = inttoptr i64 %38 to ptr - %42 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %40, 0 - %43 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %42, ptr %41, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %43) - unreachable - -_llgo_4: ; preds = %_llgo_2 - %44 = getelementptr inbounds %main.S, ptr %2, i32 0, i32 0 - %45 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %44, align 8 - %46 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %45) - %47 = load ptr, ptr @_llgo_main.I, align 8 - %48 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %47, ptr %46) - br i1 %48, label %_llgo_17, label %_llgo_18 - -_llgo_5: ; preds = %_llgo_17 - %49 = load ptr, ptr @_llgo_int, align 8 - %50 = inttoptr i64 %124 to ptr - %51 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %49, 0 - %52 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %51, ptr %50, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %52) - unreachable - -_llgo_6: ; preds = %_llgo_17 - %53 = load %main.S, ptr %2, align 8 - %54 = extractvalue %main.S %53, 0 - %55 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %54) - %56 = load ptr, ptr @_llgo_main.I, align 8 - %57 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %56, ptr %55) - br i1 %57, label %_llgo_19, label %_llgo_20 - -_llgo_7: ; preds = %_llgo_19 - %58 = load ptr, ptr @_llgo_int, align 8 - %59 = inttoptr i64 %140 to ptr - %60 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %58, 0 - %61 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %60, ptr %59, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %61) - unreachable - -_llgo_8: ; preds = %_llgo_19 - %62 = getelementptr inbounds %main.S, ptr %2, i32 0, i32 0 - %63 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %62, align 8 - %64 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %63) - %65 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %63, 0 - %66 = getelementptr ptr, ptr %65, i64 4 - %67 = load ptr, ptr %66, align 8 - %68 = insertvalue { ptr, ptr } undef, ptr %67, 0 - %69 = insertvalue { ptr, ptr } %68, ptr %64, 1 - %70 = extractvalue { ptr, ptr } %69, 1 - %71 = extractvalue { ptr, ptr } %69, 0 - %72 = call %"github.com/goplus/llgo/internal/runtime.String" %71(ptr %70) - %73 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" %72, %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 3 }) - %74 = xor i1 %73, true - br i1 %74, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - %75 = load ptr, ptr @_llgo_string, align 8 - %76 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" %72, ptr %76, align 8 - %77 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %75, 0 - %78 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %77, ptr %76, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %78) - unreachable - -_llgo_10: ; preds = %_llgo_8 - %79 = load %main.S, ptr %2, align 8 - %80 = extractvalue %main.S %79, 0 - %81 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %80) - %82 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %80, 0 - %83 = getelementptr ptr, ptr %82, i64 4 - %84 = load ptr, ptr %83, align 8 - %85 = insertvalue { ptr, ptr } undef, ptr %84, 0 - %86 = insertvalue { ptr, ptr } %85, ptr %81, 1 - %87 = extractvalue { ptr, ptr } %86, 1 - %88 = extractvalue { ptr, ptr } %86, 0 - %89 = call %"github.com/goplus/llgo/internal/runtime.String" %88(ptr %87) - %90 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" %89, %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 3 }) - %91 = xor i1 %90, true - br i1 %91, label %_llgo_11, label %_llgo_12 - -_llgo_11: ; preds = %_llgo_10 - %92 = load ptr, ptr @_llgo_string, align 8 - %93 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" %89, ptr %93, align 8 - %94 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %92, 0 - %95 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %94, ptr %93, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %95) - unreachable - -_llgo_12: ; preds = %_llgo_10 - %96 = getelementptr inbounds %main.S, ptr %2, i32 0, i32 0 - %97 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %96, align 8 - %98 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %97) - %99 = load ptr, ptr @_llgo_main.I, align 8 - %100 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %99, ptr %98) - br i1 %100, label %_llgo_21, label %_llgo_22 - -_llgo_13: ; preds = %_llgo_21 - %101 = load ptr, ptr @_llgo_string, align 8 - %102 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" %156, ptr %102, align 8 - %103 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %101, 0 - %104 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %103, ptr %102, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %104) - unreachable - -_llgo_14: ; preds = %_llgo_21 - %105 = load %main.S, ptr %2, align 8 - %106 = extractvalue %main.S %105, 0 - %107 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %106) - %108 = load ptr, ptr @_llgo_main.I, align 8 - %109 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %108, ptr %107) - br i1 %109, label %_llgo_23, label %_llgo_24 - -_llgo_15: ; preds = %_llgo_23 - %110 = load ptr, ptr @_llgo_string, align 8 - %111 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" %173, ptr %111, align 8 - %112 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %110, 0 - %113 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %112, ptr %111, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %113) - unreachable - -_llgo_16: ; preds = %_llgo_23 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 - -_llgo_17: ; preds = %_llgo_4 - %114 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %45, 1 - %115 = load ptr, ptr @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8 - %116 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %115, ptr %46) - %117 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %116, 0 - %118 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %117, ptr %114, 1 - %119 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %120 = getelementptr inbounds { %"github.com/goplus/llgo/internal/runtime.iface" }, ptr %119, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.iface" %45, ptr %120, align 8 - %121 = insertvalue { ptr, ptr } { ptr @"main.one$bound", ptr undef }, ptr %119, 1 - %122 = extractvalue { ptr, ptr } %121, 1 - %123 = extractvalue { ptr, ptr } %121, 0 - %124 = call i64 %123(ptr %122) - %125 = icmp ne i64 %124, 1 - br i1 %125, label %_llgo_5, label %_llgo_6 - -_llgo_18: ; preds = %_llgo_4 - %126 = load ptr, ptr @_llgo_string, align 8 - %127 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 21 }, ptr %127, align 8 - %128 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %126, 0 - %129 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %128, ptr %127, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %129) - unreachable - -_llgo_19: ; preds = %_llgo_6 - %130 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %54, 1 - %131 = load ptr, ptr @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8 - %132 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %131, ptr %55) - %133 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %132, 0 - %134 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %133, ptr %130, 1 - %135 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %136 = getelementptr inbounds { %"github.com/goplus/llgo/internal/runtime.iface" }, ptr %135, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.iface" %54, ptr %136, align 8 - %137 = insertvalue { ptr, ptr } { ptr @"main.one$bound", ptr undef }, ptr %135, 1 - %138 = extractvalue { ptr, ptr } %137, 1 - %139 = extractvalue { ptr, ptr } %137, 0 - %140 = call i64 %139(ptr %138) - %141 = icmp ne i64 %140, 1 - br i1 %141, label %_llgo_7, label %_llgo_8 - -_llgo_20: ; preds = %_llgo_6 - %142 = load ptr, ptr @_llgo_string, align 8 - %143 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 21 }, ptr %143, align 8 - %144 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %142, 0 - %145 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %144, ptr %143, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %145) - unreachable - -_llgo_21: ; preds = %_llgo_12 - %146 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %97, 1 - %147 = load ptr, ptr @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8 - %148 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %147, ptr %98) - %149 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %148, 0 - %150 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %149, ptr %146, 1 - %151 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %152 = getelementptr inbounds { %"github.com/goplus/llgo/internal/runtime.iface" }, ptr %151, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.iface" %97, ptr %152, align 8 - %153 = insertvalue { ptr, ptr } { ptr @"main.two$bound", ptr undef }, ptr %151, 1 - %154 = extractvalue { ptr, ptr } %153, 1 - %155 = extractvalue { ptr, ptr } %153, 0 - %156 = call %"github.com/goplus/llgo/internal/runtime.String" %155(ptr %154) - %157 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" %156, %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 3 }) - %158 = xor i1 %157, true - br i1 %158, label %_llgo_13, label %_llgo_14 - -_llgo_22: ; preds = %_llgo_12 - %159 = load ptr, ptr @_llgo_string, align 8 - %160 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 21 }, ptr %160, align 8 - %161 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %159, 0 - %162 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %161, ptr %160, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %162) - unreachable - -_llgo_23: ; preds = %_llgo_14 - %163 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %106, 1 - %164 = load ptr, ptr @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8 - %165 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %164, ptr %107) - %166 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %165, 0 - %167 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %166, ptr %163, 1 - %168 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %169 = getelementptr inbounds { %"github.com/goplus/llgo/internal/runtime.iface" }, ptr %168, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.iface" %106, ptr %169, align 8 - %170 = insertvalue { ptr, ptr } { ptr @"main.two$bound", ptr undef }, ptr %168, 1 - %171 = extractvalue { ptr, ptr } %170, 1 - %172 = extractvalue { ptr, ptr } %170, 0 - %173 = call %"github.com/goplus/llgo/internal/runtime.String" %172(ptr %171) - %174 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" %173, %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 3 }) - %175 = xor i1 %174, true - br i1 %175, label %_llgo_15, label %_llgo_16 - -_llgo_24: ; preds = %_llgo_14 - %176 = load ptr, ptr @_llgo_string, align 8 - %177 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 21 }, ptr %177, align 8 - %178 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %176, 0 - %179 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %178, ptr %177, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %179) - unreachable -} - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 - -declare ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -define void @"main.init$after"() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 4 }, i64 25, i64 0, i64 2, i64 2) - store ptr %0, ptr @_llgo_main.impl, align 8 - %1 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %4 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %3, 0 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %4, i64 0, 1 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %5, i64 0, 2 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, i64 0, %"github.com/goplus/llgo/internal/runtime.Slice" %6) - store ptr %7, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %8 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - %9 = load ptr, ptr @_llgo_int, align 8 - %10 = icmp eq ptr %9, null - br i1 %10, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %11, ptr @_llgo_int, align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %12 = load ptr, ptr @_llgo_int, align 8 - %13 = load ptr, ptr @_llgo_int, align 8 - %14 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %15 = icmp eq ptr %14, null - br i1 %15, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %16 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %17 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %16, 0 - %18 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %17, i64 0, 1 - %19 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %18, i64 0, 2 - %20 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %21 = getelementptr ptr, ptr %20, i64 0 - store ptr %13, ptr %21, align 8 - %22 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %20, 0 - %23 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %22, i64 1, 1 - %24 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %23, i64 1, 2 - %25 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %19, %"github.com/goplus/llgo/internal/runtime.Slice" %24, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %25) - store ptr %25, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %26 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %27 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %26, 1 - %28 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %27, ptr @"main.(*impl).one", 2 - %29 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %28, ptr @"main.(*impl).one", 3 - %30 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %26, 1 - %31 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %30, ptr @"main.(*impl).one", 2 - %32 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %31, ptr @main.impl.one, 3 - %33 = load ptr, ptr @_llgo_string, align 8 - %34 = icmp eq ptr %33, null - br i1 %34, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %35, ptr @_llgo_string, align 8 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - %36 = load ptr, ptr @_llgo_string, align 8 - %37 = load ptr, ptr @_llgo_string, align 8 - %38 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %39 = icmp eq ptr %38, null - br i1 %39, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - %40 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %41 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %40, 0 - %42 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %41, i64 0, 1 - %43 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %42, i64 0, 2 - %44 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %45 = getelementptr ptr, ptr %44, i64 0 - store ptr %37, ptr %45, align 8 - %46 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %44, 0 - %47 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %46, i64 1, 1 - %48 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %47, i64 1, 2 - %49 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %43, %"github.com/goplus/llgo/internal/runtime.Slice" %48, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %49) - store ptr %49, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - br label %_llgo_10 - -_llgo_10: ; preds = %_llgo_9, %_llgo_8 - %50 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %51 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %50, 1 - %52 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %51, ptr @"main.(*impl).two", 2 - %53 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %52, ptr @"main.(*impl).two", 3 - %54 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %50, 1 - %55 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %54, ptr @"main.(*impl).two", 2 - %56 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %55, ptr @main.impl.two, 3 - %57 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %58 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %57, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %32, ptr %58, align 8 - %59 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %57, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %56, ptr %59, align 8 - %60 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %57, 0 - %61 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %60, i64 2, 1 - %62 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %61, i64 2, 2 - %63 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %64 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %63, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %29, ptr %64, align 8 - %65 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %63, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %53, ptr %65, align 8 - %66 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %63, 0 - %67 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %66, i64 2, 1 - %68 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %67, i64 2, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, ptr %8, %"github.com/goplus/llgo/internal/runtime.Slice" %62, %"github.com/goplus/llgo/internal/runtime.Slice" %68) - %69 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %70 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %71 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 8 }, ptr undef }, ptr %69, 1 - %72 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 8 }, ptr undef }, ptr %70, 1 - %73 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %74 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %73, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %71, ptr %74, align 8 - %75 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %73, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %72, ptr %75, align 8 - %76 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %73, 0 - %77 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %76, i64 2, 1 - %78 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %77, i64 2, 2 - %79 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %78) - store ptr %79, ptr @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8 - %80 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 1 }) - %81 = load ptr, ptr @_llgo_main.I, align 8 - %82 = icmp eq ptr %81, null - br i1 %82, label %_llgo_11, label %_llgo_12 - -_llgo_11: ; preds = %_llgo_10 - store ptr %80, ptr @_llgo_main.I, align 8 - br label %_llgo_12 - -_llgo_12: ; preds = %_llgo_11, %_llgo_10 - %83 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %84 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - br i1 %82, label %_llgo_13, label %_llgo_14 - -_llgo_13: ; preds = %_llgo_12 - %85 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 8 }, ptr undef }, ptr %83, 1 - %86 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 8 }, ptr undef }, ptr %84, 1 - %87 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %88 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %87, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %85, ptr %88, align 8 - %89 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %87, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %86, ptr %89, align 8 - %90 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %87, 0 - %91 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %90, i64 2, 1 - %92 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %91, i64 2, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr %80, %"github.com/goplus/llgo/internal/runtime.Slice" %92) - br label %_llgo_14 - -_llgo_14: ; preds = %_llgo_13, %_llgo_12 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr, ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") - -declare ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr, ptr) - -define i64 @"main.one$bound"(ptr %0) { -_llgo_0: - %1 = load { %"github.com/goplus/llgo/internal/runtime.iface" }, ptr %0, align 8 - %2 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface" } %1, 0 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %2) - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %2, 0 - %5 = getelementptr ptr, ptr %4, i64 3 - %6 = load ptr, ptr %5, align 8 - %7 = insertvalue { ptr, ptr } undef, ptr %6, 0 - %8 = insertvalue { ptr, ptr } %7, ptr %3, 1 - %9 = extractvalue { ptr, ptr } %8, 1 - %10 = extractvalue { ptr, ptr } %8, 0 - %11 = call i64 %10(ptr %9) - ret i64 %11 -} - -declare i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String") - -define %"github.com/goplus/llgo/internal/runtime.String" @"main.two$bound"(ptr %0) { -_llgo_0: - %1 = load { %"github.com/goplus/llgo/internal/runtime.iface" }, ptr %0, align 8 - %2 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface" } %1, 0 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %2) - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %2, 0 - %5 = getelementptr ptr, ptr %4, i64 4 - %6 = load ptr, ptr %5, align 8 - %7 = insertvalue { ptr, ptr } undef, ptr %6, 0 - %8 = insertvalue { ptr, ptr } %7, ptr %3, 1 - %9 = extractvalue { ptr, ptr } %8, 1 - %10 = extractvalue { ptr, ptr } %8, 0 - %11 = call %"github.com/goplus/llgo/internal/runtime.String" %10(ptr %9) - ret %"github.com/goplus/llgo/internal/runtime.String" %11 -} - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testgo/interface/out.ll b/cl/_testgo/interface/out.ll deleted file mode 100644 index 8aab03d4..00000000 --- a/cl/_testgo/interface/out.ll +++ /dev/null @@ -1,485 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%main.Game1 = type { ptr } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } -%"github.com/goplus/llgo/internal/abi.Imethod" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@_llgo_main.Game1 = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [4 x i8] c"main", align 1 -@1 = private unnamed_addr constant [5 x i8] c"Game1", align 1 -@"_llgo_github.com/goplus/llgo/cl/internal/foo.Game" = linkonce global ptr null, align 8 -@2 = private unnamed_addr constant [38 x i8] c"github.com/goplus/llgo/cl/internal/foo", align 1 -@3 = private unnamed_addr constant [4 x i8] c"Game", align 1 -@"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw" = linkonce global ptr null, align 8 -@4 = private unnamed_addr constant [4 x i8] c"Load", align 1 -@"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 -@5 = private unnamed_addr constant [8 x i8] c"initGame", align 1 -@6 = private unnamed_addr constant [47 x i8] c"github.com/goplus/llgo/cl/internal/foo.initGame", align 1 -@"*_llgo_github.com/goplus/llgo/cl/internal/foo.Game" = linkonce global ptr null, align 8 -@"_llgo_struct$cJmCzeVn0orHWafCrTGAnbbAF46F2A4Fms4bJBm8ITI" = linkonce global ptr null, align 8 -@"*_llgo_main.Game1" = linkonce global ptr null, align 8 -@_llgo_main.Game2 = linkonce global ptr null, align 8 -@7 = private unnamed_addr constant [5 x i8] c"Game2", align 1 -@8 = private unnamed_addr constant [13 x i8] c"main.initGame", align 1 -@"*_llgo_main.Game2" = linkonce global ptr null, align 8 -@"_llgo_github.com/goplus/llgo/cl/internal/foo.Gamer" = linkonce global ptr null, align 8 -@9 = private unnamed_addr constant [5 x i8] c"Gamer", align 1 -@"main.iface$sO8a1LvuUsjXwiwaC6sR9-L4DiYgiOnZi7iosyShJXg" = linkonce global ptr null, align 8 -@10 = private unnamed_addr constant [2 x i8] c"OK", align 1 -@11 = private unnamed_addr constant [4 x i8] c"FAIL", align 1 - -define void @main.Game1.Load(%main.Game1 %0) { -_llgo_0: - %1 = alloca %main.Game1, align 8 - call void @llvm.memset(ptr %1, i8 0, i64 8, i1 false) - store %main.Game1 %0, ptr %1, align 8 - %2 = getelementptr inbounds %main.Game1, ptr %1, i32 0, i32 0 - %3 = load ptr, ptr %2, align 8 - call void @"github.com/goplus/llgo/cl/internal/foo.(*Game).Load"(ptr %3) - ret void -} - -define void @main.Game1.initGame(%main.Game1 %0) { -_llgo_0: - %1 = alloca %main.Game1, align 8 - call void @llvm.memset(ptr %1, i8 0, i64 8, i1 false) - store %main.Game1 %0, ptr %1, align 8 - %2 = getelementptr inbounds %main.Game1, ptr %1, i32 0, i32 0 - %3 = load ptr, ptr %2, align 8 - call void @"github.com/goplus/llgo/cl/internal/foo.(*Game).initGame"(ptr %3) - ret void -} - -define void @"main.(*Game1).Load"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %main.Game1, ptr %0, i32 0, i32 0 - %2 = load ptr, ptr %1, align 8 - call void @"github.com/goplus/llgo/cl/internal/foo.(*Game).Load"(ptr %2) - ret void -} - -define void @"main.(*Game1).initGame"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %main.Game1, ptr %0, i32 0, i32 0 - %2 = load ptr, ptr %1, align 8 - call void @"github.com/goplus/llgo/cl/internal/foo.(*Game).initGame"(ptr %2) - ret void -} - -define void @"main.(*Game2).initGame"(ptr %0) { -_llgo_0: - ret void -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"github.com/goplus/llgo/cl/internal/foo.init"() - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %3 = getelementptr inbounds %main.Game1, ptr %2, i32 0, i32 0 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 0) - store ptr %4, ptr %3, align 8 - %5 = load ptr, ptr @_llgo_main.Game1, align 8 - %6 = load ptr, ptr @"*_llgo_main.Game1", align 8 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %6, 0 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %7, ptr %2, 1 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 0) - %10 = load ptr, ptr @_llgo_main.Game2, align 8 - %11 = load ptr, ptr @"*_llgo_main.Game2", align 8 - %12 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %11, 0 - %13 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %12, ptr %9, 1 - %14 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %8, 0 - %15 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Gamer", align 8 - %16 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %15, ptr %14) - br i1 %16, label %_llgo_3, label %_llgo_4 - -_llgo_1: ; preds = %_llgo_5 - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %36) - %18 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %36, 0 - %19 = getelementptr ptr, ptr %18, i64 3 - %20 = load ptr, ptr %19, align 8 - %21 = insertvalue { ptr, ptr } undef, ptr %20, 0 - %22 = insertvalue { ptr, ptr } %21, ptr %17, 1 - %23 = extractvalue { ptr, ptr } %22, 1 - %24 = extractvalue { ptr, ptr } %22, 0 - call void %24(ptr %23) - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_5 - %25 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %13, 0 - %26 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Gamer", align 8 - %27 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %26, ptr %25) - br i1 %27, label %_llgo_6, label %_llgo_7 - -_llgo_3: ; preds = %_llgo_0 - %28 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %8, 1 - %29 = load ptr, ptr @"main.iface$sO8a1LvuUsjXwiwaC6sR9-L4DiYgiOnZi7iosyShJXg", align 8 - %30 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %29, ptr %14) - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %30, 0 - %32 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %31, ptr %28, 1 - %33 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/internal/runtime.iface" %32, 0 - %34 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %33, i1 true, 1 - br label %_llgo_5 - -_llgo_4: ; preds = %_llgo_0 - br label %_llgo_5 - -_llgo_5: ; preds = %_llgo_4, %_llgo_3 - %35 = phi { %"github.com/goplus/llgo/internal/runtime.iface", i1 } [ %34, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] - %36 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %35, 0 - %37 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %35, 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @10, i64 2 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface" %36) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %37) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - br i1 %37, label %_llgo_1, label %_llgo_2 - -_llgo_6: ; preds = %_llgo_2 - %38 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %13, 1 - %39 = load ptr, ptr @"main.iface$sO8a1LvuUsjXwiwaC6sR9-L4DiYgiOnZi7iosyShJXg", align 8 - %40 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %39, ptr %25) - %41 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %40, 0 - %42 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %41, ptr %38, 1 - %43 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/internal/runtime.iface" %42, 0 - %44 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %43, i1 true, 1 - br label %_llgo_8 - -_llgo_7: ; preds = %_llgo_2 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - %45 = phi { %"github.com/goplus/llgo/internal/runtime.iface", i1 } [ %44, %_llgo_6 ], [ zeroinitializer, %_llgo_7 ] - %46 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %45, 0 - %47 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %45, 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface" %46) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %47) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 - -declare void @"github.com/goplus/llgo/cl/internal/foo.(*Game).Load"(ptr) - -declare void @"github.com/goplus/llgo/cl/internal/foo.(*Game).initGame"(ptr) - -declare void @"github.com/goplus/llgo/cl/internal/foo.init"() - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -define void @"main.init$after"() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 5 }, i64 25, i64 8, i64 2, i64 2) - %1 = load ptr, ptr @_llgo_main.Game1, align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %0) - store ptr %0, ptr @_llgo_main.Game1, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 38 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 0, i64 0, i64 2) - %4 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Game", align 8 - %5 = icmp eq ptr %4, null - br i1 %5, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - store ptr %3, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Game", align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %6 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - %7 = icmp eq ptr %6, null - br i1 %7, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %8, 0 - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, i64 0, 1 - %11 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %10, i64 0, 2 - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 0, %"github.com/goplus/llgo/internal/runtime.Slice" %11) - store ptr %12, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %13 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - br i1 %5, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - %14 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %15 = icmp eq ptr %14, null - br i1 %15, label %_llgo_9, label %_llgo_10 - -_llgo_8: ; preds = %_llgo_10, %_llgo_6 - %16 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Game", align 8 - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 38 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 0, i64 0, i64 2) - %18 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/cl/internal/foo.Game", align 8 - %19 = icmp eq ptr %18, null - br i1 %19, label %_llgo_11, label %_llgo_12 - -_llgo_9: ; preds = %_llgo_7 - %20 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %21 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %20, 0 - %22 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %21, i64 0, 1 - %23 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %22, i64 0, 2 - %24 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %25 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %24, 0 - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %25, i64 0, 1 - %27 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %26, i64 0, 2 - %28 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %23, %"github.com/goplus/llgo/internal/runtime.Slice" %27, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %28) - store ptr %28, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - br label %_llgo_10 - -_llgo_10: ; preds = %_llgo_9, %_llgo_7 - %29 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %30 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %29, 1 - %31 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %30, ptr @"github.com/goplus/llgo/cl/internal/foo.(*Game).Load", 2 - %32 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %31, ptr @"github.com/goplus/llgo/cl/internal/foo.(*Game).Load", 3 - %33 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %34 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 47 }, ptr undef, ptr undef, ptr undef }, ptr %33, 1 - %35 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %34, ptr @"github.com/goplus/llgo/cl/internal/foo.(*Game).initGame", 2 - %36 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %35, ptr @"github.com/goplus/llgo/cl/internal/foo.(*Game).initGame", 3 - %37 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %38 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %37, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %32, ptr %38, align 8 - %39 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %37, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %36, ptr %39, align 8 - %40 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %37, 0 - %41 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %40, i64 2, 1 - %42 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %41, i64 2, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %3, ptr %13, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %42) - br label %_llgo_8 - -_llgo_11: ; preds = %_llgo_8 - %43 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %17) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %43) - store ptr %43, ptr @"*_llgo_github.com/goplus/llgo/cl/internal/foo.Game", align 8 - br label %_llgo_12 - -_llgo_12: ; preds = %_llgo_11, %_llgo_8 - %44 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/cl/internal/foo.Game", align 8 - %45 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 38 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 0, i64 0, i64 2) - %46 = load ptr, ptr @"_llgo_struct$cJmCzeVn0orHWafCrTGAnbbAF46F2A4Fms4bJBm8ITI", align 8 - %47 = icmp eq ptr %46, null - br i1 %47, label %_llgo_13, label %_llgo_14 - -_llgo_13: ; preds = %_llgo_12 - %48 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %45) - %49 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, ptr %48, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 true) - %50 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %51 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %50, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %49, ptr %51, align 8 - %52 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %50, 0 - %53 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %52, i64 1, 1 - %54 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %53, i64 1, 2 - %55 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %54) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %55) - store ptr %55, ptr @"_llgo_struct$cJmCzeVn0orHWafCrTGAnbbAF46F2A4Fms4bJBm8ITI", align 8 - br label %_llgo_14 - -_llgo_14: ; preds = %_llgo_13, %_llgo_12 - %56 = load ptr, ptr @"_llgo_struct$cJmCzeVn0orHWafCrTGAnbbAF46F2A4Fms4bJBm8ITI", align 8 - br i1 %2, label %_llgo_15, label %_llgo_16 - -_llgo_15: ; preds = %_llgo_14 - %57 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %58 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %57, 1 - %59 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %58, ptr @"main.(*Game1).Load", 2 - %60 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %59, ptr @"main.(*Game1).Load", 3 - %61 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %57, 1 - %62 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %61, ptr @"main.(*Game1).Load", 2 - %63 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %62, ptr @main.Game1.Load, 3 - %64 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %65 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 47 }, ptr undef, ptr undef, ptr undef }, ptr %64, 1 - %66 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %65, ptr @"github.com/goplus/llgo/cl/internal/foo.(*Game).initGame", 2 - %67 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %66, ptr @"github.com/goplus/llgo/cl/internal/foo.(*Game).initGame", 3 - %68 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %69 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %68, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %63, ptr %69, align 8 - %70 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %68, 0 - %71 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %70, i64 1, 1 - %72 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %71, i64 1, 2 - %73 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %74 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %73, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %60, ptr %74, align 8 - %75 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %73, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %67, ptr %75, align 8 - %76 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %73, 0 - %77 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %76, i64 2, 1 - %78 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %77, i64 2, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, ptr %56, %"github.com/goplus/llgo/internal/runtime.Slice" %72, %"github.com/goplus/llgo/internal/runtime.Slice" %78) - br label %_llgo_16 - -_llgo_16: ; preds = %_llgo_15, %_llgo_14 - %79 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 5 }, i64 25, i64 8, i64 2, i64 2) - %80 = load ptr, ptr @"*_llgo_main.Game1", align 8 - %81 = icmp eq ptr %80, null - br i1 %81, label %_llgo_17, label %_llgo_18 - -_llgo_17: ; preds = %_llgo_16 - %82 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %79) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %82) - store ptr %82, ptr @"*_llgo_main.Game1", align 8 - br label %_llgo_18 - -_llgo_18: ; preds = %_llgo_17, %_llgo_16 - %83 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 5 }, i64 25, i64 0, i64 0, i64 1) - %84 = load ptr, ptr @_llgo_main.Game2, align 8 - %85 = icmp eq ptr %84, null - br i1 %85, label %_llgo_19, label %_llgo_20 - -_llgo_19: ; preds = %_llgo_18 - store ptr %83, ptr @_llgo_main.Game2, align 8 - br label %_llgo_20 - -_llgo_20: ; preds = %_llgo_19, %_llgo_18 - %86 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 - br i1 %85, label %_llgo_21, label %_llgo_22 - -_llgo_21: ; preds = %_llgo_20 - %87 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %88 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %87, 1 - %89 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %88, ptr @"main.(*Game2).initGame", 2 - %90 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %89, ptr @"main.(*Game2).initGame", 3 - %91 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %92 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %91, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %90, ptr %92, align 8 - %93 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %91, 0 - %94 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %93, i64 1, 1 - %95 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %94, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %83, ptr %86, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %95) - br label %_llgo_22 - -_llgo_22: ; preds = %_llgo_21, %_llgo_20 - %96 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 5 }, i64 25, i64 0, i64 0, i64 1) - %97 = load ptr, ptr @"*_llgo_main.Game2", align 8 - %98 = icmp eq ptr %97, null - br i1 %98, label %_llgo_23, label %_llgo_24 - -_llgo_23: ; preds = %_llgo_22 - %99 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %96) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %99) - store ptr %99, ptr @"*_llgo_main.Game2", align 8 - br label %_llgo_24 - -_llgo_24: ; preds = %_llgo_23, %_llgo_22 - %100 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 38 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 5 }) - %101 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Gamer", align 8 - %102 = icmp eq ptr %101, null - br i1 %102, label %_llgo_25, label %_llgo_26 - -_llgo_25: ; preds = %_llgo_24 - store ptr %100, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Gamer", align 8 - br label %_llgo_26 - -_llgo_26: ; preds = %_llgo_25, %_llgo_24 - %103 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %104 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - br i1 %102, label %_llgo_27, label %_llgo_28 - -_llgo_27: ; preds = %_llgo_26 - %105 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, ptr undef }, ptr %103, 1 - %106 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 47 }, ptr undef }, ptr %104, 1 - %107 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %108 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %107, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %105, ptr %108, align 8 - %109 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %107, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %106, ptr %109, align 8 - %110 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %107, 0 - %111 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %110, i64 2, 1 - %112 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %111, i64 2, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr %100, %"github.com/goplus/llgo/internal/runtime.Slice" %112) - br label %_llgo_28 - -_llgo_28: ; preds = %_llgo_27, %_llgo_26 - %113 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %114 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %115 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, ptr undef }, ptr %113, 1 - %116 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 47 }, ptr undef }, ptr %114, 1 - %117 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %118 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %117, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %115, ptr %118, align 8 - %119 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %117, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %116, ptr %119, align 8 - %120 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %117, 0 - %121 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %120, i64 2, 1 - %122 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %121, i64 2, 2 - %123 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %122) - store ptr %123, ptr @"main.iface$sO8a1LvuUsjXwiwaC6sR9-L4DiYgiOnZi7iosyShJXg", align 8 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr, ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface") - -attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testgo/invoke/out.ll b/cl/_testgo/invoke/out.ll deleted file mode 100644 index 3bded9dc..00000000 --- a/cl/_testgo/invoke/out.ll +++ /dev/null @@ -1,1089 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%main.T = type { %"github.com/goplus/llgo/internal/runtime.String" } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%main.T5 = type { i64 } -%main.T6 = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } -%"github.com/goplus/llgo/internal/abi.Imethod" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr } - -@"main.init$guard" = global i1 false, align 1 -@0 = private unnamed_addr constant [6 x i8] c"invoke", align 1 -@1 = private unnamed_addr constant [7 x i8] c"invoke1", align 1 -@2 = private unnamed_addr constant [7 x i8] c"invoke2", align 1 -@3 = private unnamed_addr constant [7 x i8] c"invoke3", align 1 -@4 = private unnamed_addr constant [7 x i8] c"invoke4", align 1 -@5 = private unnamed_addr constant [7 x i8] c"invoke5", align 1 -@6 = private unnamed_addr constant [7 x i8] c"invoke6", align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@7 = private unnamed_addr constant [5 x i8] c"hello", align 1 -@_llgo_main.T = linkonce global ptr null, align 8 -@8 = private unnamed_addr constant [4 x i8] c"main", align 1 -@9 = private unnamed_addr constant [1 x i8] c"T", align 1 -@_llgo_string = linkonce global ptr null, align 8 -@"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ" = linkonce global ptr null, align 8 -@10 = private unnamed_addr constant [1 x i8] c"s", align 1 -@11 = private unnamed_addr constant [6 x i8] c"Invoke", align 1 -@_llgo_int = linkonce global ptr null, align 8 -@"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA" = linkonce global ptr null, align 8 -@12 = private unnamed_addr constant [6 x i8] c"Method", align 1 -@"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 -@"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0" = linkonce global ptr null, align 8 -@"*_llgo_main.T" = linkonce global ptr null, align 8 -@_llgo_main.T1 = linkonce global ptr null, align 8 -@13 = private unnamed_addr constant [2 x i8] c"T1", align 1 -@"*_llgo_main.T1" = linkonce global ptr null, align 8 -@_llgo_main.T2 = linkonce global ptr null, align 8 -@14 = private unnamed_addr constant [2 x i8] c"T2", align 1 -@_llgo_float64 = linkonce global ptr null, align 8 -@"*_llgo_main.T2" = linkonce global ptr null, align 8 -@_llgo_main.T3 = linkonce global ptr null, align 8 -@15 = private unnamed_addr constant [2 x i8] c"T3", align 1 -@_llgo_int8 = linkonce global ptr null, align 8 -@"*_llgo_main.T3" = linkonce global ptr null, align 8 -@_llgo_main.T4 = linkonce global ptr null, align 8 -@16 = private unnamed_addr constant [2 x i8] c"T4", align 1 -@"[1]_llgo_int" = linkonce global ptr null, align 8 -@"*_llgo_main.T4" = linkonce global ptr null, align 8 -@_llgo_main.T5 = linkonce global ptr null, align 8 -@17 = private unnamed_addr constant [2 x i8] c"T5", align 1 -@"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U" = linkonce global ptr null, align 8 -@18 = private unnamed_addr constant [1 x i8] c"n", align 1 -@"*_llgo_main.T5" = linkonce global ptr null, align 8 -@_llgo_main.T6 = linkonce global ptr null, align 8 -@19 = private unnamed_addr constant [2 x i8] c"T6", align 1 -@_llgo_Pointer = linkonce global ptr null, align 8 -@"main.struct$TWlEC03isGYe2Nyy2HYnOBsOYR1lIx43oIUpIyqvm4s" = linkonce global ptr null, align 8 -@20 = private unnamed_addr constant [2 x i8] c"$f", align 1 -@21 = private unnamed_addr constant [5 x i8] c"$data", align 1 -@"*_llgo_main.T6" = linkonce global ptr null, align 8 -@"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI" = linkonce global ptr null, align 8 -@22 = private unnamed_addr constant [5 x i8] c"world", align 1 -@_llgo_main.I = linkonce global ptr null, align 8 -@23 = private unnamed_addr constant [1 x i8] c"I", align 1 -@24 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 -@_llgo_any = linkonce global ptr null, align 8 - -define i64 @main.T.Invoke(%main.T %0) { -_llgo_0: - %1 = alloca %main.T, align 8 - call void @llvm.memset(ptr %1, i8 0, i64 16, i1 false) - store %main.T %0, ptr %1, align 8 - %2 = getelementptr inbounds %main.T, ptr %1, i32 0, i32 0 - %3 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2, align 8 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 6 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i64 0 -} - -define i64 @"main.(*T).Invoke"(ptr %0) { -_llgo_0: - %1 = load %main.T, ptr %0, align 8 - %2 = call i64 @main.T.Invoke(%main.T %1) - ret i64 %2 -} - -define void @"main.(*T).Method"(ptr %0) { -_llgo_0: - ret void -} - -define i64 @main.T1.Invoke(i64 %0) { -_llgo_0: - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 7 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %0) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i64 1 -} - -define i64 @"main.(*T1).Invoke"(ptr %0) { -_llgo_0: - %1 = load i64, ptr %0, align 4 - %2 = call i64 @main.T1.Invoke(i64 %1) - ret i64 %2 -} - -define i64 @main.T2.Invoke(double %0) { -_llgo_0: - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 7 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double %0) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i64 2 -} - -define i64 @"main.(*T2).Invoke"(ptr %0) { -_llgo_0: - %1 = load double, ptr %0, align 8 - %2 = call i64 @main.T2.Invoke(double %1) - ret i64 %2 -} - -define i64 @"main.(*T3).Invoke"(ptr %0) { -_llgo_0: - %1 = load i8, ptr %0, align 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 7 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %2 = sext i8 %1 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %2) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i64 3 -} - -define i64 @main.T4.Invoke([1 x i64] %0) { -_llgo_0: - %1 = alloca [1 x i64], align 8 - call void @llvm.memset(ptr %1, i8 0, i64 8, i1 false) - store [1 x i64] %0, ptr %1, align 4 - %2 = getelementptr inbounds i64, ptr %1, i64 0 - %3 = load i64, ptr %2, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 7 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i64 4 -} - -define i64 @"main.(*T4).Invoke"(ptr %0) { -_llgo_0: - %1 = load [1 x i64], ptr %0, align 4 - %2 = call i64 @main.T4.Invoke([1 x i64] %1) - ret i64 %2 -} - -define i64 @main.T5.Invoke(%main.T5 %0) { -_llgo_0: - %1 = alloca %main.T5, align 8 - call void @llvm.memset(ptr %1, i8 0, i64 8, i1 false) - store %main.T5 %0, ptr %1, align 4 - %2 = getelementptr inbounds %main.T5, ptr %1, i32 0, i32 0 - %3 = load i64, ptr %2, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 7 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i64 5 -} - -define i64 @"main.(*T5).Invoke"(ptr %0) { -_llgo_0: - %1 = load %main.T5, ptr %0, align 4 - %2 = call i64 @main.T5.Invoke(%main.T5 %1) - ret i64 %2 -} - -define i64 @main.T6.Invoke(%main.T6 %0) { -_llgo_0: - %1 = extractvalue %main.T6 %0, 1 - %2 = extractvalue %main.T6 %0, 0 - %3 = call i64 %2(ptr %1) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 7 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i64 6 -} - -define i64 @"main.(*T6).Invoke"(ptr %0) { -_llgo_0: - %1 = load %main.T6, ptr %0, align 8 - %2 = call i64 @main.T6.Invoke(%main.T6 %1) - ret i64 %2 -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %0) - %2 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %0, 0 - %3 = getelementptr ptr, ptr %2, i64 3 - %4 = load ptr, ptr %3, align 8 - %5 = insertvalue { ptr, ptr } undef, ptr %4, 0 - %6 = insertvalue { ptr, ptr } %5, ptr %1, 1 - %7 = extractvalue { ptr, ptr } %6, 1 - %8 = extractvalue { ptr, ptr } %6, 0 - %9 = call i64 %8(ptr %7) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %9) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - %3 = getelementptr inbounds %main.T, ptr %2, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 5 }, ptr %3, align 8 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - store i64 100, ptr %4, align 4 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - store double 1.001000e+02, ptr %5, align 8 - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 1) - store i8 127, ptr %6, align 1 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %8 = getelementptr inbounds i64, ptr %7, i64 0 - store i64 200, ptr %8, align 4 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %10 = getelementptr inbounds %main.T5, ptr %9, i32 0, i32 0 - store i64 300, ptr %10, align 4 - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - store %main.T6 { ptr @"__llgo_stub.main.main$1", ptr null }, ptr %11, align 8 - %12 = load %main.T, ptr %2, align 8 - %13 = load ptr, ptr @_llgo_main.T, align 8 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %main.T %12, ptr %14, align 8 - %15 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %16 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %16, ptr %13) - %18 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %17, 0 - %19 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %18, ptr %14, 1 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %19) - %20 = load ptr, ptr @"*_llgo_main.T", align 8 - %21 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %22 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %21, ptr %20) - %23 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %22, 0 - %24 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %23, ptr %2, 1 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %24) - %25 = load i64, ptr %4, align 4 - %26 = load ptr, ptr @_llgo_main.T1, align 8 - %27 = inttoptr i64 %25 to ptr - %28 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %29 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %28, ptr %26) - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %29, 0 - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %30, ptr %27, 1 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %31) - %32 = load ptr, ptr @"*_llgo_main.T1", align 8 - %33 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %34 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %33, ptr %32) - %35 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %34, 0 - %36 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %35, ptr %4, 1 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %36) - %37 = load double, ptr %5, align 8 - %38 = load ptr, ptr @_llgo_main.T2, align 8 - %39 = bitcast double %37 to i64 - %40 = inttoptr i64 %39 to ptr - %41 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %42 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %41, ptr %38) - %43 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %42, 0 - %44 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %43, ptr %40, 1 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %44) - %45 = load ptr, ptr @"*_llgo_main.T2", align 8 - %46 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %47 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %46, ptr %45) - %48 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %47, 0 - %49 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %48, ptr %5, 1 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %49) - %50 = load ptr, ptr @_llgo_main.T3, align 8 - %51 = load ptr, ptr @"*_llgo_main.T3", align 8 - %52 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %53 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %52, ptr %51) - %54 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %53, 0 - %55 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %54, ptr %6, 1 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %55) - %56 = load [1 x i64], ptr %7, align 4 - %57 = load ptr, ptr @_llgo_main.T4, align 8 - %58 = extractvalue [1 x i64] %56, 0 - %59 = inttoptr i64 %58 to ptr - %60 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %61 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %60, ptr %57) - %62 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %61, 0 - %63 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %62, ptr %59, 1 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %63) - %64 = load ptr, ptr @"*_llgo_main.T4", align 8 - %65 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %66 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %65, ptr %64) - %67 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %66, 0 - %68 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %67, ptr %7, 1 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %68) - %69 = load %main.T5, ptr %9, align 4 - %70 = load ptr, ptr @_llgo_main.T5, align 8 - %71 = extractvalue %main.T5 %69, 0 - %72 = inttoptr i64 %71 to ptr - %73 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %74 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %73, ptr %70) - %75 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %74, 0 - %76 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %75, ptr %72, 1 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %76) - %77 = load ptr, ptr @"*_llgo_main.T5", align 8 - %78 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %79 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %78, ptr %77) - %80 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %79, 0 - %81 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %80, ptr %9, 1 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %81) - %82 = load %main.T6, ptr %11, align 8 - %83 = load ptr, ptr @_llgo_main.T6, align 8 - %84 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %main.T6 %82, ptr %84, align 8 - %85 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %86 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %85, ptr %83) - %87 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %86, 0 - %88 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %87, ptr %84, 1 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %88) - %89 = load ptr, ptr @"*_llgo_main.T6", align 8 - %90 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %91 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %90, ptr %89) - %92 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %91, 0 - %93 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %92, ptr %11, 1 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %93) - %94 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) - %95 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %96 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %95, ptr %94) - %97 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %96, 0 - %98 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %97, ptr null, 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface" %98) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %99 = load ptr, ptr @"*_llgo_main.T", align 8 - %100 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %101 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %102 = load ptr, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 - %103 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %102, ptr %99) - %104 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %103, 0 - %105 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %104, ptr %2, 1 - %106 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %105) - %107 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %105, 1 - %108 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %109 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %108, ptr %106) - %110 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %109, 0 - %111 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %110, ptr %107, 1 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %111) - %112 = alloca %main.T, align 8 - call void @llvm.memset(ptr %112, i8 0, i64 16, i1 false) - %113 = getelementptr inbounds %main.T, ptr %112, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @22, i64 5 }, ptr %113, align 8 - %114 = load %main.T, ptr %112, align 8 - %115 = load ptr, ptr @_llgo_main.T, align 8 - %116 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %main.T %114, ptr %116, align 8 - %117 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %115, 0 - %118 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %117, ptr %116, 1 - %119 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %118, 0 - %120 = load ptr, ptr @_llgo_main.I, align 8 - %121 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %120, ptr %119) - br i1 %121, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %122 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %118, 1 - %123 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %124 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %123, ptr %119) - %125 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %124, 0 - %126 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %125, ptr %122, 1 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %126) - %127 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %118, 0 - %128 = load ptr, ptr @_llgo_any, align 8 - %129 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %128, ptr %127) - br i1 %129, label %_llgo_3, label %_llgo_4 - -_llgo_2: ; preds = %_llgo_0 - %130 = load ptr, ptr @_llgo_string, align 8 - %131 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @24, i64 21 }, ptr %131, align 8 - %132 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %130, 0 - %133 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %132, ptr %131, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %133) - unreachable - -_llgo_3: ; preds = %_llgo_1 - %134 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %118, 1 - %135 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %127, 0 - %136 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %135, ptr %134, 1 - %137 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %136, 0 - %138 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %139 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %138, ptr %137) - br i1 %139, label %_llgo_5, label %_llgo_6 - -_llgo_4: ; preds = %_llgo_1 - %140 = load ptr, ptr @_llgo_string, align 8 - %141 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @24, i64 21 }, ptr %141, align 8 - %142 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %140, 0 - %143 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %142, ptr %141, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %143) - unreachable - -_llgo_5: ; preds = %_llgo_3 - %144 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %136, 1 - %145 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %146 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %145, ptr %137) - %147 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %146, 0 - %148 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %147, ptr %144, 1 - call void @main.invoke(%"github.com/goplus/llgo/internal/runtime.iface" %148) - ret i32 0 - -_llgo_6: ; preds = %_llgo_3 - %149 = load ptr, ptr @_llgo_string, align 8 - %150 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @24, i64 21 }, ptr %150, align 8 - %151 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %149, 0 - %152 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %151, ptr %150, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %152) - unreachable -} - -define i64 @"main.main$1"() { -_llgo_0: - ret i64 400 -} - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double) - -declare ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -define linkonce i64 @"__llgo_stub.main.main$1"(ptr %0) { -_llgo_0: - %1 = tail call i64 @"main.main$1"() - ret i64 %1 -} - -define void @"main.init$after"() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 1 }, i64 25, i64 16, i64 1, i64 2) - %1 = load ptr, ptr @_llgo_main.T, align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - store ptr %0, ptr @_llgo_main.T, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @_llgo_string, align 8 - %4 = icmp eq ptr %3, null - br i1 %4, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %5, ptr @_llgo_string, align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %6 = load ptr, ptr @_llgo_string, align 8 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %8 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @10, i64 1 }, ptr %7, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %10 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %9, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %8, ptr %10, align 8 - %11 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %9, 0 - %12 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %11, i64 1, 1 - %13 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %12, i64 1, 2 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %13) - store ptr %14, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - %15 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - br i1 %2, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %16 = load ptr, ptr @_llgo_int, align 8 - %17 = icmp eq ptr %16, null - br i1 %17, label %_llgo_7, label %_llgo_8 - -_llgo_6: ; preds = %_llgo_12, %_llgo_4 - %18 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %19 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - %20 = icmp eq ptr %19, null - br i1 %20, label %_llgo_13, label %_llgo_14 - -_llgo_7: ; preds = %_llgo_5 - %21 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %21, ptr @_llgo_int, align 8 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_5 - %22 = load ptr, ptr @_llgo_int, align 8 - %23 = load ptr, ptr @_llgo_int, align 8 - %24 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %25 = icmp eq ptr %24, null - br i1 %25, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - %26 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %27 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %26, 0 - %28 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %27, i64 0, 1 - %29 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %28, i64 0, 2 - %30 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %31 = getelementptr ptr, ptr %30, i64 0 - store ptr %23, ptr %31, align 8 - %32 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %30, 0 - %33 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %32, i64 1, 1 - %34 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %33, i64 1, 2 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %29, %"github.com/goplus/llgo/internal/runtime.Slice" %34, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %35) - store ptr %35, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - br label %_llgo_10 - -_llgo_10: ; preds = %_llgo_9, %_llgo_8 - %36 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %37 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %36, 1 - %38 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %37, ptr @"main.(*T).Invoke", 2 - %39 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %38, ptr @"main.(*T).Invoke", 3 - %40 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %36, 1 - %41 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %40, ptr @"main.(*T).Invoke", 2 - %42 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %41, ptr @main.T.Invoke, 3 - %43 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %44 = icmp eq ptr %43, null - br i1 %44, label %_llgo_11, label %_llgo_12 - -_llgo_11: ; preds = %_llgo_10 - %45 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %46 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %45, 0 - %47 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %46, i64 0, 1 - %48 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %47, i64 0, 2 - %49 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %50 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %49, 0 - %51 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %50, i64 0, 1 - %52 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %51, i64 0, 2 - %53 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %48, %"github.com/goplus/llgo/internal/runtime.Slice" %52, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %53) - store ptr %53, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - br label %_llgo_12 - -_llgo_12: ; preds = %_llgo_11, %_llgo_10 - %54 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %55 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @12, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %54, 1 - %56 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %55, ptr @"main.(*T).Method", 2 - %57 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %56, ptr @"main.(*T).Method", 3 - %58 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %59 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %58, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %42, ptr %59, align 8 - %60 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %58, 0 - %61 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %60, i64 1, 1 - %62 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %61, i64 1, 2 - %63 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %64 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %63, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %39, ptr %64, align 8 - %65 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %63, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %57, ptr %65, align 8 - %66 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %63, 0 - %67 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %66, i64 2, 1 - %68 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %67, i64 2, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, ptr %15, %"github.com/goplus/llgo/internal/runtime.Slice" %62, %"github.com/goplus/llgo/internal/runtime.Slice" %68) - br label %_llgo_6 - -_llgo_13: ; preds = %_llgo_6 - %69 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef }, ptr %18, 1 - %70 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %71 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %70, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %69, ptr %71, align 8 - %72 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %70, 0 - %73 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %72, i64 1, 1 - %74 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %73, i64 1, 2 - %75 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %74) - store ptr %75, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 - br label %_llgo_14 - -_llgo_14: ; preds = %_llgo_13, %_llgo_6 - %76 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 1 }, i64 25, i64 16, i64 1, i64 2) - %77 = load ptr, ptr @"*_llgo_main.T", align 8 - %78 = icmp eq ptr %77, null - br i1 %78, label %_llgo_15, label %_llgo_16 - -_llgo_15: ; preds = %_llgo_14 - %79 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %76) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %79) - store ptr %79, ptr @"*_llgo_main.T", align 8 - br label %_llgo_16 - -_llgo_16: ; preds = %_llgo_15, %_llgo_14 - %80 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @13, i64 2 }, i64 2, i64 8, i64 1, i64 1) - %81 = load ptr, ptr @_llgo_main.T1, align 8 - %82 = icmp eq ptr %81, null - br i1 %82, label %_llgo_17, label %_llgo_18 - -_llgo_17: ; preds = %_llgo_16 - store ptr %80, ptr @_llgo_main.T1, align 8 - br label %_llgo_18 - -_llgo_18: ; preds = %_llgo_17, %_llgo_16 - %83 = load ptr, ptr @_llgo_int, align 8 - br i1 %82, label %_llgo_19, label %_llgo_20 - -_llgo_19: ; preds = %_llgo_18 - %84 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %85 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %84, 1 - %86 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %85, ptr @"main.(*T1).Invoke", 2 - %87 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %86, ptr @"main.(*T1).Invoke", 3 - %88 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %84, 1 - %89 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %88, ptr @"main.(*T1).Invoke", 2 - %90 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %89, ptr @main.T1.Invoke, 3 - %91 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %92 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %91, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %90, ptr %92, align 8 - %93 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %91, 0 - %94 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %93, i64 1, 1 - %95 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %94, i64 1, 2 - %96 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %97 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %96, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %87, ptr %97, align 8 - %98 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %96, 0 - %99 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %98, i64 1, 1 - %100 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %99, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %80, ptr %83, %"github.com/goplus/llgo/internal/runtime.Slice" %95, %"github.com/goplus/llgo/internal/runtime.Slice" %100) - br label %_llgo_20 - -_llgo_20: ; preds = %_llgo_19, %_llgo_18 - %101 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @13, i64 2 }, i64 2, i64 8, i64 1, i64 1) - %102 = load ptr, ptr @"*_llgo_main.T1", align 8 - %103 = icmp eq ptr %102, null - br i1 %103, label %_llgo_21, label %_llgo_22 - -_llgo_21: ; preds = %_llgo_20 - %104 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %101) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %104) - store ptr %104, ptr @"*_llgo_main.T1", align 8 - br label %_llgo_22 - -_llgo_22: ; preds = %_llgo_21, %_llgo_20 - %105 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @14, i64 2 }, i64 14, i64 8, i64 1, i64 1) - %106 = load ptr, ptr @_llgo_main.T2, align 8 - %107 = icmp eq ptr %106, null - br i1 %107, label %_llgo_23, label %_llgo_24 - -_llgo_23: ; preds = %_llgo_22 - store ptr %105, ptr @_llgo_main.T2, align 8 - br label %_llgo_24 - -_llgo_24: ; preds = %_llgo_23, %_llgo_22 - %108 = load ptr, ptr @_llgo_float64, align 8 - %109 = icmp eq ptr %108, null - br i1 %109, label %_llgo_25, label %_llgo_26 - -_llgo_25: ; preds = %_llgo_24 - %110 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 46) - store ptr %110, ptr @_llgo_float64, align 8 - br label %_llgo_26 - -_llgo_26: ; preds = %_llgo_25, %_llgo_24 - %111 = load ptr, ptr @_llgo_float64, align 8 - br i1 %107, label %_llgo_27, label %_llgo_28 - -_llgo_27: ; preds = %_llgo_26 - %112 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %113 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %112, 1 - %114 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %113, ptr @"main.(*T2).Invoke", 2 - %115 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %114, ptr @"main.(*T2).Invoke", 3 - %116 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %112, 1 - %117 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %116, ptr @"main.(*T2).Invoke", 2 - %118 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %117, ptr @main.T2.Invoke, 3 - %119 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %120 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %119, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %118, ptr %120, align 8 - %121 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %119, 0 - %122 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %121, i64 1, 1 - %123 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %122, i64 1, 2 - %124 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %125 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %124, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %115, ptr %125, align 8 - %126 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %124, 0 - %127 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %126, i64 1, 1 - %128 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %127, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %105, ptr %111, %"github.com/goplus/llgo/internal/runtime.Slice" %123, %"github.com/goplus/llgo/internal/runtime.Slice" %128) - br label %_llgo_28 - -_llgo_28: ; preds = %_llgo_27, %_llgo_26 - %129 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @14, i64 2 }, i64 14, i64 8, i64 1, i64 1) - %130 = load ptr, ptr @"*_llgo_main.T2", align 8 - %131 = icmp eq ptr %130, null - br i1 %131, label %_llgo_29, label %_llgo_30 - -_llgo_29: ; preds = %_llgo_28 - %132 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %129) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %132) - store ptr %132, ptr @"*_llgo_main.T2", align 8 - br label %_llgo_30 - -_llgo_30: ; preds = %_llgo_29, %_llgo_28 - %133 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @15, i64 2 }, i64 3, i64 1, i64 0, i64 1) - %134 = load ptr, ptr @_llgo_main.T3, align 8 - %135 = icmp eq ptr %134, null - br i1 %135, label %_llgo_31, label %_llgo_32 - -_llgo_31: ; preds = %_llgo_30 - store ptr %133, ptr @_llgo_main.T3, align 8 - br label %_llgo_32 - -_llgo_32: ; preds = %_llgo_31, %_llgo_30 - %136 = load ptr, ptr @_llgo_int8, align 8 - %137 = icmp eq ptr %136, null - br i1 %137, label %_llgo_33, label %_llgo_34 - -_llgo_33: ; preds = %_llgo_32 - %138 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) - store ptr %138, ptr @_llgo_int8, align 8 - br label %_llgo_34 - -_llgo_34: ; preds = %_llgo_33, %_llgo_32 - %139 = load ptr, ptr @_llgo_int8, align 8 - br i1 %135, label %_llgo_35, label %_llgo_36 - -_llgo_35: ; preds = %_llgo_34 - %140 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %141 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %140, 1 - %142 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %141, ptr @"main.(*T3).Invoke", 2 - %143 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %142, ptr @"main.(*T3).Invoke", 3 - %144 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %145 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %144, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %143, ptr %145, align 8 - %146 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %144, 0 - %147 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %146, i64 1, 1 - %148 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %147, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %133, ptr %139, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %148) - br label %_llgo_36 - -_llgo_36: ; preds = %_llgo_35, %_llgo_34 - %149 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @15, i64 2 }, i64 3, i64 1, i64 0, i64 1) - %150 = load ptr, ptr @"*_llgo_main.T3", align 8 - %151 = icmp eq ptr %150, null - br i1 %151, label %_llgo_37, label %_llgo_38 - -_llgo_37: ; preds = %_llgo_36 - %152 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %149) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %152) - store ptr %152, ptr @"*_llgo_main.T3", align 8 - br label %_llgo_38 - -_llgo_38: ; preds = %_llgo_37, %_llgo_36 - %153 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @16, i64 2 }, i64 17, i64 8, i64 1, i64 1) - %154 = load ptr, ptr @_llgo_main.T4, align 8 - %155 = icmp eq ptr %154, null - br i1 %155, label %_llgo_39, label %_llgo_40 - -_llgo_39: ; preds = %_llgo_38 - store ptr %153, ptr @_llgo_main.T4, align 8 - br label %_llgo_40 - -_llgo_40: ; preds = %_llgo_39, %_llgo_38 - %156 = load ptr, ptr @"[1]_llgo_int", align 8 - %157 = icmp eq ptr %156, null - br i1 %157, label %_llgo_41, label %_llgo_42 - -_llgo_41: ; preds = %_llgo_40 - %158 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %159 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 1, ptr %158) - store ptr %159, ptr @"[1]_llgo_int", align 8 - br label %_llgo_42 - -_llgo_42: ; preds = %_llgo_41, %_llgo_40 - %160 = load ptr, ptr @"[1]_llgo_int", align 8 - br i1 %155, label %_llgo_43, label %_llgo_44 - -_llgo_43: ; preds = %_llgo_42 - %161 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %162 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %161, 1 - %163 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %162, ptr @"main.(*T4).Invoke", 2 - %164 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %163, ptr @"main.(*T4).Invoke", 3 - %165 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %161, 1 - %166 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %165, ptr @"main.(*T4).Invoke", 2 - %167 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %166, ptr @main.T4.Invoke, 3 - %168 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %169 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %168, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %167, ptr %169, align 8 - %170 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %168, 0 - %171 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %170, i64 1, 1 - %172 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %171, i64 1, 2 - %173 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %174 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %173, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %164, ptr %174, align 8 - %175 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %173, 0 - %176 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %175, i64 1, 1 - %177 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %176, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %153, ptr %160, %"github.com/goplus/llgo/internal/runtime.Slice" %172, %"github.com/goplus/llgo/internal/runtime.Slice" %177) - br label %_llgo_44 - -_llgo_44: ; preds = %_llgo_43, %_llgo_42 - %178 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @16, i64 2 }, i64 17, i64 8, i64 1, i64 1) - %179 = load ptr, ptr @"*_llgo_main.T4", align 8 - %180 = icmp eq ptr %179, null - br i1 %180, label %_llgo_45, label %_llgo_46 - -_llgo_45: ; preds = %_llgo_44 - %181 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %178) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %181) - store ptr %181, ptr @"*_llgo_main.T4", align 8 - br label %_llgo_46 - -_llgo_46: ; preds = %_llgo_45, %_llgo_44 - %182 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @17, i64 2 }, i64 25, i64 8, i64 1, i64 1) - %183 = load ptr, ptr @_llgo_main.T5, align 8 - %184 = icmp eq ptr %183, null - br i1 %184, label %_llgo_47, label %_llgo_48 - -_llgo_47: ; preds = %_llgo_46 - store ptr %182, ptr @_llgo_main.T5, align 8 - br label %_llgo_48 - -_llgo_48: ; preds = %_llgo_47, %_llgo_46 - %185 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %186 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @18, i64 1 }, ptr %185, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %187 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %188 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %187, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %186, ptr %188, align 8 - %189 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %187, 0 - %190 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %189, i64 1, 1 - %191 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %190, i64 1, 2 - %192 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %191) - store ptr %192, ptr @"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U", align 8 - %193 = load ptr, ptr @"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U", align 8 - br i1 %184, label %_llgo_49, label %_llgo_50 - -_llgo_49: ; preds = %_llgo_48 - %194 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %195 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %194, 1 - %196 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %195, ptr @"main.(*T5).Invoke", 2 - %197 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %196, ptr @"main.(*T5).Invoke", 3 - %198 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %194, 1 - %199 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %198, ptr @"main.(*T5).Invoke", 2 - %200 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %199, ptr @main.T5.Invoke, 3 - %201 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %202 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %201, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %200, ptr %202, align 8 - %203 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %201, 0 - %204 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %203, i64 1, 1 - %205 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %204, i64 1, 2 - %206 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %207 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %206, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %197, ptr %207, align 8 - %208 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %206, 0 - %209 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %208, i64 1, 1 - %210 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %209, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %182, ptr %193, %"github.com/goplus/llgo/internal/runtime.Slice" %205, %"github.com/goplus/llgo/internal/runtime.Slice" %210) - br label %_llgo_50 - -_llgo_50: ; preds = %_llgo_49, %_llgo_48 - %211 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @17, i64 2 }, i64 25, i64 8, i64 1, i64 1) - %212 = load ptr, ptr @"*_llgo_main.T5", align 8 - %213 = icmp eq ptr %212, null - br i1 %213, label %_llgo_51, label %_llgo_52 - -_llgo_51: ; preds = %_llgo_50 - %214 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %211) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %214) - store ptr %214, ptr @"*_llgo_main.T5", align 8 - br label %_llgo_52 - -_llgo_52: ; preds = %_llgo_51, %_llgo_50 - %215 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @19, i64 2 }, i64 25, i64 24, i64 1, i64 1) - %216 = load ptr, ptr @_llgo_main.T6, align 8 - %217 = icmp eq ptr %216, null - br i1 %217, label %_llgo_53, label %_llgo_54 - -_llgo_53: ; preds = %_llgo_52 - store ptr %215, ptr @_llgo_main.T6, align 8 - br label %_llgo_54 - -_llgo_54: ; preds = %_llgo_53, %_llgo_52 - %218 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %219 = load ptr, ptr @_llgo_Pointer, align 8 - %220 = icmp eq ptr %219, null - br i1 %220, label %_llgo_55, label %_llgo_56 - -_llgo_55: ; preds = %_llgo_54 - %221 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %221) - store ptr %221, ptr @_llgo_Pointer, align 8 - br label %_llgo_56 - -_llgo_56: ; preds = %_llgo_55, %_llgo_54 - %222 = load ptr, ptr @_llgo_Pointer, align 8 - %223 = load ptr, ptr @_llgo_int, align 8 - %224 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %225 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %224, 0 - %226 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %225, i64 0, 1 - %227 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %226, i64 0, 2 - %228 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %229 = getelementptr ptr, ptr %228, i64 0 - store ptr %223, ptr %229, align 8 - %230 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %228, 0 - %231 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %230, i64 1, 1 - %232 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %231, i64 1, 2 - %233 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %227, %"github.com/goplus/llgo/internal/runtime.Slice" %232, i1 false) - %234 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @20, i64 2 }, ptr %233, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %235 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %236 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @21, i64 5 }, ptr %235, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %237 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %238 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %237, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %234, ptr %238, align 8 - %239 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %237, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %236, ptr %239, align 8 - %240 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %237, 0 - %241 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %240, i64 2, 1 - %242 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %241, i64 2, 2 - %243 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %242) - store ptr %243, ptr @"main.struct$TWlEC03isGYe2Nyy2HYnOBsOYR1lIx43oIUpIyqvm4s", align 8 - %244 = load ptr, ptr @"main.struct$TWlEC03isGYe2Nyy2HYnOBsOYR1lIx43oIUpIyqvm4s", align 8 - br i1 %217, label %_llgo_57, label %_llgo_58 - -_llgo_57: ; preds = %_llgo_56 - %245 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %246 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %245, 1 - %247 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %246, ptr @"main.(*T6).Invoke", 2 - %248 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %247, ptr @"main.(*T6).Invoke", 3 - %249 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %245, 1 - %250 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %249, ptr @"main.(*T6).Invoke", 2 - %251 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %250, ptr @main.T6.Invoke, 3 - %252 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %253 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %252, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %251, ptr %253, align 8 - %254 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %252, 0 - %255 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %254, i64 1, 1 - %256 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %255, i64 1, 2 - %257 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %258 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %257, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %248, ptr %258, align 8 - %259 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %257, 0 - %260 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %259, i64 1, 1 - %261 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %260, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %215, ptr %244, %"github.com/goplus/llgo/internal/runtime.Slice" %256, %"github.com/goplus/llgo/internal/runtime.Slice" %261) - br label %_llgo_58 - -_llgo_58: ; preds = %_llgo_57, %_llgo_56 - %262 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @19, i64 2 }, i64 25, i64 24, i64 1, i64 1) - %263 = load ptr, ptr @"*_llgo_main.T6", align 8 - %264 = icmp eq ptr %263, null - br i1 %264, label %_llgo_59, label %_llgo_60 - -_llgo_59: ; preds = %_llgo_58 - %265 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %262) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %265) - store ptr %265, ptr @"*_llgo_main.T6", align 8 - br label %_llgo_60 - -_llgo_60: ; preds = %_llgo_59, %_llgo_58 - %266 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %267 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %268 = load ptr, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 - %269 = icmp eq ptr %268, null - br i1 %269, label %_llgo_61, label %_llgo_62 - -_llgo_61: ; preds = %_llgo_60 - %270 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef }, ptr %266, 1 - %271 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @12, i64 6 }, ptr undef }, ptr %267, 1 - %272 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %273 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %272, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %270, ptr %273, align 8 - %274 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %272, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %271, ptr %274, align 8 - %275 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %272, 0 - %276 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %275, i64 2, 1 - %277 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %276, i64 2, 2 - %278 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %277) - store ptr %278, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 - br label %_llgo_62 - -_llgo_62: ; preds = %_llgo_61, %_llgo_60 - %279 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @23, i64 1 }) - %280 = load ptr, ptr @_llgo_main.I, align 8 - %281 = icmp eq ptr %280, null - br i1 %281, label %_llgo_63, label %_llgo_64 - -_llgo_63: ; preds = %_llgo_62 - store ptr %279, ptr @_llgo_main.I, align 8 - br label %_llgo_64 - -_llgo_64: ; preds = %_llgo_63, %_llgo_62 - %282 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - br i1 %281, label %_llgo_65, label %_llgo_66 - -_llgo_65: ; preds = %_llgo_64 - %283 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef }, ptr %282, 1 - %284 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %285 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %284, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %283, ptr %285, align 8 - %286 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %284, 0 - %287 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %286, i64 1, 1 - %288 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %287, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr %279, %"github.com/goplus/llgo/internal/runtime.Slice" %288) - br label %_llgo_66 - -_llgo_66: ; preds = %_llgo_65, %_llgo_64 - %289 = load ptr, ptr @_llgo_any, align 8 - %290 = icmp eq ptr %289, null - br i1 %290, label %_llgo_67, label %_llgo_68 - -_llgo_67: ; preds = %_llgo_66 - %291 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %292 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %291, 0 - %293 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %292, i64 0, 1 - %294 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %293, i64 0, 2 - %295 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %294) - store ptr %295, ptr @_llgo_any, align 8 - br label %_llgo_68 - -_llgo_68: ; preds = %_llgo_67, %_llgo_66 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr, ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") - -attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testgo/reader/out.ll b/cl/_testgo/reader/out.ll deleted file mode 100644 index 465752fe..00000000 --- a/cl/_testgo/reader/out.ll +++ /dev/null @@ -1,1797 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } -%main.nopCloserWriterTo = type { %"github.com/goplus/llgo/internal/runtime.iface" } -%main.nopCloser = type { %"github.com/goplus/llgo/internal/runtime.iface" } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%main.errorString = type { %"github.com/goplus/llgo/internal/runtime.String" } -%main.stringReader = type { %"github.com/goplus/llgo/internal/runtime.String", i64, i64 } -%"github.com/goplus/llgo/internal/abi.Imethod" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } -%"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } - -@main.EOF = global %"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer, align 8 -@main.ErrShortWrite = global %"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer, align 8 -@"main.init$guard" = global i1 false, align 1 -@_llgo_main.WriterTo = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [4 x i8] c"main", align 1 -@1 = private unnamed_addr constant [8 x i8] c"WriterTo", align 1 -@_llgo_main.Writer = linkonce global ptr null, align 8 -@2 = private unnamed_addr constant [6 x i8] c"Writer", align 1 -@_llgo_byte = linkonce global ptr null, align 8 -@"[]_llgo_byte" = linkonce global ptr null, align 8 -@_llgo_int = linkonce global ptr null, align 8 -@_llgo_error = linkonce global ptr null, align 8 -@3 = private unnamed_addr constant [5 x i8] c"error", align 1 -@_llgo_string = linkonce global ptr null, align 8 -@"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 -@4 = private unnamed_addr constant [5 x i8] c"Error", align 1 -@"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY" = linkonce global ptr null, align 8 -@5 = private unnamed_addr constant [5 x i8] c"Write", align 1 -@_llgo_int64 = linkonce global ptr null, align 8 -@"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk" = linkonce global ptr null, align 8 -@6 = private unnamed_addr constant [7 x i8] c"WriteTo", align 1 -@"_llgo_iface$eN81k1zqixGTyagHw_4nqH4mGfwwehTOCTXUlbT9kzk" = linkonce global ptr null, align 8 -@_llgo_main.nopCloserWriterTo = linkonce global ptr null, align 8 -@7 = private unnamed_addr constant [17 x i8] c"nopCloserWriterTo", align 1 -@_llgo_main.Reader = linkonce global ptr null, align 8 -@8 = private unnamed_addr constant [6 x i8] c"Reader", align 1 -@9 = private unnamed_addr constant [4 x i8] c"Read", align 1 -@"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y" = linkonce global ptr null, align 8 -@10 = private unnamed_addr constant [5 x i8] c"Close", align 1 -@"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w" = linkonce global ptr null, align 8 -@"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I" = linkonce global ptr null, align 8 -@_llgo_main.nopCloser = linkonce global ptr null, align 8 -@11 = private unnamed_addr constant [9 x i8] c"nopCloser", align 1 -@_llgo_main.StringWriter = linkonce global ptr null, align 8 -@12 = private unnamed_addr constant [12 x i8] c"StringWriter", align 1 -@"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw" = linkonce global ptr null, align 8 -@13 = private unnamed_addr constant [11 x i8] c"WriteString", align 1 -@"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU" = linkonce global ptr null, align 8 -@14 = private unnamed_addr constant [3 x i8] c"EOF", align 1 -@15 = private unnamed_addr constant [11 x i8] c"short write", align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@16 = private unnamed_addr constant [11 x i8] c"hello world", align 1 -@_llgo_main.stringReader = linkonce global ptr null, align 8 -@17 = private unnamed_addr constant [12 x i8] c"stringReader", align 1 -@"main.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk" = linkonce global ptr null, align 8 -@18 = private unnamed_addr constant [1 x i8] c"s", align 1 -@19 = private unnamed_addr constant [1 x i8] c"i", align 1 -@20 = private unnamed_addr constant [8 x i8] c"prevRune", align 1 -@21 = private unnamed_addr constant [3 x i8] c"Len", align 1 -@"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA" = linkonce global ptr null, align 8 -@22 = private unnamed_addr constant [6 x i8] c"ReadAt", align 1 -@"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c" = linkonce global ptr null, align 8 -@23 = private unnamed_addr constant [8 x i8] c"ReadByte", align 1 -@"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM" = linkonce global ptr null, align 8 -@24 = private unnamed_addr constant [8 x i8] c"ReadRune", align 1 -@_llgo_rune = linkonce global ptr null, align 8 -@"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU" = linkonce global ptr null, align 8 -@25 = private unnamed_addr constant [4 x i8] c"Seek", align 1 -@"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms" = linkonce global ptr null, align 8 -@26 = private unnamed_addr constant [4 x i8] c"Size", align 1 -@"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug" = linkonce global ptr null, align 8 -@27 = private unnamed_addr constant [10 x i8] c"UnreadByte", align 1 -@28 = private unnamed_addr constant [10 x i8] c"UnreadRune", align 1 -@"*_llgo_main.stringReader" = linkonce global ptr null, align 8 -@"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE" = linkonce global ptr null, align 8 -@_llgo_main.errorString = linkonce global ptr null, align 8 -@29 = private unnamed_addr constant [11 x i8] c"errorString", align 1 -@"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ" = linkonce global ptr null, align 8 -@"*_llgo_main.errorString" = linkonce global ptr null, align 8 -@"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU" = linkonce global ptr null, align 8 -@30 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 -@31 = private unnamed_addr constant [37 x i8] c"stringsReader.ReadAt: negative offset", align 1 -@32 = private unnamed_addr constant [34 x i8] c"stringsReader.Seek: invalid whence", align 1 -@33 = private unnamed_addr constant [37 x i8] c"stringsReader.Seek: negative position", align 1 -@34 = private unnamed_addr constant [48 x i8] c"stringsReader.UnreadByte: at beginning of string", align 1 -@35 = private unnamed_addr constant [49 x i8] c"strings.Reader.UnreadRune: at beginning of string", align 1 -@36 = private unnamed_addr constant [62 x i8] c"strings.Reader.UnreadRune: previous operation was not ReadRune", align 1 -@37 = private unnamed_addr constant [48 x i8] c"stringsReader.WriteTo: invalid WriteString count", align 1 - -define %"github.com/goplus/llgo/internal/runtime.iface" @main.NopCloser(%"github.com/goplus/llgo/internal/runtime.iface" %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %0) - %2 = load ptr, ptr @_llgo_main.WriterTo, align 8 - %3 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %2, ptr %1) - br i1 %3, label %_llgo_3, label %_llgo_4 - -_llgo_1: ; preds = %_llgo_5 - %4 = alloca %main.nopCloserWriterTo, align 8 - call void @llvm.memset(ptr %4, i8 0, i64 16, i1 false) - %5 = getelementptr inbounds %main.nopCloserWriterTo, ptr %4, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.iface" %0, ptr %5, align 8 - %6 = load %main.nopCloserWriterTo, ptr %4, align 8 - %7 = load ptr, ptr @_llgo_main.nopCloserWriterTo, align 8 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %main.nopCloserWriterTo %6, ptr %8, align 8 - %9 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %10 = load ptr, ptr @"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I", align 8 - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %10, ptr %7) - %12 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %11, 0 - %13 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %12, ptr %8, 1 - ret %"github.com/goplus/llgo/internal/runtime.iface" %13 - -_llgo_2: ; preds = %_llgo_5 - %14 = alloca %main.nopCloser, align 8 - call void @llvm.memset(ptr %14, i8 0, i64 16, i1 false) - %15 = getelementptr inbounds %main.nopCloser, ptr %14, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.iface" %0, ptr %15, align 8 - %16 = load %main.nopCloser, ptr %14, align 8 - %17 = load ptr, ptr @_llgo_main.nopCloser, align 8 - %18 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %main.nopCloser %16, ptr %18, align 8 - %19 = load ptr, ptr @"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I", align 8 - %20 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %19, ptr %17) - %21 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %20, 0 - %22 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %21, ptr %18, 1 - ret %"github.com/goplus/llgo/internal/runtime.iface" %22 - -_llgo_3: ; preds = %_llgo_0 - %23 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %0, 1 - %24 = load ptr, ptr @"_llgo_iface$eN81k1zqixGTyagHw_4nqH4mGfwwehTOCTXUlbT9kzk", align 8 - %25 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %24, ptr %1) - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %25, 0 - %27 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %26, ptr %23, 1 - %28 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/internal/runtime.iface" %27, 0 - %29 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %28, i1 true, 1 - br label %_llgo_5 - -_llgo_4: ; preds = %_llgo_0 - br label %_llgo_5 - -_llgo_5: ; preds = %_llgo_4, %_llgo_3 - %30 = phi { %"github.com/goplus/llgo/internal/runtime.iface", i1 } [ %29, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] - %31 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %30, 0 - %32 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %30, 1 - br i1 %32, label %_llgo_1, label %_llgo_2 -} - -define { %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.iface" } @main.ReadAll(%"github.com/goplus/llgo/internal/runtime.iface" %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 512) - %2 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %1, i64 1, i64 512, i64 0, i64 0, i64 512) - br label %_llgo_1 - -_llgo_1: ; preds = %_llgo_6, %_llgo_3, %_llgo_0 - %3 = phi %"github.com/goplus/llgo/internal/runtime.Slice" [ %2, %_llgo_0 ], [ %24, %_llgo_3 ], [ %61, %_llgo_6 ] - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %3, 1 - %5 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %3, 2 - %6 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %3, 2 - %7 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %3, 0 - %8 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %7, i64 1, i64 %6, i64 %4, i64 %5, i64 %6) - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %0) - %10 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %0, 0 - %11 = getelementptr ptr, ptr %10, i64 3 - %12 = load ptr, ptr %11, align 8 - %13 = insertvalue { ptr, ptr } undef, ptr %12, 0 - %14 = insertvalue { ptr, ptr } %13, ptr %9, 1 - %15 = extractvalue { ptr, ptr } %14, 1 - %16 = extractvalue { ptr, ptr } %14, 0 - %17 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %16(ptr %15, %"github.com/goplus/llgo/internal/runtime.Slice" %8) - %18 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %17, 0 - %19 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %17, 1 - %20 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %3, 1 - %21 = add i64 %20, %18 - %22 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %3, 2 - %23 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %3, 0 - %24 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %23, i64 1, i64 %22, i64 0, i64 %21, i64 %22) - %25 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %19) - %26 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %19, 1 - %27 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %25, 0 - %28 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %27, ptr %26, 1 - %29 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %29, 0 - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %30, ptr null, 1 - %32 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %28, %"github.com/goplus/llgo/internal/runtime.eface" %31) - %33 = xor i1 %32, true - br i1 %33, label %_llgo_2, label %_llgo_3 - -_llgo_2: ; preds = %_llgo_1 - %34 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr @main.EOF, align 8 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %19) - %36 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %19, 1 - %37 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %35, 0 - %38 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %37, ptr %36, 1 - %39 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %34) - %40 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %34, 1 - %41 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %39, 0 - %42 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %41, ptr %40, 1 - %43 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %38, %"github.com/goplus/llgo/internal/runtime.eface" %42) - br i1 %43, label %_llgo_4, label %_llgo_5 - -_llgo_3: ; preds = %_llgo_1 - %44 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %24, 1 - %45 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %24, 2 - %46 = icmp eq i64 %44, %45 - br i1 %46, label %_llgo_6, label %_llgo_1 - -_llgo_4: ; preds = %_llgo_2 - br label %_llgo_5 - -_llgo_5: ; preds = %_llgo_4, %_llgo_2 - %47 = phi %"github.com/goplus/llgo/internal/runtime.iface" [ %19, %_llgo_2 ], [ zeroinitializer, %_llgo_4 ] - %48 = insertvalue { %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.iface" } undef, %"github.com/goplus/llgo/internal/runtime.Slice" %24, 0 - %49 = insertvalue { %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.iface" } %48, %"github.com/goplus/llgo/internal/runtime.iface" %47, 1 - ret { %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.iface" } %49 - -_llgo_6: ; preds = %_llgo_3 - %50 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 1) - %51 = getelementptr inbounds i8, ptr %50, i64 0 - store i8 0, ptr %51, align 1 - %52 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %50, 0 - %53 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %52, i64 1, 1 - %54 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %53, i64 1, 2 - %55 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %54, 0 - %56 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %54, 1 - %57 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/internal/runtime.Slice" %24, ptr %55, i64 %56, i64 1) - %58 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %24, 1 - %59 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %57, 2 - %60 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %57, 0 - %61 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %60, i64 1, i64 %59, i64 0, i64 %58, i64 %59) - br label %_llgo_1 -} - -define { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @main.WriteString(%"github.com/goplus/llgo/internal/runtime.iface" %0, %"github.com/goplus/llgo/internal/runtime.String" %1) { -_llgo_0: - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %0) - %3 = load ptr, ptr @_llgo_main.StringWriter, align 8 - %4 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %3, ptr %2) - br i1 %4, label %_llgo_3, label %_llgo_4 - -_llgo_1: ; preds = %_llgo_5 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %40) - %6 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %40, 0 - %7 = getelementptr ptr, ptr %6, i64 3 - %8 = load ptr, ptr %7, align 8 - %9 = insertvalue { ptr, ptr } undef, ptr %8, 0 - %10 = insertvalue { ptr, ptr } %9, ptr %5, 1 - %11 = extractvalue { ptr, ptr } %10, 1 - %12 = extractvalue { ptr, ptr } %10, 0 - %13 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %12(ptr %11, %"github.com/goplus/llgo/internal/runtime.String" %1) - %14 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %13, 0 - %15 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %13, 1 - %16 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } undef, i64 %14, 0 - %17 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %16, %"github.com/goplus/llgo/internal/runtime.iface" %15, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %17 - -_llgo_2: ; preds = %_llgo_5 - %18 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/internal/runtime.String" %1) - %19 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %0) - %20 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %0, 0 - %21 = getelementptr ptr, ptr %20, i64 3 - %22 = load ptr, ptr %21, align 8 - %23 = insertvalue { ptr, ptr } undef, ptr %22, 0 - %24 = insertvalue { ptr, ptr } %23, ptr %19, 1 - %25 = extractvalue { ptr, ptr } %24, 1 - %26 = extractvalue { ptr, ptr } %24, 0 - %27 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %26(ptr %25, %"github.com/goplus/llgo/internal/runtime.Slice" %18) - %28 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %27, 0 - %29 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %27, 1 - %30 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } undef, i64 %28, 0 - %31 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %30, %"github.com/goplus/llgo/internal/runtime.iface" %29, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %31 - -_llgo_3: ; preds = %_llgo_0 - %32 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %0, 1 - %33 = load ptr, ptr @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU", align 8 - %34 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %33, ptr %2) - %35 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %34, 0 - %36 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %35, ptr %32, 1 - %37 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/internal/runtime.iface" %36, 0 - %38 = insertvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %37, i1 true, 1 - br label %_llgo_5 - -_llgo_4: ; preds = %_llgo_0 - br label %_llgo_5 - -_llgo_5: ; preds = %_llgo_4, %_llgo_3 - %39 = phi { %"github.com/goplus/llgo/internal/runtime.iface", i1 } [ %38, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] - %40 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %39, 0 - %41 = extractvalue { %"github.com/goplus/llgo/internal/runtime.iface", i1 } %39, 1 - br i1 %41, label %_llgo_1, label %_llgo_2 -} - -define %"github.com/goplus/llgo/internal/runtime.String" @"main.(*errorString).Error"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %main.errorString, ptr %0, i32 0, i32 0 - %2 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1, align 8 - ret %"github.com/goplus/llgo/internal/runtime.String" %2 -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"unicode/utf8.init"() - call void @"main.init$after"() - %1 = call %"github.com/goplus/llgo/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/internal/runtime.String" { ptr @14, i64 3 }) - store %"github.com/goplus/llgo/internal/runtime.iface" %1, ptr @main.EOF, align 8 - %2 = call %"github.com/goplus/llgo/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/internal/runtime.String" { ptr @15, i64 11 }) - store %"github.com/goplus/llgo/internal/runtime.iface" %2, ptr @main.ErrShortWrite, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 32) - %3 = getelementptr inbounds %main.stringReader, ptr %2, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @16, i64 11 }, ptr %3, align 8 - %4 = load ptr, ptr @_llgo_main.stringReader, align 8 - %5 = load ptr, ptr @"*_llgo_main.stringReader", align 8 - %6 = load ptr, ptr @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE", align 8 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %6, ptr %5) - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %7, 0 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %8, ptr %2, 1 - %10 = call { %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.iface" } @main.ReadAll(%"github.com/goplus/llgo/internal/runtime.iface" %9) - %11 = extractvalue { %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.iface" } %10, 0 - %12 = extractvalue { %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.iface" } %10, 1 - %13 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringFromBytes"(%"github.com/goplus/llgo/internal/runtime.Slice" %11) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %13) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface" %12) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -define %"github.com/goplus/llgo/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/internal/runtime.String" %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - %2 = getelementptr inbounds %main.errorString, ptr %1, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" %0, ptr %2, align 8 - %3 = load ptr, ptr @_llgo_main.errorString, align 8 - %4 = load ptr, ptr @"*_llgo_main.errorString", align 8 - %5 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %5, ptr %4) - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %6, 0 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %7, ptr %1, 1 - ret %"github.com/goplus/llgo/internal/runtime.iface" %8 -} - -define %"github.com/goplus/llgo/internal/runtime.iface" @main.nopCloser.Close(%main.nopCloser %0) { -_llgo_0: - ret %"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer -} - -define { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @main.nopCloser.Read(%main.nopCloser %0, %"github.com/goplus/llgo/internal/runtime.Slice" %1) { -_llgo_0: - %2 = alloca %main.nopCloser, align 8 - call void @llvm.memset(ptr %2, i8 0, i64 16, i1 false) - store %main.nopCloser %0, ptr %2, align 8 - %3 = getelementptr inbounds %main.nopCloser, ptr %2, i32 0, i32 0 - %4 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %3, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %4) - %6 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %4, 0 - %7 = getelementptr ptr, ptr %6, i64 3 - %8 = load ptr, ptr %7, align 8 - %9 = insertvalue { ptr, ptr } undef, ptr %8, 0 - %10 = insertvalue { ptr, ptr } %9, ptr %5, 1 - %11 = extractvalue { ptr, ptr } %10, 1 - %12 = extractvalue { ptr, ptr } %10, 0 - %13 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %12(ptr %11, %"github.com/goplus/llgo/internal/runtime.Slice" %1) - %14 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %13, 0 - %15 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %13, 1 - %16 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } undef, i64 %14, 0 - %17 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %16, %"github.com/goplus/llgo/internal/runtime.iface" %15, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %17 -} - -define %"github.com/goplus/llgo/internal/runtime.iface" @"main.(*nopCloser).Close"(ptr %0) { -_llgo_0: - %1 = load %main.nopCloser, ptr %0, align 8 - %2 = call %"github.com/goplus/llgo/internal/runtime.iface" @main.nopCloser.Close(%main.nopCloser %1) - ret %"github.com/goplus/llgo/internal/runtime.iface" %2 -} - -define { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @"main.(*nopCloser).Read"(ptr %0, %"github.com/goplus/llgo/internal/runtime.Slice" %1) { -_llgo_0: - %2 = getelementptr inbounds %main.nopCloser, ptr %0, i32 0, i32 0 - %3 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %2, align 8 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %3) - %5 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %3, 0 - %6 = getelementptr ptr, ptr %5, i64 3 - %7 = load ptr, ptr %6, align 8 - %8 = insertvalue { ptr, ptr } undef, ptr %7, 0 - %9 = insertvalue { ptr, ptr } %8, ptr %4, 1 - %10 = extractvalue { ptr, ptr } %9, 1 - %11 = extractvalue { ptr, ptr } %9, 0 - %12 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %11(ptr %10, %"github.com/goplus/llgo/internal/runtime.Slice" %1) - %13 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %12, 0 - %14 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %12, 1 - %15 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } undef, i64 %13, 0 - %16 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %15, %"github.com/goplus/llgo/internal/runtime.iface" %14, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %16 -} - -define %"github.com/goplus/llgo/internal/runtime.iface" @main.nopCloserWriterTo.Close(%main.nopCloserWriterTo %0) { -_llgo_0: - ret %"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer -} - -define { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @main.nopCloserWriterTo.Read(%main.nopCloserWriterTo %0, %"github.com/goplus/llgo/internal/runtime.Slice" %1) { -_llgo_0: - %2 = alloca %main.nopCloserWriterTo, align 8 - call void @llvm.memset(ptr %2, i8 0, i64 16, i1 false) - store %main.nopCloserWriterTo %0, ptr %2, align 8 - %3 = getelementptr inbounds %main.nopCloserWriterTo, ptr %2, i32 0, i32 0 - %4 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %3, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %4) - %6 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %4, 0 - %7 = getelementptr ptr, ptr %6, i64 3 - %8 = load ptr, ptr %7, align 8 - %9 = insertvalue { ptr, ptr } undef, ptr %8, 0 - %10 = insertvalue { ptr, ptr } %9, ptr %5, 1 - %11 = extractvalue { ptr, ptr } %10, 1 - %12 = extractvalue { ptr, ptr } %10, 0 - %13 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %12(ptr %11, %"github.com/goplus/llgo/internal/runtime.Slice" %1) - %14 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %13, 0 - %15 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %13, 1 - %16 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } undef, i64 %14, 0 - %17 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %16, %"github.com/goplus/llgo/internal/runtime.iface" %15, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %17 -} - -define { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @main.nopCloserWriterTo.WriteTo(%main.nopCloserWriterTo %0, %"github.com/goplus/llgo/internal/runtime.iface" %1) { -_llgo_0: - %2 = alloca %main.nopCloserWriterTo, align 8 - call void @llvm.memset(ptr %2, i8 0, i64 16, i1 false) - store %main.nopCloserWriterTo %0, ptr %2, align 8 - %3 = getelementptr inbounds %main.nopCloserWriterTo, ptr %2, i32 0, i32 0 - %4 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %3, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %4) - %6 = load ptr, ptr @_llgo_main.WriterTo, align 8 - %7 = call i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr %6, ptr %5) - br i1 %7, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %8 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %4, 1 - %9 = load ptr, ptr @"_llgo_iface$eN81k1zqixGTyagHw_4nqH4mGfwwehTOCTXUlbT9kzk", align 8 - %10 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %9, ptr %5) - %11 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %10, 0 - %12 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %11, ptr %8, 1 - %13 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %12) - %14 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %12, 0 - %15 = getelementptr ptr, ptr %14, i64 3 - %16 = load ptr, ptr %15, align 8 - %17 = insertvalue { ptr, ptr } undef, ptr %16, 0 - %18 = insertvalue { ptr, ptr } %17, ptr %13, 1 - %19 = extractvalue { ptr, ptr } %18, 1 - %20 = extractvalue { ptr, ptr } %18, 0 - %21 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %20(ptr %19, %"github.com/goplus/llgo/internal/runtime.iface" %1) - %22 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %21, 0 - %23 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %21, 1 - %24 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } undef, i64 %22, 0 - %25 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %24, %"github.com/goplus/llgo/internal/runtime.iface" %23, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %25 - -_llgo_2: ; preds = %_llgo_0 - %26 = load ptr, ptr @_llgo_string, align 8 - %27 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @30, i64 21 }, ptr %27, align 8 - %28 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %26, 0 - %29 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %28, ptr %27, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %29) - unreachable -} - -define %"github.com/goplus/llgo/internal/runtime.iface" @"main.(*nopCloserWriterTo).Close"(ptr %0) { -_llgo_0: - %1 = load %main.nopCloserWriterTo, ptr %0, align 8 - %2 = call %"github.com/goplus/llgo/internal/runtime.iface" @main.nopCloserWriterTo.Close(%main.nopCloserWriterTo %1) - ret %"github.com/goplus/llgo/internal/runtime.iface" %2 -} - -define { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @"main.(*nopCloserWriterTo).Read"(ptr %0, %"github.com/goplus/llgo/internal/runtime.Slice" %1) { -_llgo_0: - %2 = getelementptr inbounds %main.nopCloserWriterTo, ptr %0, i32 0, i32 0 - %3 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %2, align 8 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %3) - %5 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %3, 0 - %6 = getelementptr ptr, ptr %5, i64 3 - %7 = load ptr, ptr %6, align 8 - %8 = insertvalue { ptr, ptr } undef, ptr %7, 0 - %9 = insertvalue { ptr, ptr } %8, ptr %4, 1 - %10 = extractvalue { ptr, ptr } %9, 1 - %11 = extractvalue { ptr, ptr } %9, 0 - %12 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %11(ptr %10, %"github.com/goplus/llgo/internal/runtime.Slice" %1) - %13 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %12, 0 - %14 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %12, 1 - %15 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } undef, i64 %13, 0 - %16 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %15, %"github.com/goplus/llgo/internal/runtime.iface" %14, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %16 -} - -define { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @"main.(*nopCloserWriterTo).WriteTo"(ptr %0, %"github.com/goplus/llgo/internal/runtime.iface" %1) { -_llgo_0: - %2 = load %main.nopCloserWriterTo, ptr %0, align 8 - %3 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @main.nopCloserWriterTo.WriteTo(%main.nopCloserWriterTo %2, %"github.com/goplus/llgo/internal/runtime.iface" %1) - %4 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %3, 0 - %5 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %3, 1 - %6 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } undef, i64 %4, 0 - %7 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %6, %"github.com/goplus/llgo/internal/runtime.iface" %5, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %7 -} - -define i64 @"main.(*stringReader).Len"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %2 = load i64, ptr %1, align 4 - %3 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 - %4 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %3, align 8 - %5 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %4, 1 - %6 = icmp sge i64 %2, %5 - br i1 %6, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - ret i64 0 - -_llgo_2: ; preds = %_llgo_0 - %7 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 - %8 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %7, align 8 - %9 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %8, 1 - %10 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %11 = load i64, ptr %10, align 4 - %12 = sub i64 %9, %11 - ret i64 %12 -} - -define { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @"main.(*stringReader).Read"(ptr %0, %"github.com/goplus/llgo/internal/runtime.Slice" %1) { -_llgo_0: - %2 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %3 = load i64, ptr %2, align 4 - %4 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 - %5 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %4, align 8 - %6 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %5, 1 - %7 = icmp sge i64 %3, %6 - br i1 %7, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %8 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr @main.EOF, align 8 - %9 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } { i64 0, %"github.com/goplus/llgo/internal/runtime.iface" undef }, %"github.com/goplus/llgo/internal/runtime.iface" %8, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %9 - -_llgo_2: ; preds = %_llgo_0 - %10 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 - store i64 -1, ptr %10, align 4 - %11 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 - %12 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %11, align 8 - %13 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %14 = load i64, ptr %13, align 4 - %15 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %12, 1 - %16 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringSlice"(%"github.com/goplus/llgo/internal/runtime.String" %12, i64 %14, i64 %15) - %17 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %16, 0 - %18 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %16, 1 - %19 = call i64 @"github.com/goplus/llgo/internal/runtime.SliceCopy"(%"github.com/goplus/llgo/internal/runtime.Slice" %1, ptr %17, i64 %18, i64 1) - %20 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %21 = load i64, ptr %20, align 4 - %22 = add i64 %21, %19 - %23 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - store i64 %22, ptr %23, align 4 - %24 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } undef, i64 %19, 0 - %25 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %24, %"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %25 -} - -define { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @"main.(*stringReader).ReadAt"(ptr %0, %"github.com/goplus/llgo/internal/runtime.Slice" %1, i64 %2) { -_llgo_0: - %3 = icmp slt i64 %2, 0 - br i1 %3, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %4 = call %"github.com/goplus/llgo/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/internal/runtime.String" { ptr @31, i64 37 }) - %5 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } { i64 0, %"github.com/goplus/llgo/internal/runtime.iface" undef }, %"github.com/goplus/llgo/internal/runtime.iface" %4, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %5 - -_llgo_2: ; preds = %_llgo_0 - %6 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 - %7 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %6, align 8 - %8 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %7, 1 - %9 = icmp sge i64 %2, %8 - br i1 %9, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %10 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr @main.EOF, align 8 - %11 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } { i64 0, %"github.com/goplus/llgo/internal/runtime.iface" undef }, %"github.com/goplus/llgo/internal/runtime.iface" %10, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %11 - -_llgo_4: ; preds = %_llgo_2 - %12 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 - %13 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %12, align 8 - %14 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %13, 1 - %15 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringSlice"(%"github.com/goplus/llgo/internal/runtime.String" %13, i64 %2, i64 %14) - %16 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %15, 0 - %17 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %15, 1 - %18 = call i64 @"github.com/goplus/llgo/internal/runtime.SliceCopy"(%"github.com/goplus/llgo/internal/runtime.Slice" %1, ptr %16, i64 %17, i64 1) - %19 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1, 1 - %20 = icmp slt i64 %18, %19 - br i1 %20, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %21 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr @main.EOF, align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %22 = phi %"github.com/goplus/llgo/internal/runtime.iface" [ zeroinitializer, %_llgo_4 ], [ %21, %_llgo_5 ] - %23 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } undef, i64 %18, 0 - %24 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %23, %"github.com/goplus/llgo/internal/runtime.iface" %22, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %24 -} - -define { i8, %"github.com/goplus/llgo/internal/runtime.iface" } @"main.(*stringReader).ReadByte"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 - store i64 -1, ptr %1, align 4 - %2 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %3 = load i64, ptr %2, align 4 - %4 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 - %5 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %4, align 8 - %6 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %5, 1 - %7 = icmp sge i64 %3, %6 - br i1 %7, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %8 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr @main.EOF, align 8 - %9 = insertvalue { i8, %"github.com/goplus/llgo/internal/runtime.iface" } { i8 0, %"github.com/goplus/llgo/internal/runtime.iface" undef }, %"github.com/goplus/llgo/internal/runtime.iface" %8, 1 - ret { i8, %"github.com/goplus/llgo/internal/runtime.iface" } %9 - -_llgo_2: ; preds = %_llgo_0 - %10 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %11 = load i64, ptr %10, align 4 - %12 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 - %13 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %12, align 8 - %14 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %13, 0 - %15 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %13, 1 - %16 = icmp slt i64 %11, 0 - %17 = icmp sge i64 %11, %15 - %18 = or i1 %17, %16 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %18) - %19 = getelementptr inbounds i8, ptr %14, i64 %11 - %20 = load i8, ptr %19, align 1 - %21 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %22 = load i64, ptr %21, align 4 - %23 = add i64 %22, 1 - %24 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - store i64 %23, ptr %24, align 4 - %25 = insertvalue { i8, %"github.com/goplus/llgo/internal/runtime.iface" } undef, i8 %20, 0 - %26 = insertvalue { i8, %"github.com/goplus/llgo/internal/runtime.iface" } %25, %"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer, 1 - ret { i8, %"github.com/goplus/llgo/internal/runtime.iface" } %26 -} - -define { i32, i64, %"github.com/goplus/llgo/internal/runtime.iface" } @"main.(*stringReader).ReadRune"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %2 = load i64, ptr %1, align 4 - %3 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 - %4 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %3, align 8 - %5 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %4, 1 - %6 = icmp sge i64 %2, %5 - br i1 %6, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %7 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 - store i64 -1, ptr %7, align 4 - %8 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr @main.EOF, align 8 - %9 = insertvalue { i32, i64, %"github.com/goplus/llgo/internal/runtime.iface" } { i32 0, i64 0, %"github.com/goplus/llgo/internal/runtime.iface" undef }, %"github.com/goplus/llgo/internal/runtime.iface" %8, 2 - ret { i32, i64, %"github.com/goplus/llgo/internal/runtime.iface" } %9 - -_llgo_2: ; preds = %_llgo_0 - %10 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %11 = load i64, ptr %10, align 4 - %12 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 - store i64 %11, ptr %12, align 4 - %13 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %14 = load i64, ptr %13, align 4 - %15 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 - %16 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %15, align 8 - %17 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %16, 0 - %18 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %16, 1 - %19 = icmp slt i64 %14, 0 - %20 = icmp sge i64 %14, %18 - %21 = or i1 %20, %19 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %21) - %22 = getelementptr inbounds i8, ptr %17, i64 %14 - %23 = load i8, ptr %22, align 1 - %24 = icmp ult i8 %23, -128 - br i1 %24, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %25 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %26 = load i64, ptr %25, align 4 - %27 = add i64 %26, 1 - %28 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - store i64 %27, ptr %28, align 4 - %29 = sext i8 %23 to i32 - %30 = insertvalue { i32, i64, %"github.com/goplus/llgo/internal/runtime.iface" } undef, i32 %29, 0 - %31 = insertvalue { i32, i64, %"github.com/goplus/llgo/internal/runtime.iface" } %30, i64 1, 1 - %32 = insertvalue { i32, i64, %"github.com/goplus/llgo/internal/runtime.iface" } %31, %"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer, 2 - ret { i32, i64, %"github.com/goplus/llgo/internal/runtime.iface" } %32 - -_llgo_4: ; preds = %_llgo_2 - %33 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 - %34 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %33, align 8 - %35 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %36 = load i64, ptr %35, align 4 - %37 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %34, 1 - %38 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringSlice"(%"github.com/goplus/llgo/internal/runtime.String" %34, i64 %36, i64 %37) - %39 = call { i32, i64 } @"unicode/utf8.DecodeRuneInString"(%"github.com/goplus/llgo/internal/runtime.String" %38) - %40 = extractvalue { i32, i64 } %39, 0 - %41 = extractvalue { i32, i64 } %39, 1 - %42 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %43 = load i64, ptr %42, align 4 - %44 = add i64 %43, %41 - %45 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - store i64 %44, ptr %45, align 4 - %46 = insertvalue { i32, i64, %"github.com/goplus/llgo/internal/runtime.iface" } undef, i32 %40, 0 - %47 = insertvalue { i32, i64, %"github.com/goplus/llgo/internal/runtime.iface" } %46, i64 %41, 1 - %48 = insertvalue { i32, i64, %"github.com/goplus/llgo/internal/runtime.iface" } %47, %"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer, 2 - ret { i32, i64, %"github.com/goplus/llgo/internal/runtime.iface" } %48 -} - -define { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @"main.(*stringReader).Seek"(ptr %0, i64 %1, i64 %2) { -_llgo_0: - %3 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 - store i64 -1, ptr %3, align 4 - %4 = icmp eq i64 %2, 0 - br i1 %4, label %_llgo_2, label %_llgo_4 - -_llgo_1: ; preds = %_llgo_5, %_llgo_3, %_llgo_2 - %5 = phi i64 [ %1, %_llgo_2 ], [ %9, %_llgo_3 ], [ %14, %_llgo_5 ] - %6 = icmp slt i64 %5, 0 - br i1 %6, label %_llgo_8, label %_llgo_9 - -_llgo_2: ; preds = %_llgo_0 - br label %_llgo_1 - -_llgo_3: ; preds = %_llgo_4 - %7 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %8 = load i64, ptr %7, align 4 - %9 = add i64 %8, %1 - br label %_llgo_1 - -_llgo_4: ; preds = %_llgo_0 - %10 = icmp eq i64 %2, 1 - br i1 %10, label %_llgo_3, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_6 - %11 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 - %12 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %11, align 8 - %13 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %12, 1 - %14 = add i64 %13, %1 - br label %_llgo_1 - -_llgo_6: ; preds = %_llgo_4 - %15 = icmp eq i64 %2, 2 - br i1 %15, label %_llgo_5, label %_llgo_7 - -_llgo_7: ; preds = %_llgo_6 - %16 = call %"github.com/goplus/llgo/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/internal/runtime.String" { ptr @32, i64 34 }) - %17 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } { i64 0, %"github.com/goplus/llgo/internal/runtime.iface" undef }, %"github.com/goplus/llgo/internal/runtime.iface" %16, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %17 - -_llgo_8: ; preds = %_llgo_1 - %18 = call %"github.com/goplus/llgo/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/internal/runtime.String" { ptr @33, i64 37 }) - %19 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } { i64 0, %"github.com/goplus/llgo/internal/runtime.iface" undef }, %"github.com/goplus/llgo/internal/runtime.iface" %18, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %19 - -_llgo_9: ; preds = %_llgo_1 - %20 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - store i64 %5, ptr %20, align 4 - %21 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } undef, i64 %5, 0 - %22 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %21, %"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %22 -} - -define i64 @"main.(*stringReader).Size"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 - %2 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1, align 8 - %3 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %2, 1 - ret i64 %3 -} - -define %"github.com/goplus/llgo/internal/runtime.iface" @"main.(*stringReader).UnreadByte"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %2 = load i64, ptr %1, align 4 - %3 = icmp sle i64 %2, 0 - br i1 %3, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %4 = call %"github.com/goplus/llgo/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/internal/runtime.String" { ptr @34, i64 48 }) - ret %"github.com/goplus/llgo/internal/runtime.iface" %4 - -_llgo_2: ; preds = %_llgo_0 - %5 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 - store i64 -1, ptr %5, align 4 - %6 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %7 = load i64, ptr %6, align 4 - %8 = sub i64 %7, 1 - %9 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - store i64 %8, ptr %9, align 4 - ret %"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer -} - -define %"github.com/goplus/llgo/internal/runtime.iface" @"main.(*stringReader).UnreadRune"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %2 = load i64, ptr %1, align 4 - %3 = icmp sle i64 %2, 0 - br i1 %3, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %4 = call %"github.com/goplus/llgo/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/internal/runtime.String" { ptr @35, i64 49 }) - ret %"github.com/goplus/llgo/internal/runtime.iface" %4 - -_llgo_2: ; preds = %_llgo_0 - %5 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 - %6 = load i64, ptr %5, align 4 - %7 = icmp slt i64 %6, 0 - br i1 %7, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %8 = call %"github.com/goplus/llgo/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/internal/runtime.String" { ptr @36, i64 62 }) - ret %"github.com/goplus/llgo/internal/runtime.iface" %8 - -_llgo_4: ; preds = %_llgo_2 - %9 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 - %10 = load i64, ptr %9, align 4 - %11 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - store i64 %10, ptr %11, align 4 - %12 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 - store i64 -1, ptr %12, align 4 - ret %"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer -} - -define { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @"main.(*stringReader).WriteTo"(ptr %0, %"github.com/goplus/llgo/internal/runtime.iface" %1) { -_llgo_0: - %2 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 - store i64 -1, ptr %2, align 4 - %3 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %4 = load i64, ptr %3, align 4 - %5 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 - %6 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %5, align 8 - %7 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %6, 1 - %8 = icmp sge i64 %4, %7 - br i1 %8, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } zeroinitializer - -_llgo_2: ; preds = %_llgo_0 - %9 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 - %10 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %9, align 8 - %11 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %12 = load i64, ptr %11, align 4 - %13 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %10, 1 - %14 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringSlice"(%"github.com/goplus/llgo/internal/runtime.String" %10, i64 %12, i64 %13) - %15 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @main.WriteString(%"github.com/goplus/llgo/internal/runtime.iface" %1, %"github.com/goplus/llgo/internal/runtime.String" %14) - %16 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %15, 0 - %17 = extractvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %15, 1 - %18 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %14, 1 - %19 = icmp sgt i64 %16, %18 - br i1 %19, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %20 = load ptr, ptr @_llgo_string, align 8 - %21 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @37, i64 48 }, ptr %21, align 8 - %22 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %20, 0 - %23 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %22, ptr %21, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %23) - unreachable - -_llgo_4: ; preds = %_llgo_2 - %24 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - %25 = load i64, ptr %24, align 4 - %26 = add i64 %25, %16 - %27 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 - store i64 %26, ptr %27, align 4 - %28 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %14, 1 - %29 = icmp ne i64 %16, %28 - br i1 %29, label %_llgo_7, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_7 - %30 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr @main.ErrShortWrite, align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_7, %_llgo_4 - %31 = phi %"github.com/goplus/llgo/internal/runtime.iface" [ %17, %_llgo_4 ], [ %17, %_llgo_7 ], [ %30, %_llgo_5 ] - %32 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } undef, i64 %16, 0 - %33 = insertvalue { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %32, %"github.com/goplus/llgo/internal/runtime.iface" %31, 1 - ret { i64, %"github.com/goplus/llgo/internal/runtime.iface" } %33 - -_llgo_7: ; preds = %_llgo_4 - %34 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %17) - %35 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %17, 1 - %36 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %34, 0 - %37 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %36, ptr %35, 1 - %38 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) - %39 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %38, 0 - %40 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %39, ptr null, 1 - %41 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %37, %"github.com/goplus/llgo/internal/runtime.eface" %40) - br i1 %41, label %_llgo_5, label %_llgo_6 -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface") - -define void @"main.init$after"() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 8 }) - %1 = load ptr, ptr @_llgo_main.WriterTo, align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - store ptr %0, ptr @_llgo_main.WriterTo, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 6 }) - %4 = load ptr, ptr @_llgo_main.Writer, align 8 - %5 = icmp eq ptr %4, null - br i1 %5, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - store ptr %3, ptr @_llgo_main.Writer, align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %6 = load ptr, ptr @_llgo_byte, align 8 - %7 = icmp eq ptr %6, null - br i1 %7, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - store ptr %8, ptr @_llgo_byte, align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %9 = load ptr, ptr @_llgo_byte, align 8 - %10 = load ptr, ptr @"[]_llgo_byte", align 8 - %11 = icmp eq ptr %10, null - br i1 %11, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %13 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %12) - store ptr %13, ptr @"[]_llgo_byte", align 8 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - %14 = load ptr, ptr @"[]_llgo_byte", align 8 - %15 = load ptr, ptr @_llgo_int, align 8 - %16 = icmp eq ptr %15, null - br i1 %16, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %17, ptr @_llgo_int, align 8 - br label %_llgo_10 - -_llgo_10: ; preds = %_llgo_9, %_llgo_8 - %18 = load ptr, ptr @_llgo_int, align 8 - %19 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 5 }) - %20 = load ptr, ptr @_llgo_error, align 8 - %21 = icmp eq ptr %20, null - br i1 %21, label %_llgo_11, label %_llgo_12 - -_llgo_11: ; preds = %_llgo_10 - store ptr %19, ptr @_llgo_error, align 8 - br label %_llgo_12 - -_llgo_12: ; preds = %_llgo_11, %_llgo_10 - %22 = load ptr, ptr @_llgo_string, align 8 - %23 = icmp eq ptr %22, null - br i1 %23, label %_llgo_13, label %_llgo_14 - -_llgo_13: ; preds = %_llgo_12 - %24 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %24, ptr @_llgo_string, align 8 - br label %_llgo_14 - -_llgo_14: ; preds = %_llgo_13, %_llgo_12 - %25 = load ptr, ptr @_llgo_string, align 8 - %26 = load ptr, ptr @_llgo_string, align 8 - %27 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %28 = icmp eq ptr %27, null - br i1 %28, label %_llgo_15, label %_llgo_16 - -_llgo_15: ; preds = %_llgo_14 - %29 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %29, 0 - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %30, i64 0, 1 - %32 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %31, i64 0, 2 - %33 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %34 = getelementptr ptr, ptr %33, i64 0 - store ptr %26, ptr %34, align 8 - %35 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %33, 0 - %36 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %35, i64 1, 1 - %37 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %36, i64 1, 2 - %38 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %32, %"github.com/goplus/llgo/internal/runtime.Slice" %37, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %38) - store ptr %38, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - br label %_llgo_16 - -_llgo_16: ; preds = %_llgo_15, %_llgo_14 - %39 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - br i1 %21, label %_llgo_17, label %_llgo_18 - -_llgo_17: ; preds = %_llgo_16 - %40 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 5 }, ptr undef }, ptr %39, 1 - %41 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %42 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %41, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %40, ptr %42, align 8 - %43 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %41, 0 - %44 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %43, i64 1, 1 - %45 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %44, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr %19, %"github.com/goplus/llgo/internal/runtime.Slice" %45) - br label %_llgo_18 - -_llgo_18: ; preds = %_llgo_17, %_llgo_16 - %46 = load ptr, ptr @_llgo_error, align 8 - %47 = load ptr, ptr @"[]_llgo_byte", align 8 - %48 = load ptr, ptr @_llgo_int, align 8 - %49 = load ptr, ptr @_llgo_error, align 8 - %50 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %51 = icmp eq ptr %50, null - br i1 %51, label %_llgo_19, label %_llgo_20 - -_llgo_19: ; preds = %_llgo_18 - %52 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %53 = getelementptr ptr, ptr %52, i64 0 - store ptr %47, ptr %53, align 8 - %54 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %52, 0 - %55 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %54, i64 1, 1 - %56 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %55, i64 1, 2 - %57 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %58 = getelementptr ptr, ptr %57, i64 0 - store ptr %48, ptr %58, align 8 - %59 = getelementptr ptr, ptr %57, i64 1 - store ptr %49, ptr %59, align 8 - %60 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %57, 0 - %61 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %60, i64 2, 1 - %62 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %61, i64 2, 2 - %63 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %56, %"github.com/goplus/llgo/internal/runtime.Slice" %62, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %63) - store ptr %63, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - br label %_llgo_20 - -_llgo_20: ; preds = %_llgo_19, %_llgo_18 - %64 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - br i1 %5, label %_llgo_21, label %_llgo_22 - -_llgo_21: ; preds = %_llgo_20 - %65 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 5 }, ptr undef }, ptr %64, 1 - %66 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %67 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %66, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %65, ptr %67, align 8 - %68 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %66, 0 - %69 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %68, i64 1, 1 - %70 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %69, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr %3, %"github.com/goplus/llgo/internal/runtime.Slice" %70) - br label %_llgo_22 - -_llgo_22: ; preds = %_llgo_21, %_llgo_20 - %71 = load ptr, ptr @_llgo_main.Writer, align 8 - %72 = load ptr, ptr @_llgo_int64, align 8 - %73 = icmp eq ptr %72, null - br i1 %73, label %_llgo_23, label %_llgo_24 - -_llgo_23: ; preds = %_llgo_22 - %74 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 38) - store ptr %74, ptr @_llgo_int64, align 8 - br label %_llgo_24 - -_llgo_24: ; preds = %_llgo_23, %_llgo_22 - %75 = load ptr, ptr @_llgo_int64, align 8 - %76 = load ptr, ptr @_llgo_main.Writer, align 8 - %77 = load ptr, ptr @_llgo_int64, align 8 - %78 = load ptr, ptr @_llgo_error, align 8 - %79 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 - %80 = icmp eq ptr %79, null - br i1 %80, label %_llgo_25, label %_llgo_26 - -_llgo_25: ; preds = %_llgo_24 - %81 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %82 = getelementptr ptr, ptr %81, i64 0 - store ptr %76, ptr %82, align 8 - %83 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %81, 0 - %84 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %83, i64 1, 1 - %85 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %84, i64 1, 2 - %86 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %87 = getelementptr ptr, ptr %86, i64 0 - store ptr %77, ptr %87, align 8 - %88 = getelementptr ptr, ptr %86, i64 1 - store ptr %78, ptr %88, align 8 - %89 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %86, 0 - %90 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %89, i64 2, 1 - %91 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %90, i64 2, 2 - %92 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %85, %"github.com/goplus/llgo/internal/runtime.Slice" %91, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %92) - store ptr %92, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 - br label %_llgo_26 - -_llgo_26: ; preds = %_llgo_25, %_llgo_24 - %93 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 - br i1 %2, label %_llgo_27, label %_llgo_28 - -_llgo_27: ; preds = %_llgo_26 - %94 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 7 }, ptr undef }, ptr %93, 1 - %95 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %96 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %95, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %94, ptr %96, align 8 - %97 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %95, 0 - %98 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %97, i64 1, 1 - %99 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %98, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr %0, %"github.com/goplus/llgo/internal/runtime.Slice" %99) - br label %_llgo_28 - -_llgo_28: ; preds = %_llgo_27, %_llgo_26 - %100 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 - %101 = load ptr, ptr @"_llgo_iface$eN81k1zqixGTyagHw_4nqH4mGfwwehTOCTXUlbT9kzk", align 8 - %102 = icmp eq ptr %101, null - br i1 %102, label %_llgo_29, label %_llgo_30 - -_llgo_29: ; preds = %_llgo_28 - %103 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 7 }, ptr undef }, ptr %100, 1 - %104 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %105 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %104, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %103, ptr %105, align 8 - %106 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %104, 0 - %107 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %106, i64 1, 1 - %108 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %107, i64 1, 2 - %109 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %108) - store ptr %109, ptr @"_llgo_iface$eN81k1zqixGTyagHw_4nqH4mGfwwehTOCTXUlbT9kzk", align 8 - br label %_llgo_30 - -_llgo_30: ; preds = %_llgo_29, %_llgo_28 - %110 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 17 }, i64 25, i64 16, i64 3, i64 3) - store ptr %110, ptr @_llgo_main.nopCloserWriterTo, align 8 - %111 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 6 }) - %112 = load ptr, ptr @_llgo_main.Reader, align 8 - %113 = icmp eq ptr %112, null - br i1 %113, label %_llgo_31, label %_llgo_32 - -_llgo_31: ; preds = %_llgo_30 - store ptr %111, ptr @_llgo_main.Reader, align 8 - br label %_llgo_32 - -_llgo_32: ; preds = %_llgo_31, %_llgo_30 - %114 = load ptr, ptr @"[]_llgo_byte", align 8 - %115 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - br i1 %113, label %_llgo_33, label %_llgo_34 - -_llgo_33: ; preds = %_llgo_32 - %116 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 4 }, ptr undef }, ptr %115, 1 - %117 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %118 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %117, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %116, ptr %118, align 8 - %119 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %117, 0 - %120 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %119, i64 1, 1 - %121 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %120, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr %111, %"github.com/goplus/llgo/internal/runtime.Slice" %121) - br label %_llgo_34 - -_llgo_34: ; preds = %_llgo_33, %_llgo_32 - %122 = load ptr, ptr @_llgo_main.Reader, align 8 - %123 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 6 }) - %124 = load ptr, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 - %125 = icmp eq ptr %124, null - br i1 %125, label %_llgo_35, label %_llgo_36 - -_llgo_35: ; preds = %_llgo_34 - %126 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 6 }, ptr %123, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 true) - %127 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %128 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %127, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %126, ptr %128, align 8 - %129 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %127, 0 - %130 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %129, i64 1, 1 - %131 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %130, i64 1, 2 - %132 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %131) - store ptr %132, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 - br label %_llgo_36 - -_llgo_36: ; preds = %_llgo_35, %_llgo_34 - %133 = load ptr, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 - %134 = load ptr, ptr @_llgo_error, align 8 - %135 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %136 = icmp eq ptr %135, null - br i1 %136, label %_llgo_37, label %_llgo_38 - -_llgo_37: ; preds = %_llgo_36 - %137 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %138 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %137, 0 - %139 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %138, i64 0, 1 - %140 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %139, i64 0, 2 - %141 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %142 = getelementptr ptr, ptr %141, i64 0 - store ptr %134, ptr %142, align 8 - %143 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %141, 0 - %144 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %143, i64 1, 1 - %145 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %144, i64 1, 2 - %146 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %140, %"github.com/goplus/llgo/internal/runtime.Slice" %145, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %146) - store ptr %146, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - br label %_llgo_38 - -_llgo_38: ; preds = %_llgo_37, %_llgo_36 - %147 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %148 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @10, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %147, 1 - %149 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %148, ptr @"main.(*nopCloserWriterTo).Close", 2 - %150 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %149, ptr @"main.(*nopCloserWriterTo).Close", 3 - %151 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @10, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %147, 1 - %152 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %151, ptr @"main.(*nopCloserWriterTo).Close", 2 - %153 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %152, ptr @main.nopCloserWriterTo.Close, 3 - %154 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %155 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %154, 1 - %156 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %155, ptr @"main.(*nopCloserWriterTo).Read", 2 - %157 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %156, ptr @"main.(*nopCloserWriterTo).Read", 3 - %158 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %154, 1 - %159 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %158, ptr @"main.(*nopCloserWriterTo).Read", 2 - %160 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %159, ptr @main.nopCloserWriterTo.Read, 3 - %161 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 - %162 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %161, 1 - %163 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %162, ptr @"main.(*nopCloserWriterTo).WriteTo", 2 - %164 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %163, ptr @"main.(*nopCloserWriterTo).WriteTo", 3 - %165 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %161, 1 - %166 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %165, ptr @"main.(*nopCloserWriterTo).WriteTo", 2 - %167 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %166, ptr @main.nopCloserWriterTo.WriteTo, 3 - %168 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 120) - %169 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %168, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %153, ptr %169, align 8 - %170 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %168, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %160, ptr %170, align 8 - %171 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %168, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %167, ptr %171, align 8 - %172 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %168, 0 - %173 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %172, i64 3, 1 - %174 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %173, i64 3, 2 - %175 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 120) - %176 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %175, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %150, ptr %176, align 8 - %177 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %175, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %157, ptr %177, align 8 - %178 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %175, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %164, ptr %178, align 8 - %179 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %175, 0 - %180 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %179, i64 3, 1 - %181 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %180, i64 3, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %110, ptr %133, %"github.com/goplus/llgo/internal/runtime.Slice" %174, %"github.com/goplus/llgo/internal/runtime.Slice" %181) - %182 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %183 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %184 = load ptr, ptr @"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I", align 8 - %185 = icmp eq ptr %184, null - br i1 %185, label %_llgo_39, label %_llgo_40 - -_llgo_39: ; preds = %_llgo_38 - %186 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @10, i64 5 }, ptr undef }, ptr %182, 1 - %187 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 4 }, ptr undef }, ptr %183, 1 - %188 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %189 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %188, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %186, ptr %189, align 8 - %190 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %188, i64 1 - store %"github.com/goplus/llgo/internal/abi.Imethod" %187, ptr %190, align 8 - %191 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %188, 0 - %192 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %191, i64 2, 1 - %193 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %192, i64 2, 2 - %194 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %193) - store ptr %194, ptr @"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I", align 8 - br label %_llgo_40 - -_llgo_40: ; preds = %_llgo_39, %_llgo_38 - %195 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 9 }, i64 25, i64 16, i64 2, i64 2) - store ptr %195, ptr @_llgo_main.nopCloser, align 8 - %196 = load ptr, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 - %197 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %198 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @10, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %197, 1 - %199 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %198, ptr @"main.(*nopCloser).Close", 2 - %200 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %199, ptr @"main.(*nopCloser).Close", 3 - %201 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @10, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %197, 1 - %202 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %201, ptr @"main.(*nopCloser).Close", 2 - %203 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %202, ptr @main.nopCloser.Close, 3 - %204 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %205 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %204, 1 - %206 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %205, ptr @"main.(*nopCloser).Read", 2 - %207 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %206, ptr @"main.(*nopCloser).Read", 3 - %208 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %204, 1 - %209 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %208, ptr @"main.(*nopCloser).Read", 2 - %210 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %209, ptr @main.nopCloser.Read, 3 - %211 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %212 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %211, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %203, ptr %212, align 8 - %213 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %211, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %210, ptr %213, align 8 - %214 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %211, 0 - %215 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %214, i64 2, 1 - %216 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %215, i64 2, 2 - %217 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %218 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %217, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %200, ptr %218, align 8 - %219 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %217, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %207, ptr %219, align 8 - %220 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %217, 0 - %221 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %220, i64 2, 1 - %222 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %221, i64 2, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %195, ptr %196, %"github.com/goplus/llgo/internal/runtime.Slice" %216, %"github.com/goplus/llgo/internal/runtime.Slice" %222) - %223 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @12, i64 12 }) - %224 = load ptr, ptr @_llgo_main.StringWriter, align 8 - %225 = icmp eq ptr %224, null - br i1 %225, label %_llgo_41, label %_llgo_42 - -_llgo_41: ; preds = %_llgo_40 - store ptr %223, ptr @_llgo_main.StringWriter, align 8 - br label %_llgo_42 - -_llgo_42: ; preds = %_llgo_41, %_llgo_40 - %226 = load ptr, ptr @_llgo_string, align 8 - %227 = load ptr, ptr @_llgo_int, align 8 - %228 = load ptr, ptr @_llgo_error, align 8 - %229 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 - %230 = icmp eq ptr %229, null - br i1 %230, label %_llgo_43, label %_llgo_44 - -_llgo_43: ; preds = %_llgo_42 - %231 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %232 = getelementptr ptr, ptr %231, i64 0 - store ptr %226, ptr %232, align 8 - %233 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %231, 0 - %234 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %233, i64 1, 1 - %235 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %234, i64 1, 2 - %236 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %237 = getelementptr ptr, ptr %236, i64 0 - store ptr %227, ptr %237, align 8 - %238 = getelementptr ptr, ptr %236, i64 1 - store ptr %228, ptr %238, align 8 - %239 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %236, 0 - %240 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %239, i64 2, 1 - %241 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %240, i64 2, 2 - %242 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %235, %"github.com/goplus/llgo/internal/runtime.Slice" %241, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %242) - store ptr %242, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 - br label %_llgo_44 - -_llgo_44: ; preds = %_llgo_43, %_llgo_42 - %243 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 - br i1 %225, label %_llgo_45, label %_llgo_46 - -_llgo_45: ; preds = %_llgo_44 - %244 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @13, i64 11 }, ptr undef }, ptr %243, 1 - %245 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %246 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %245, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %244, ptr %246, align 8 - %247 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %245, 0 - %248 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %247, i64 1, 1 - %249 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %248, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr %223, %"github.com/goplus/llgo/internal/runtime.Slice" %249) - br label %_llgo_46 - -_llgo_46: ; preds = %_llgo_45, %_llgo_44 - %250 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 - %251 = load ptr, ptr @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU", align 8 - %252 = icmp eq ptr %251, null - br i1 %252, label %_llgo_47, label %_llgo_48 - -_llgo_47: ; preds = %_llgo_46 - %253 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @13, i64 11 }, ptr undef }, ptr %250, 1 - %254 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %255 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %254, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %253, ptr %255, align 8 - %256 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %254, 0 - %257 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %256, i64 1, 1 - %258 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %257, i64 1, 2 - %259 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %258) - store ptr %259, ptr @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU", align 8 - br label %_llgo_48 - -_llgo_48: ; preds = %_llgo_47, %_llgo_46 - %260 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @17, i64 12 }, i64 25, i64 32, i64 0, i64 10) - store ptr %260, ptr @_llgo_main.stringReader, align 8 - %261 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %262 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @18, i64 1 }, ptr %261, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %263 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 38) - %264 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @19, i64 1 }, ptr %263, i64 16, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %265 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %266 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @20, i64 8 }, ptr %265, i64 24, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %267 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) - %268 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %267, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %262, ptr %268, align 8 - %269 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %267, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %264, ptr %269, align 8 - %270 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %267, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %266, ptr %270, align 8 - %271 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %267, 0 - %272 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %271, i64 3, 1 - %273 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %272, i64 3, 2 - %274 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 32, %"github.com/goplus/llgo/internal/runtime.Slice" %273) - store ptr %274, ptr @"main.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk", align 8 - %275 = load ptr, ptr @"main.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk", align 8 - %276 = load ptr, ptr @_llgo_int, align 8 - %277 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %278 = icmp eq ptr %277, null - br i1 %278, label %_llgo_49, label %_llgo_50 - -_llgo_49: ; preds = %_llgo_48 - %279 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %280 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %279, 0 - %281 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %280, i64 0, 1 - %282 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %281, i64 0, 2 - %283 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %284 = getelementptr ptr, ptr %283, i64 0 - store ptr %276, ptr %284, align 8 - %285 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %283, 0 - %286 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %285, i64 1, 1 - %287 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %286, i64 1, 2 - %288 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %282, %"github.com/goplus/llgo/internal/runtime.Slice" %287, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %288) - store ptr %288, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - br label %_llgo_50 - -_llgo_50: ; preds = %_llgo_49, %_llgo_48 - %289 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %290 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %289, 1 - %291 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %290, ptr @"main.(*stringReader).Len", 2 - %292 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %291, ptr @"main.(*stringReader).Len", 3 - %293 = load ptr, ptr @"[]_llgo_byte", align 8 - %294 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %295 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %294, 1 - %296 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %295, ptr @"main.(*stringReader).Read", 2 - %297 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %296, ptr @"main.(*stringReader).Read", 3 - %298 = load ptr, ptr @"[]_llgo_byte", align 8 - %299 = load ptr, ptr @"[]_llgo_byte", align 8 - %300 = load ptr, ptr @_llgo_int64, align 8 - %301 = load ptr, ptr @_llgo_int, align 8 - %302 = load ptr, ptr @_llgo_error, align 8 - %303 = load ptr, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 - %304 = icmp eq ptr %303, null - br i1 %304, label %_llgo_51, label %_llgo_52 - -_llgo_51: ; preds = %_llgo_50 - %305 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %306 = getelementptr ptr, ptr %305, i64 0 - store ptr %299, ptr %306, align 8 - %307 = getelementptr ptr, ptr %305, i64 1 - store ptr %300, ptr %307, align 8 - %308 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %305, 0 - %309 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %308, i64 2, 1 - %310 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %309, i64 2, 2 - %311 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %312 = getelementptr ptr, ptr %311, i64 0 - store ptr %301, ptr %312, align 8 - %313 = getelementptr ptr, ptr %311, i64 1 - store ptr %302, ptr %313, align 8 - %314 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %311, 0 - %315 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %314, i64 2, 1 - %316 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %315, i64 2, 2 - %317 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %310, %"github.com/goplus/llgo/internal/runtime.Slice" %316, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %317) - store ptr %317, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 - br label %_llgo_52 - -_llgo_52: ; preds = %_llgo_51, %_llgo_50 - %318 = load ptr, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 - %319 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @22, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %318, 1 - %320 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %319, ptr @"main.(*stringReader).ReadAt", 2 - %321 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %320, ptr @"main.(*stringReader).ReadAt", 3 - %322 = load ptr, ptr @_llgo_byte, align 8 - %323 = load ptr, ptr @_llgo_error, align 8 - %324 = load ptr, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", align 8 - %325 = icmp eq ptr %324, null - br i1 %325, label %_llgo_53, label %_llgo_54 - -_llgo_53: ; preds = %_llgo_52 - %326 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %327 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %326, 0 - %328 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %327, i64 0, 1 - %329 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %328, i64 0, 2 - %330 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %331 = getelementptr ptr, ptr %330, i64 0 - store ptr %322, ptr %331, align 8 - %332 = getelementptr ptr, ptr %330, i64 1 - store ptr %323, ptr %332, align 8 - %333 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %330, 0 - %334 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %333, i64 2, 1 - %335 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %334, i64 2, 2 - %336 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %329, %"github.com/goplus/llgo/internal/runtime.Slice" %335, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %336) - store ptr %336, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", align 8 - br label %_llgo_54 - -_llgo_54: ; preds = %_llgo_53, %_llgo_52 - %337 = load ptr, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", align 8 - %338 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @23, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %337, 1 - %339 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %338, ptr @"main.(*stringReader).ReadByte", 2 - %340 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %339, ptr @"main.(*stringReader).ReadByte", 3 - %341 = load ptr, ptr @_llgo_rune, align 8 - %342 = icmp eq ptr %341, null - br i1 %342, label %_llgo_55, label %_llgo_56 - -_llgo_55: ; preds = %_llgo_54 - %343 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 37) - store ptr %343, ptr @_llgo_rune, align 8 - br label %_llgo_56 - -_llgo_56: ; preds = %_llgo_55, %_llgo_54 - %344 = load ptr, ptr @_llgo_rune, align 8 - %345 = load ptr, ptr @_llgo_rune, align 8 - %346 = load ptr, ptr @_llgo_int, align 8 - %347 = load ptr, ptr @_llgo_error, align 8 - %348 = load ptr, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 - %349 = icmp eq ptr %348, null - br i1 %349, label %_llgo_57, label %_llgo_58 - -_llgo_57: ; preds = %_llgo_56 - %350 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %351 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %350, 0 - %352 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %351, i64 0, 1 - %353 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %352, i64 0, 2 - %354 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %355 = getelementptr ptr, ptr %354, i64 0 - store ptr %345, ptr %355, align 8 - %356 = getelementptr ptr, ptr %354, i64 1 - store ptr %346, ptr %356, align 8 - %357 = getelementptr ptr, ptr %354, i64 2 - store ptr %347, ptr %357, align 8 - %358 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %354, 0 - %359 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %358, i64 3, 1 - %360 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %359, i64 3, 2 - %361 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %353, %"github.com/goplus/llgo/internal/runtime.Slice" %360, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %361) - store ptr %361, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 - br label %_llgo_58 - -_llgo_58: ; preds = %_llgo_57, %_llgo_56 - %362 = load ptr, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 - %363 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @24, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %362, 1 - %364 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %363, ptr @"main.(*stringReader).ReadRune", 2 - %365 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %364, ptr @"main.(*stringReader).ReadRune", 3 - %366 = load ptr, ptr @_llgo_int64, align 8 - %367 = load ptr, ptr @_llgo_int, align 8 - %368 = load ptr, ptr @_llgo_int64, align 8 - %369 = load ptr, ptr @_llgo_error, align 8 - %370 = load ptr, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 - %371 = icmp eq ptr %370, null - br i1 %371, label %_llgo_59, label %_llgo_60 - -_llgo_59: ; preds = %_llgo_58 - %372 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %373 = getelementptr ptr, ptr %372, i64 0 - store ptr %366, ptr %373, align 8 - %374 = getelementptr ptr, ptr %372, i64 1 - store ptr %367, ptr %374, align 8 - %375 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %372, 0 - %376 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %375, i64 2, 1 - %377 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %376, i64 2, 2 - %378 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %379 = getelementptr ptr, ptr %378, i64 0 - store ptr %368, ptr %379, align 8 - %380 = getelementptr ptr, ptr %378, i64 1 - store ptr %369, ptr %380, align 8 - %381 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %378, 0 - %382 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %381, i64 2, 1 - %383 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %382, i64 2, 2 - %384 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %377, %"github.com/goplus/llgo/internal/runtime.Slice" %383, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %384) - store ptr %384, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 - br label %_llgo_60 - -_llgo_60: ; preds = %_llgo_59, %_llgo_58 - %385 = load ptr, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 - %386 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @25, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %385, 1 - %387 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %386, ptr @"main.(*stringReader).Seek", 2 - %388 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %387, ptr @"main.(*stringReader).Seek", 3 - %389 = load ptr, ptr @_llgo_int64, align 8 - %390 = load ptr, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 - %391 = icmp eq ptr %390, null - br i1 %391, label %_llgo_61, label %_llgo_62 - -_llgo_61: ; preds = %_llgo_60 - %392 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %393 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %392, 0 - %394 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %393, i64 0, 1 - %395 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %394, i64 0, 2 - %396 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %397 = getelementptr ptr, ptr %396, i64 0 - store ptr %389, ptr %397, align 8 - %398 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %396, 0 - %399 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %398, i64 1, 1 - %400 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %399, i64 1, 2 - %401 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %395, %"github.com/goplus/llgo/internal/runtime.Slice" %400, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %401) - store ptr %401, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 - br label %_llgo_62 - -_llgo_62: ; preds = %_llgo_61, %_llgo_60 - %402 = load ptr, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 - %403 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @26, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %402, 1 - %404 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %403, ptr @"main.(*stringReader).Size", 2 - %405 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %404, ptr @"main.(*stringReader).Size", 3 - %406 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %407 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @27, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %406, 1 - %408 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %407, ptr @"main.(*stringReader).UnreadByte", 2 - %409 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %408, ptr @"main.(*stringReader).UnreadByte", 3 - %410 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %411 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @28, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %410, 1 - %412 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %411, ptr @"main.(*stringReader).UnreadRune", 2 - %413 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %412, ptr @"main.(*stringReader).UnreadRune", 3 - %414 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 - %415 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %414, 1 - %416 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %415, ptr @"main.(*stringReader).WriteTo", 2 - %417 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %416, ptr @"main.(*stringReader).WriteTo", 3 - %418 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 400) - %419 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %418, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %292, ptr %419, align 8 - %420 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %418, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %297, ptr %420, align 8 - %421 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %418, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %321, ptr %421, align 8 - %422 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %418, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %340, ptr %422, align 8 - %423 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %418, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %365, ptr %423, align 8 - %424 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %418, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %388, ptr %424, align 8 - %425 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %418, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %405, ptr %425, align 8 - %426 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %418, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %409, ptr %426, align 8 - %427 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %418, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %413, ptr %427, align 8 - %428 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %418, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %417, ptr %428, align 8 - %429 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %418, 0 - %430 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %429, i64 10, 1 - %431 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %430, i64 10, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %260, ptr %275, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %431) - %432 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @17, i64 12 }, i64 25, i64 32, i64 0, i64 10) - %433 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %432) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %433) - store ptr %433, ptr @"*_llgo_main.stringReader", align 8 - %434 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 - %435 = load ptr, ptr @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE", align 8 - %436 = icmp eq ptr %435, null - br i1 %436, label %_llgo_63, label %_llgo_64 - -_llgo_63: ; preds = %_llgo_62 - %437 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 4 }, ptr undef }, ptr %434, 1 - %438 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %439 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %438, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %437, ptr %439, align 8 - %440 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %438, 0 - %441 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %440, i64 1, 1 - %442 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %441, i64 1, 2 - %443 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %442) - store ptr %443, ptr @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE", align 8 - br label %_llgo_64 - -_llgo_64: ; preds = %_llgo_63, %_llgo_62 - %444 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @29, i64 11 }, i64 25, i64 16, i64 0, i64 1) - store ptr %444, ptr @_llgo_main.errorString, align 8 - %445 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %446 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @18, i64 1 }, ptr %445, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %447 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %448 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %447, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %446, ptr %448, align 8 - %449 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %447, 0 - %450 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %449, i64 1, 1 - %451 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %450, i64 1, 2 - %452 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %451) - store ptr %452, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - %453 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 - %454 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %455 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %454, 1 - %456 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %455, ptr @"main.(*errorString).Error", 2 - %457 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %456, ptr @"main.(*errorString).Error", 3 - %458 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %459 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %458, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %457, ptr %459, align 8 - %460 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %458, 0 - %461 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %460, i64 1, 1 - %462 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %461, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %444, ptr %453, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %462) - %463 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @29, i64 11 }, i64 25, i64 16, i64 0, i64 1) - %464 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %463) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %464) - store ptr %464, ptr @"*_llgo_main.errorString", align 8 - %465 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %466 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 - %467 = icmp eq ptr %466, null - br i1 %467, label %_llgo_65, label %_llgo_66 - -_llgo_65: ; preds = %_llgo_64 - %468 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 5 }, ptr undef }, ptr %465, 1 - %469 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %470 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %469, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %468, ptr %470, align 8 - %471 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %469, 0 - %472 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %471, i64 1, 1 - %473 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %472, i64 1, 2 - %474 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %473) - store ptr %474, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 - br label %_llgo_66 - -_llgo_66: ; preds = %_llgo_65, %_llgo_64 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String") - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare i1 @"github.com/goplus/llgo/internal/runtime.Implements"(ptr, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr, ptr) - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr, i64, i64, i64, i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface", %"github.com/goplus/llgo/internal/runtime.eface") - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/internal/runtime.Slice", ptr, i64, i64) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"unicode/utf8.init"() - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringFromBytes"(%"github.com/goplus/llgo/internal/runtime.Slice") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringSlice"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64) - -declare i64 @"github.com/goplus/llgo/internal/runtime.SliceCopy"(%"github.com/goplus/llgo/internal/runtime.Slice", ptr, i64, i64) - -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) - -declare { i32, i64 } @"unicode/utf8.DecodeRuneInString"(%"github.com/goplus/llgo/internal/runtime.String") - -attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testgo/reflect/out.ll b/cl/_testgo/reflect/out.ll deleted file mode 100644 index bbf68580..00000000 --- a/cl/_testgo/reflect/out.ll +++ /dev/null @@ -1,1522 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%main.T = type { i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%reflect.Value = type { ptr, ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } -%"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } -%"github.com/goplus/llgo/internal/abi.Imethod" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr } - -@"main.init$guard" = global i1 false, align 1 -@0 = private unnamed_addr constant [11 x i8] c"call.method", align 1 -@_llgo_int = linkonce global ptr null, align 8 -@"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU" = linkonce global ptr null, align 8 -@_llgo_Pointer = linkonce global ptr null, align 8 -@"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk" = linkonce global ptr null, align 8 -@1 = private unnamed_addr constant [2 x i8] c"$f", align 1 -@2 = private unnamed_addr constant [5 x i8] c"$data", align 1 -@3 = private unnamed_addr constant [4 x i8] c"main", align 1 -@4 = private unnamed_addr constant [7 x i8] c"closure", align 1 -@5 = private unnamed_addr constant [5 x i8] c"error", align 1 -@_llgo_string = linkonce global ptr null, align 8 -@6 = private unnamed_addr constant [12 x i8] c"call.closure", align 1 -@7 = private unnamed_addr constant [4 x i8] c"func", align 1 -@8 = private unnamed_addr constant [9 x i8] c"call.func", align 1 -@_llgo_main.T = linkonce global ptr null, align 8 -@9 = private unnamed_addr constant [1 x i8] c"T", align 1 -@"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U" = linkonce global ptr null, align 8 -@10 = private unnamed_addr constant [1 x i8] c"n", align 1 -@11 = private unnamed_addr constant [3 x i8] c"Add", align 1 -@"*_llgo_main.T" = linkonce global ptr null, align 8 -@"_llgo_iface$VdBKYV8-gcMjZtZfcf-u2oKoj9Lu3VXwuG8TGCW2S4A" = linkonce global ptr null, align 8 -@12 = private unnamed_addr constant [7 x i8] c"imethod", align 1 -@13 = private unnamed_addr constant [6 x i8] c"method", align 1 -@_llgo_any = linkonce global ptr null, align 8 -@"[]_llgo_any" = linkonce global ptr null, align 8 -@"_llgo_func$KK0iU4Wpi3BdRqssvycXqtgNe2Dq1riBlM61Rds1QsU" = linkonce global ptr null, align 8 -@"main.struct$FjMjjQr3-2iTiWyZP1IIQFOz0hUCa0OS6pEm5uVV6Pk" = linkonce global ptr null, align 8 -@14 = private unnamed_addr constant [10 x i8] c"call.slice", align 1 -@15 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@"map[_llgo_int]_llgo_string" = linkonce global ptr null, align 8 -@16 = private unnamed_addr constant [7 x i8] c"topbits", align 1 -@17 = private unnamed_addr constant [4 x i8] c"keys", align 1 -@18 = private unnamed_addr constant [5 x i8] c"elems", align 1 -@19 = private unnamed_addr constant [8 x i8] c"overflow", align 1 -@20 = private unnamed_addr constant [5 x i8] c"hello", align 1 -@21 = private unnamed_addr constant [5 x i8] c"world", align 1 -@22 = private unnamed_addr constant [14 x i8] c"MapIndex error", align 1 -@23 = private unnamed_addr constant [4 x i8] c"todo", align 1 -@24 = private unnamed_addr constant [12 x i8] c"must invalid", align 1 -@25 = private unnamed_addr constant [13 x i8] c"MapIter error", align 1 - -define i64 @"main.(*T).Add"(ptr %0, i64 %1) { -_llgo_0: - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 11 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %2 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 0 - %3 = load i64, ptr %2, align 4 - %4 = add i64 %3, %1 - %5 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 0 - store i64 %4, ptr %5, align 4 - %6 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 0 - %7 = load i64, ptr %6, align 4 - ret i64 %7 -} - -define void @main.callClosure() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - store i64 100, ptr %0, align 4 - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %2 = getelementptr inbounds { ptr }, ptr %1, i32 0, i32 0 - store ptr %0, ptr %2, align 8 - %3 = insertvalue { ptr, ptr } { ptr @"main.callClosure$1", ptr undef }, ptr %1, 1 - %4 = load ptr, ptr @_llgo_int, align 8 - %5 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 - %6 = load ptr, ptr @_llgo_Pointer, align 8 - %7 = load ptr, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store { ptr, ptr } %3, ptr %8, align 8 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %7, 0 - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %9, ptr %8, 1 - %11 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %10) - %12 = call i64 @reflect.Value.Kind(%reflect.Value %11) - %13 = call %"github.com/goplus/llgo/internal/runtime.iface" @reflect.Value.Type(%reflect.Value %11) - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %13) - %15 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %13, 0 - %16 = getelementptr ptr, ptr %15, i64 31 - %17 = load ptr, ptr %16, align 8 - %18 = insertvalue { ptr, ptr } undef, ptr %17, 0 - %19 = insertvalue { ptr, ptr } %18, ptr %14, 1 - %20 = extractvalue { ptr, ptr } %19, 1 - %21 = extractvalue { ptr, ptr } %19, 0 - %22 = call %"github.com/goplus/llgo/internal/runtime.String" %21(ptr %20) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 7 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %12) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %22) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %23 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) - %24 = getelementptr inbounds %reflect.Value, ptr %23, i64 0 - %25 = load ptr, ptr @_llgo_int, align 8 - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %25, 0 - %27 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %26, ptr inttoptr (i64 100 to ptr), 1 - %28 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %27) - store %reflect.Value %28, ptr %24, align 8 - %29 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %23, 0 - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %29, i64 1, 1 - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %30, i64 1, 2 - %32 = call %"github.com/goplus/llgo/internal/runtime.Slice" @reflect.Value.Call(%reflect.Value %11, %"github.com/goplus/llgo/internal/runtime.Slice" %31) - %33 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %32, 0 - %34 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %32, 1 - %35 = icmp sge i64 0, %34 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %35) - %36 = getelementptr inbounds %reflect.Value, ptr %33, i64 0 - %37 = load %reflect.Value, ptr %36, align 8 - %38 = call i64 @reflect.Value.Int(%reflect.Value %37) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %38) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %39 = call %"github.com/goplus/llgo/internal/runtime.eface" @reflect.Value.Interface(%reflect.Value %11) - %40 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %39, 0 - %41 = load ptr, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 - %42 = icmp eq ptr %40, %41 - br i1 %42, label %_llgo_3, label %_llgo_4 - -_llgo_1: ; preds = %_llgo_5 - %43 = load ptr, ptr @_llgo_string, align 8 - %44 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 5 }, ptr %44, align 8 - %45 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %43, 0 - %46 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %45, ptr %44, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %46) - unreachable - -_llgo_2: ; preds = %_llgo_5 - %47 = extractvalue { ptr, ptr } %55, 1 - %48 = extractvalue { ptr, ptr } %55, 0 - %49 = call i64 %48(ptr %47, i64 100) - ret void - -_llgo_3: ; preds = %_llgo_0 - %50 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %39, 1 - %51 = load { ptr, ptr }, ptr %50, align 8 - %52 = insertvalue { { ptr, ptr }, i1 } undef, { ptr, ptr } %51, 0 - %53 = insertvalue { { ptr, ptr }, i1 } %52, i1 true, 1 - br label %_llgo_5 - -_llgo_4: ; preds = %_llgo_0 - br label %_llgo_5 - -_llgo_5: ; preds = %_llgo_4, %_llgo_3 - %54 = phi { { ptr, ptr }, i1 } [ %53, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] - %55 = extractvalue { { ptr, ptr }, i1 } %54, 0 - %56 = extractvalue { { ptr, ptr }, i1 } %54, 1 - br i1 %56, label %_llgo_2, label %_llgo_1 -} - -define i64 @"main.callClosure$1"(ptr %0, i64 %1) { -_llgo_0: - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 12 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %2 = load { ptr }, ptr %0, align 8 - %3 = extractvalue { ptr } %2, 0 - %4 = load i64, ptr %3, align 4 - %5 = add i64 %4, %1 - %6 = add i64 %5, 1 - ret i64 %6 -} - -define void @main.callFunc() { -_llgo_0: - %0 = load ptr, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store { ptr, ptr } { ptr @"__llgo_stub.main.callFunc$1", ptr null }, ptr %1, align 8 - %2 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %0, 0 - %3 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %2, ptr %1, 1 - %4 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %3) - %5 = call i64 @reflect.Value.Kind(%reflect.Value %4) - %6 = call %"github.com/goplus/llgo/internal/runtime.iface" @reflect.Value.Type(%reflect.Value %4) - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %6) - %8 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %6, 0 - %9 = getelementptr ptr, ptr %8, i64 31 - %10 = load ptr, ptr %9, align 8 - %11 = insertvalue { ptr, ptr } undef, ptr %10, 0 - %12 = insertvalue { ptr, ptr } %11, ptr %7, 1 - %13 = extractvalue { ptr, ptr } %12, 1 - %14 = extractvalue { ptr, ptr } %12, 0 - %15 = call %"github.com/goplus/llgo/internal/runtime.String" %14(ptr %13) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %5) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %15) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %16 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) - %17 = getelementptr inbounds %reflect.Value, ptr %16, i64 0 - %18 = load ptr, ptr @_llgo_int, align 8 - %19 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %18, 0 - %20 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %19, ptr inttoptr (i64 100 to ptr), 1 - %21 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %20) - store %reflect.Value %21, ptr %17, align 8 - %22 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %16, 0 - %23 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %22, i64 1, 1 - %24 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %23, i64 1, 2 - %25 = call %"github.com/goplus/llgo/internal/runtime.Slice" @reflect.Value.Call(%reflect.Value %4, %"github.com/goplus/llgo/internal/runtime.Slice" %24) - %26 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %25, 0 - %27 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %25, 1 - %28 = icmp sge i64 0, %27 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %28) - %29 = getelementptr inbounds %reflect.Value, ptr %26, i64 0 - %30 = load %reflect.Value, ptr %29, align 8 - %31 = call i64 @reflect.Value.Int(%reflect.Value %30) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %31) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %32 = call %"github.com/goplus/llgo/internal/runtime.eface" @reflect.Value.Interface(%reflect.Value %4) - %33 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %32, 0 - %34 = load ptr, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 - %35 = icmp eq ptr %33, %34 - br i1 %35, label %_llgo_3, label %_llgo_4 - -_llgo_1: ; preds = %_llgo_5 - %36 = load ptr, ptr @_llgo_string, align 8 - %37 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 5 }, ptr %37, align 8 - %38 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %36, 0 - %39 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %38, ptr %37, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %39) - unreachable - -_llgo_2: ; preds = %_llgo_5 - %40 = extractvalue { ptr, ptr } %48, 1 - %41 = extractvalue { ptr, ptr } %48, 0 - %42 = call i64 %41(ptr %40, i64 100) - ret void - -_llgo_3: ; preds = %_llgo_0 - %43 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %32, 1 - %44 = load { ptr, ptr }, ptr %43, align 8 - %45 = insertvalue { { ptr, ptr }, i1 } undef, { ptr, ptr } %44, 0 - %46 = insertvalue { { ptr, ptr }, i1 } %45, i1 true, 1 - br label %_llgo_5 - -_llgo_4: ; preds = %_llgo_0 - br label %_llgo_5 - -_llgo_5: ; preds = %_llgo_4, %_llgo_3 - %47 = phi { { ptr, ptr }, i1 } [ %46, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] - %48 = extractvalue { { ptr, ptr }, i1 } %47, 0 - %49 = extractvalue { { ptr, ptr }, i1 } %47, 1 - br i1 %49, label %_llgo_2, label %_llgo_1 -} - -define i64 @"main.callFunc$1"(i64 %0) { -_llgo_0: - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 9 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %1 = add i64 %0, 1 - ret i64 %1 -} - -define void @main.callIMethod() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %1 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 0 - store i64 1, ptr %1, align 4 - %2 = load ptr, ptr @_llgo_main.T, align 8 - %3 = load ptr, ptr @"*_llgo_main.T", align 8 - %4 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 - %5 = load ptr, ptr @"_llgo_iface$VdBKYV8-gcMjZtZfcf-u2oKoj9Lu3VXwuG8TGCW2S4A", align 8 - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %5, ptr %3) - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %6, 0 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %7, ptr %0, 1 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %8) - %10 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %8, 1 - %11 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %9, 0 - %12 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %11, ptr %10, 1 - %13 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %12) - %14 = call %reflect.Value @reflect.Value.Method(%reflect.Value %13, i64 0) - %15 = call i64 @reflect.Value.Kind(%reflect.Value %14) - %16 = call %"github.com/goplus/llgo/internal/runtime.iface" @reflect.Value.Type(%reflect.Value %14) - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %16) - %18 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %16, 0 - %19 = getelementptr ptr, ptr %18, i64 31 - %20 = load ptr, ptr %19, align 8 - %21 = insertvalue { ptr, ptr } undef, ptr %20, 0 - %22 = insertvalue { ptr, ptr } %21, ptr %17, 1 - %23 = extractvalue { ptr, ptr } %22, 1 - %24 = extractvalue { ptr, ptr } %22, 0 - %25 = call %"github.com/goplus/llgo/internal/runtime.String" %24(ptr %23) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @12, i64 7 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %15) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %25) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %26 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) - %27 = getelementptr inbounds %reflect.Value, ptr %26, i64 0 - %28 = load ptr, ptr @_llgo_int, align 8 - %29 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %28, 0 - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %29, ptr inttoptr (i64 100 to ptr), 1 - %31 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %30) - store %reflect.Value %31, ptr %27, align 8 - %32 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %26, 0 - %33 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %32, i64 1, 1 - %34 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %33, i64 1, 2 - %35 = call %"github.com/goplus/llgo/internal/runtime.Slice" @reflect.Value.Call(%reflect.Value %14, %"github.com/goplus/llgo/internal/runtime.Slice" %34) - %36 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %35, 0 - %37 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %35, 1 - %38 = icmp sge i64 0, %37 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %38) - %39 = getelementptr inbounds %reflect.Value, ptr %36, i64 0 - %40 = load %reflect.Value, ptr %39, align 8 - %41 = call i64 @reflect.Value.Int(%reflect.Value %40) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %41) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %42 = call %"github.com/goplus/llgo/internal/runtime.eface" @reflect.Value.Interface(%reflect.Value %14) - %43 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %42, 0 - %44 = load ptr, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 - %45 = icmp eq ptr %43, %44 - br i1 %45, label %_llgo_3, label %_llgo_4 - -_llgo_1: ; preds = %_llgo_5 - %46 = load ptr, ptr @_llgo_string, align 8 - %47 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 5 }, ptr %47, align 8 - %48 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %46, 0 - %49 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %48, ptr %47, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %49) - unreachable - -_llgo_2: ; preds = %_llgo_5 - %50 = extractvalue { ptr, ptr } %76, 1 - %51 = extractvalue { ptr, ptr } %76, 0 - %52 = call i64 %51(ptr %50, i64 1) - %53 = call %"github.com/goplus/llgo/internal/runtime.eface" @reflect.Value.Interface(%reflect.Value %14) - %54 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %53) - %55 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) - %56 = getelementptr inbounds %reflect.Value, ptr %55, i64 0 - %57 = load ptr, ptr @_llgo_int, align 8 - %58 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %57, 0 - %59 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %58, ptr inttoptr (i64 100 to ptr), 1 - %60 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %59) - store %reflect.Value %60, ptr %56, align 8 - %61 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %55, 0 - %62 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %61, i64 1, 1 - %63 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %62, i64 1, 2 - %64 = call %"github.com/goplus/llgo/internal/runtime.Slice" @reflect.Value.Call(%reflect.Value %54, %"github.com/goplus/llgo/internal/runtime.Slice" %63) - %65 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %64, 0 - %66 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %64, 1 - %67 = icmp sge i64 0, %66 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %67) - %68 = getelementptr inbounds %reflect.Value, ptr %65, i64 0 - %69 = load %reflect.Value, ptr %68, align 8 - %70 = call i64 @reflect.Value.Int(%reflect.Value %69) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %70) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void - -_llgo_3: ; preds = %_llgo_0 - %71 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %42, 1 - %72 = load { ptr, ptr }, ptr %71, align 8 - %73 = insertvalue { { ptr, ptr }, i1 } undef, { ptr, ptr } %72, 0 - %74 = insertvalue { { ptr, ptr }, i1 } %73, i1 true, 1 - br label %_llgo_5 - -_llgo_4: ; preds = %_llgo_0 - br label %_llgo_5 - -_llgo_5: ; preds = %_llgo_4, %_llgo_3 - %75 = phi { { ptr, ptr }, i1 } [ %74, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] - %76 = extractvalue { { ptr, ptr }, i1 } %75, 0 - %77 = extractvalue { { ptr, ptr }, i1 } %75, 1 - br i1 %77, label %_llgo_2, label %_llgo_1 -} - -define void @main.callMethod() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %1 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 0 - store i64 1, ptr %1, align 4 - %2 = load ptr, ptr @"*_llgo_main.T", align 8 - %3 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %2, 0 - %4 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %3, ptr %0, 1 - %5 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %4) - %6 = call %reflect.Value @reflect.Value.Method(%reflect.Value %5, i64 0) - %7 = call i64 @reflect.Value.Kind(%reflect.Value %6) - %8 = call %"github.com/goplus/llgo/internal/runtime.iface" @reflect.Value.Type(%reflect.Value %6) - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %8) - %10 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %8, 0 - %11 = getelementptr ptr, ptr %10, i64 31 - %12 = load ptr, ptr %11, align 8 - %13 = insertvalue { ptr, ptr } undef, ptr %12, 0 - %14 = insertvalue { ptr, ptr } %13, ptr %9, 1 - %15 = extractvalue { ptr, ptr } %14, 1 - %16 = extractvalue { ptr, ptr } %14, 0 - %17 = call %"github.com/goplus/llgo/internal/runtime.String" %16(ptr %15) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @13, i64 6 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %7) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %17) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %18 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) - %19 = getelementptr inbounds %reflect.Value, ptr %18, i64 0 - %20 = load ptr, ptr @_llgo_int, align 8 - %21 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %20, 0 - %22 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %21, ptr inttoptr (i64 100 to ptr), 1 - %23 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %22) - store %reflect.Value %23, ptr %19, align 8 - %24 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %18, 0 - %25 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %24, i64 1, 1 - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %25, i64 1, 2 - %27 = call %"github.com/goplus/llgo/internal/runtime.Slice" @reflect.Value.Call(%reflect.Value %6, %"github.com/goplus/llgo/internal/runtime.Slice" %26) - %28 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %27, 0 - %29 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %27, 1 - %30 = icmp sge i64 0, %29 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %30) - %31 = getelementptr inbounds %reflect.Value, ptr %28, i64 0 - %32 = load %reflect.Value, ptr %31, align 8 - %33 = call i64 @reflect.Value.Int(%reflect.Value %32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %33) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %34 = call %"github.com/goplus/llgo/internal/runtime.eface" @reflect.Value.Interface(%reflect.Value %6) - %35 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %34, 0 - %36 = load ptr, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 - %37 = icmp eq ptr %35, %36 - br i1 %37, label %_llgo_3, label %_llgo_4 - -_llgo_1: ; preds = %_llgo_5 - %38 = load ptr, ptr @_llgo_string, align 8 - %39 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 5 }, ptr %39, align 8 - %40 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %38, 0 - %41 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %40, ptr %39, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %41) - unreachable - -_llgo_2: ; preds = %_llgo_5 - %42 = extractvalue { ptr, ptr } %68, 1 - %43 = extractvalue { ptr, ptr } %68, 0 - %44 = call i64 %43(ptr %42, i64 1) - %45 = call %"github.com/goplus/llgo/internal/runtime.eface" @reflect.Value.Interface(%reflect.Value %6) - %46 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %45) - %47 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) - %48 = getelementptr inbounds %reflect.Value, ptr %47, i64 0 - %49 = load ptr, ptr @_llgo_int, align 8 - %50 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %49, 0 - %51 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %50, ptr inttoptr (i64 100 to ptr), 1 - %52 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %51) - store %reflect.Value %52, ptr %48, align 8 - %53 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %47, 0 - %54 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %53, i64 1, 1 - %55 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %54, i64 1, 2 - %56 = call %"github.com/goplus/llgo/internal/runtime.Slice" @reflect.Value.Call(%reflect.Value %46, %"github.com/goplus/llgo/internal/runtime.Slice" %55) - %57 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %56, 0 - %58 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %56, 1 - %59 = icmp sge i64 0, %58 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %59) - %60 = getelementptr inbounds %reflect.Value, ptr %57, i64 0 - %61 = load %reflect.Value, ptr %60, align 8 - %62 = call i64 @reflect.Value.Int(%reflect.Value %61) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %62) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void - -_llgo_3: ; preds = %_llgo_0 - %63 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %34, 1 - %64 = load { ptr, ptr }, ptr %63, align 8 - %65 = insertvalue { { ptr, ptr }, i1 } undef, { ptr, ptr } %64, 0 - %66 = insertvalue { { ptr, ptr }, i1 } %65, i1 true, 1 - br label %_llgo_5 - -_llgo_4: ; preds = %_llgo_0 - br label %_llgo_5 - -_llgo_5: ; preds = %_llgo_4, %_llgo_3 - %67 = phi { { ptr, ptr }, i1 } [ %66, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] - %68 = extractvalue { { ptr, ptr }, i1 } %67, 0 - %69 = extractvalue { { ptr, ptr }, i1 } %67, 1 - br i1 %69, label %_llgo_2, label %_llgo_1 -} - -define void @main.callSlice() { -_llgo_0: - %0 = load ptr, ptr @_llgo_any, align 8 - %1 = load ptr, ptr @"[]_llgo_any", align 8 - %2 = load ptr, ptr @"_llgo_func$KK0iU4Wpi3BdRqssvycXqtgNe2Dq1riBlM61Rds1QsU", align 8 - %3 = load ptr, ptr @"main.struct$FjMjjQr3-2iTiWyZP1IIQFOz0hUCa0OS6pEm5uVV6Pk", align 8 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store { ptr, ptr } { ptr @__llgo_stub.main.demo, ptr null }, ptr %4, align 8 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %3, 0 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %5, ptr %4, 1 - %7 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %6) - %8 = load ptr, ptr @_llgo_int, align 8 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %8, 0 - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %9, ptr inttoptr (i64 1 to ptr), 1 - %11 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %10) - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 288) - %13 = getelementptr inbounds %reflect.Value, ptr %12, i64 0 - store %reflect.Value %11, ptr %13, align 8 - %14 = getelementptr inbounds %reflect.Value, ptr %12, i64 1 - store %reflect.Value %11, ptr %14, align 8 - %15 = getelementptr inbounds %reflect.Value, ptr %12, i64 2 - store %reflect.Value %11, ptr %15, align 8 - %16 = getelementptr inbounds %reflect.Value, ptr %12, i64 3 - store %reflect.Value %11, ptr %16, align 8 - %17 = getelementptr inbounds %reflect.Value, ptr %12, i64 4 - store %reflect.Value %11, ptr %17, align 8 - %18 = getelementptr inbounds %reflect.Value, ptr %12, i64 5 - store %reflect.Value %11, ptr %18, align 8 - %19 = getelementptr inbounds %reflect.Value, ptr %12, i64 6 - store %reflect.Value %11, ptr %19, align 8 - %20 = getelementptr inbounds %reflect.Value, ptr %12, i64 7 - store %reflect.Value %11, ptr %20, align 8 - %21 = getelementptr inbounds %reflect.Value, ptr %12, i64 8 - store %reflect.Value %11, ptr %21, align 8 - %22 = getelementptr inbounds %reflect.Value, ptr %12, i64 9 - %23 = load ptr, ptr @_llgo_int, align 8 - %24 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %23, 0 - %25 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %24, ptr inttoptr (i64 1 to ptr), 1 - %26 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %25) - store %reflect.Value %26, ptr %22, align 8 - %27 = getelementptr inbounds %reflect.Value, ptr %12, i64 10 - %28 = load ptr, ptr @_llgo_int, align 8 - %29 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %28, 0 - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %29, ptr inttoptr (i64 2 to ptr), 1 - %31 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %30) - store %reflect.Value %31, ptr %27, align 8 - %32 = getelementptr inbounds %reflect.Value, ptr %12, i64 11 - %33 = load ptr, ptr @_llgo_int, align 8 - %34 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %33, 0 - %35 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %34, ptr inttoptr (i64 3 to ptr), 1 - %36 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %35) - store %reflect.Value %36, ptr %32, align 8 - %37 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %12, 0 - %38 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %37, i64 12, 1 - %39 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %38, i64 12, 2 - %40 = call %"github.com/goplus/llgo/internal/runtime.Slice" @reflect.Value.Call(%reflect.Value %7, %"github.com/goplus/llgo/internal/runtime.Slice" %39) - %41 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %40, 0 - %42 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %40, 1 - %43 = icmp sge i64 0, %42 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %43) - %44 = getelementptr inbounds %reflect.Value, ptr %41, i64 0 - %45 = load %reflect.Value, ptr %44, align 8 - %46 = call i64 @reflect.Value.Int(%reflect.Value %45) - %47 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %40, 0 - %48 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %40, 1 - %49 = icmp sge i64 1, %48 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %49) - %50 = getelementptr inbounds %reflect.Value, ptr %47, i64 1 - %51 = load %reflect.Value, ptr %50, align 8 - %52 = call i64 @reflect.Value.Int(%reflect.Value %51) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @14, i64 10 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %46) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %52) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %53 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 240) - %54 = getelementptr inbounds %reflect.Value, ptr %53, i64 0 - store %reflect.Value %11, ptr %54, align 8 - %55 = getelementptr inbounds %reflect.Value, ptr %53, i64 1 - store %reflect.Value %11, ptr %55, align 8 - %56 = getelementptr inbounds %reflect.Value, ptr %53, i64 2 - store %reflect.Value %11, ptr %56, align 8 - %57 = getelementptr inbounds %reflect.Value, ptr %53, i64 3 - store %reflect.Value %11, ptr %57, align 8 - %58 = getelementptr inbounds %reflect.Value, ptr %53, i64 4 - store %reflect.Value %11, ptr %58, align 8 - %59 = getelementptr inbounds %reflect.Value, ptr %53, i64 5 - store %reflect.Value %11, ptr %59, align 8 - %60 = getelementptr inbounds %reflect.Value, ptr %53, i64 6 - store %reflect.Value %11, ptr %60, align 8 - %61 = getelementptr inbounds %reflect.Value, ptr %53, i64 7 - store %reflect.Value %11, ptr %61, align 8 - %62 = getelementptr inbounds %reflect.Value, ptr %53, i64 8 - store %reflect.Value %11, ptr %62, align 8 - %63 = getelementptr inbounds %reflect.Value, ptr %53, i64 9 - %64 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 48) - %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %64, i64 0 - %66 = load ptr, ptr @_llgo_int, align 8 - %67 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %66, 0 - %68 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %67, ptr inttoptr (i64 1 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %68, ptr %65, align 8 - %69 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %64, i64 1 - %70 = load ptr, ptr @_llgo_int, align 8 - %71 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %70, 0 - %72 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %71, ptr inttoptr (i64 2 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %72, ptr %69, align 8 - %73 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %64, i64 2 - %74 = load ptr, ptr @_llgo_int, align 8 - %75 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %74, 0 - %76 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %75, ptr inttoptr (i64 3 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %76, ptr %73, align 8 - %77 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %64, 0 - %78 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %77, i64 3, 1 - %79 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %78, i64 3, 2 - %80 = load ptr, ptr @"[]_llgo_any", align 8 - %81 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - store %"github.com/goplus/llgo/internal/runtime.Slice" %79, ptr %81, align 8 - %82 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %80, 0 - %83 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %82, ptr %81, 1 - %84 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %83) - store %reflect.Value %84, ptr %63, align 8 - %85 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %53, 0 - %86 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %85, i64 10, 1 - %87 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %86, i64 10, 2 - %88 = call %"github.com/goplus/llgo/internal/runtime.Slice" @reflect.Value.CallSlice(%reflect.Value %7, %"github.com/goplus/llgo/internal/runtime.Slice" %87) - %89 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %88, 0 - %90 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %88, 1 - %91 = icmp sge i64 0, %90 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %91) - %92 = getelementptr inbounds %reflect.Value, ptr %89, i64 0 - %93 = load %reflect.Value, ptr %92, align 8 - %94 = call i64 @reflect.Value.Int(%reflect.Value %93) - %95 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %88, 0 - %96 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %88, 1 - %97 = icmp sge i64 1, %96 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %97) - %98 = getelementptr inbounds %reflect.Value, ptr %95, i64 1 - %99 = load %reflect.Value, ptr %98, align 8 - %100 = call i64 @reflect.Value.Int(%reflect.Value %99) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @14, i64 10 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %94) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %100) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -define { i64, i64 } @main.demo(i64 %0, i64 %1, i64 %2, i64 %3, i64 %4, i64 %5, i64 %6, i64 %7, i64 %8, %"github.com/goplus/llgo/internal/runtime.Slice" %9) { -_llgo_0: - %10 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 1 - br label %_llgo_1 - -_llgo_1: ; preds = %_llgo_4, %_llgo_0 - %11 = phi i64 [ 0, %_llgo_0 ], [ %37, %_llgo_4 ] - %12 = phi i64 [ -1, %_llgo_0 ], [ %13, %_llgo_4 ] - %13 = add i64 %12, 1 - %14 = icmp slt i64 %13, %10 - br i1 %14, label %_llgo_2, label %_llgo_3 - -_llgo_2: ; preds = %_llgo_1 - %15 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 0 - %16 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 1 - %17 = icmp slt i64 %13, 0 - %18 = icmp sge i64 %13, %16 - %19 = or i1 %18, %17 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %19) - %20 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %15, i64 %13 - %21 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %20, align 8 - %22 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %21, 0 - %23 = load ptr, ptr @_llgo_int, align 8 - %24 = icmp eq ptr %22, %23 - br i1 %24, label %_llgo_4, label %_llgo_5 - -_llgo_3: ; preds = %_llgo_1 - %25 = add i64 %0, %1 - %26 = add i64 %25, %2 - %27 = add i64 %26, %3 - %28 = add i64 %27, %4 - %29 = add i64 %28, %5 - %30 = add i64 %29, %6 - %31 = add i64 %30, %7 - %32 = add i64 %31, %8 - %33 = insertvalue { i64, i64 } undef, i64 %32, 0 - %34 = insertvalue { i64, i64 } %33, i64 %11, 1 - ret { i64, i64 } %34 - -_llgo_4: ; preds = %_llgo_2 - %35 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %21, 1 - %36 = ptrtoint ptr %35 to i64 - %37 = add i64 %11, %36 - br label %_llgo_1 - -_llgo_5: ; preds = %_llgo_2 - %38 = load ptr, ptr @_llgo_string, align 8 - %39 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @15, i64 21 }, ptr %39, align 8 - %40 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %38, 0 - %41 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %40, ptr %39, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %41) - unreachable -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @reflect.init() - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - call void @main.callSlice() - call void @main.callFunc() - call void @main.callClosure() - call void @main.callMethod() - call void @main.callIMethod() - call void @main.mapDemo1() - call void @main.mapDemo2() - ret i32 0 -} - -define void @main.mapDemo1() { -_llgo_0: - %0 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %0, i64 2) - %2 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store i64 1, ptr %3, align 4 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %2, ptr %1, ptr %3) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @20, i64 5 }, ptr %4, align 8 - %5 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store i64 2, ptr %6, align 4 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %5, ptr %1, ptr %6) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @21, i64 5 }, ptr %7, align 8 - %8 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %8, 0 - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %9, ptr %1, 1 - %11 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %10) - %12 = call i64 @reflect.Value.Len(%reflect.Value %11) - %13 = icmp ne i64 %12, 2 - br i1 %13, label %_llgo_1, label %_llgo_3 - -_llgo_1: ; preds = %_llgo_3, %_llgo_0 - %14 = load ptr, ptr @_llgo_string, align 8 - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 5 }, ptr %15, align 8 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %14, 0 - %17 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %16, ptr %15, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %17) - unreachable - -_llgo_2: ; preds = %_llgo_3 - %18 = load ptr, ptr @_llgo_int, align 8 - %19 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %18, 0 - %20 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %19, ptr inttoptr (i64 2 to ptr), 1 - %21 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %20) - %22 = call %reflect.Value @reflect.Value.MapIndex(%reflect.Value %11, %reflect.Value %21) - %23 = call %"github.com/goplus/llgo/internal/runtime.String" @reflect.Value.String(%reflect.Value %22) - %24 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" %23, %"github.com/goplus/llgo/internal/runtime.String" { ptr @21, i64 5 }) - %25 = xor i1 %24, true - br i1 %25, label %_llgo_4, label %_llgo_5 - -_llgo_3: ; preds = %_llgo_0 - %26 = call %"github.com/goplus/llgo/internal/runtime.Slice" @reflect.Value.MapKeys(%reflect.Value %11) - %27 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %26, 1 - %28 = icmp ne i64 %27, 2 - br i1 %28, label %_llgo_1, label %_llgo_2 - -_llgo_4: ; preds = %_llgo_2 - %29 = load ptr, ptr @_llgo_string, align 8 - %30 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @22, i64 14 }, ptr %30, align 8 - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %29, 0 - %32 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %31, ptr %30, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %32) - unreachable - -_llgo_5: ; preds = %_llgo_2 - %33 = load ptr, ptr @_llgo_int, align 8 - %34 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %33, 0 - %35 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %34, ptr inttoptr (i64 2 to ptr), 1 - %36 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %35) - %37 = load ptr, ptr @_llgo_string, align 8 - %38 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @23, i64 4 }, ptr %38, align 8 - %39 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %37, 0 - %40 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %39, ptr %38, 1 - %41 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %40) - call void @reflect.Value.SetMapIndex(%reflect.Value %11, %reflect.Value %36, %reflect.Value %41) - %42 = load ptr, ptr @_llgo_int, align 8 - %43 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %42, 0 - %44 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %43, ptr inttoptr (i64 2 to ptr), 1 - %45 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %44) - %46 = call %reflect.Value @reflect.Value.MapIndex(%reflect.Value %11, %reflect.Value %45) - %47 = call %"github.com/goplus/llgo/internal/runtime.String" @reflect.Value.String(%reflect.Value %46) - %48 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" %47, %"github.com/goplus/llgo/internal/runtime.String" { ptr @23, i64 4 }) - %49 = xor i1 %48, true - br i1 %49, label %_llgo_6, label %_llgo_7 - -_llgo_6: ; preds = %_llgo_5 - %50 = load ptr, ptr @_llgo_string, align 8 - %51 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @22, i64 14 }, ptr %51, align 8 - %52 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %50, 0 - %53 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %52, ptr %51, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %53) - unreachable - -_llgo_7: ; preds = %_llgo_5 - %54 = load ptr, ptr @_llgo_int, align 8 - %55 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %54, 0 - %56 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %55, ptr null, 1 - %57 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %56) - %58 = call %reflect.Value @reflect.Value.MapIndex(%reflect.Value %11, %reflect.Value %57) - %59 = call i1 @reflect.Value.IsValid(%reflect.Value %58) - br i1 %59, label %_llgo_8, label %_llgo_9 - -_llgo_8: ; preds = %_llgo_7 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @24, i64 12 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - br label %_llgo_9 - -_llgo_9: ; preds = %_llgo_8, %_llgo_7 - %60 = call %"github.com/goplus/llgo/internal/runtime.iface" @reflect.Value.Type(%reflect.Value %11) - %61 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %60) - %62 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %60, 0 - %63 = getelementptr ptr, ptr %62, i64 18 - %64 = load ptr, ptr %63, align 8 - %65 = insertvalue { ptr, ptr } undef, ptr %64, 0 - %66 = insertvalue { ptr, ptr } %65, ptr %61, 1 - %67 = extractvalue { ptr, ptr } %66, 1 - %68 = extractvalue { ptr, ptr } %66, 0 - %69 = call %"github.com/goplus/llgo/internal/runtime.iface" %68(ptr %67) - %70 = call %reflect.Value @reflect.New(%"github.com/goplus/llgo/internal/runtime.iface" %69) - %71 = call %reflect.Value @reflect.Value.Elem(%reflect.Value %70) - %72 = call %"github.com/goplus/llgo/internal/runtime.iface" @reflect.Value.Type(%reflect.Value %11) - %73 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %72) - %74 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %72, 0 - %75 = getelementptr ptr, ptr %74, i64 9 - %76 = load ptr, ptr %75, align 8 - %77 = insertvalue { ptr, ptr } undef, ptr %76, 0 - %78 = insertvalue { ptr, ptr } %77, ptr %73, 1 - %79 = extractvalue { ptr, ptr } %78, 1 - %80 = extractvalue { ptr, ptr } %78, 0 - %81 = call %"github.com/goplus/llgo/internal/runtime.iface" %80(ptr %79) - %82 = call %reflect.Value @reflect.New(%"github.com/goplus/llgo/internal/runtime.iface" %81) - %83 = call %reflect.Value @reflect.Value.Elem(%reflect.Value %82) - %84 = call ptr @reflect.Value.MapRange(%reflect.Value %11) - br label %_llgo_12 - -_llgo_10: ; preds = %_llgo_12 - call void @reflect.Value.SetIterKey(%reflect.Value %71, ptr %84) - call void @reflect.Value.SetIterValue(%reflect.Value %83, ptr %84) - %85 = call i64 @reflect.Value.Int(%reflect.Value %71) - %86 = call %reflect.Value @"reflect.(*MapIter).Key"(ptr %84) - %87 = call i64 @reflect.Value.Int(%reflect.Value %86) - %88 = icmp ne i64 %85, %87 - br i1 %88, label %_llgo_13, label %_llgo_14 - -_llgo_11: ; preds = %_llgo_12 - ret void - -_llgo_12: ; preds = %_llgo_14, %_llgo_9 - %89 = call i1 @"reflect.(*MapIter).Next"(ptr %84) - br i1 %89, label %_llgo_10, label %_llgo_11 - -_llgo_13: ; preds = %_llgo_14, %_llgo_10 - %90 = load ptr, ptr @_llgo_string, align 8 - %91 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @25, i64 13 }, ptr %91, align 8 - %92 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %90, 0 - %93 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %92, ptr %91, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %93) - unreachable - -_llgo_14: ; preds = %_llgo_10 - %94 = call %"github.com/goplus/llgo/internal/runtime.String" @reflect.Value.String(%reflect.Value %83) - %95 = call %reflect.Value @"reflect.(*MapIter).Value"(ptr %84) - %96 = call %"github.com/goplus/llgo/internal/runtime.String" @reflect.Value.String(%reflect.Value %95) - %97 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" %94, %"github.com/goplus/llgo/internal/runtime.String" %96) - %98 = xor i1 %97, true - br i1 %98, label %_llgo_13, label %_llgo_12 -} - -define void @main.mapDemo2() { -_llgo_0: - %0 = load ptr, ptr @_llgo_int, align 8 - %1 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %0, 0 - %2 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %1, ptr null, 1 - %3 = call %"github.com/goplus/llgo/internal/runtime.iface" @reflect.TypeOf(%"github.com/goplus/llgo/internal/runtime.eface" %2) - %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - %8 = call %"github.com/goplus/llgo/internal/runtime.iface" @reflect.TypeOf(%"github.com/goplus/llgo/internal/runtime.eface" %7) - %9 = call %"github.com/goplus/llgo/internal/runtime.iface" @reflect.MapOf(%"github.com/goplus/llgo/internal/runtime.iface" %3, %"github.com/goplus/llgo/internal/runtime.iface" %8) - %10 = call %reflect.Value @reflect.MakeMap(%"github.com/goplus/llgo/internal/runtime.iface" %9) - %11 = load ptr, ptr @_llgo_int, align 8 - %12 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %11, 0 - %13 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %12, ptr inttoptr (i64 1 to ptr), 1 - %14 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %13) - %15 = load ptr, ptr @_llgo_string, align 8 - %16 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @20, i64 5 }, ptr %16, align 8 - %17 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %15, 0 - %18 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %17, ptr %16, 1 - %19 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %18) - call void @reflect.Value.SetMapIndex(%reflect.Value %10, %reflect.Value %14, %reflect.Value %19) - %20 = load ptr, ptr @_llgo_int, align 8 - %21 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %20, 0 - %22 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %21, ptr inttoptr (i64 2 to ptr), 1 - %23 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %22) - %24 = load ptr, ptr @_llgo_string, align 8 - %25 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @21, i64 5 }, ptr %25, align 8 - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %24, 0 - %27 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %26, ptr %25, 1 - %28 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %27) - call void @reflect.Value.SetMapIndex(%reflect.Value %10, %reflect.Value %23, %reflect.Value %28) - %29 = call i64 @reflect.Value.Len(%reflect.Value %10) - %30 = icmp ne i64 %29, 2 - br i1 %30, label %_llgo_1, label %_llgo_3 - -_llgo_1: ; preds = %_llgo_3, %_llgo_0 - %31 = load ptr, ptr @_llgo_string, align 8 - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 5 }, ptr %32, align 8 - %33 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %31, 0 - %34 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %33, ptr %32, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %34) - unreachable - -_llgo_2: ; preds = %_llgo_3 - %35 = load ptr, ptr @_llgo_int, align 8 - %36 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %35, 0 - %37 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %36, ptr inttoptr (i64 2 to ptr), 1 - %38 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %37) - %39 = call %reflect.Value @reflect.Value.MapIndex(%reflect.Value %10, %reflect.Value %38) - %40 = call %"github.com/goplus/llgo/internal/runtime.String" @reflect.Value.String(%reflect.Value %39) - %41 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" %40, %"github.com/goplus/llgo/internal/runtime.String" { ptr @21, i64 5 }) - %42 = xor i1 %41, true - br i1 %42, label %_llgo_4, label %_llgo_5 - -_llgo_3: ; preds = %_llgo_0 - %43 = call %"github.com/goplus/llgo/internal/runtime.Slice" @reflect.Value.MapKeys(%reflect.Value %10) - %44 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %43, 1 - %45 = icmp ne i64 %44, 2 - br i1 %45, label %_llgo_1, label %_llgo_2 - -_llgo_4: ; preds = %_llgo_2 - %46 = load ptr, ptr @_llgo_string, align 8 - %47 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @22, i64 14 }, ptr %47, align 8 - %48 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %46, 0 - %49 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %48, ptr %47, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %49) - unreachable - -_llgo_5: ; preds = %_llgo_2 - %50 = load ptr, ptr @_llgo_int, align 8 - %51 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %50, 0 - %52 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %51, ptr inttoptr (i64 2 to ptr), 1 - %53 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %52) - %54 = load ptr, ptr @_llgo_string, align 8 - %55 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @23, i64 4 }, ptr %55, align 8 - %56 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %54, 0 - %57 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %56, ptr %55, 1 - %58 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %57) - call void @reflect.Value.SetMapIndex(%reflect.Value %10, %reflect.Value %53, %reflect.Value %58) - %59 = load ptr, ptr @_llgo_int, align 8 - %60 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %59, 0 - %61 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %60, ptr inttoptr (i64 2 to ptr), 1 - %62 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %61) - %63 = call %reflect.Value @reflect.Value.MapIndex(%reflect.Value %10, %reflect.Value %62) - %64 = call %"github.com/goplus/llgo/internal/runtime.String" @reflect.Value.String(%reflect.Value %63) - %65 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" %64, %"github.com/goplus/llgo/internal/runtime.String" { ptr @23, i64 4 }) - %66 = xor i1 %65, true - br i1 %66, label %_llgo_6, label %_llgo_7 - -_llgo_6: ; preds = %_llgo_5 - %67 = load ptr, ptr @_llgo_string, align 8 - %68 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @22, i64 14 }, ptr %68, align 8 - %69 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %67, 0 - %70 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %69, ptr %68, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %70) - unreachable - -_llgo_7: ; preds = %_llgo_5 - %71 = load ptr, ptr @_llgo_int, align 8 - %72 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %71, 0 - %73 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %72, ptr null, 1 - %74 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface" %73) - %75 = call %reflect.Value @reflect.Value.MapIndex(%reflect.Value %10, %reflect.Value %74) - %76 = call i1 @reflect.Value.IsValid(%reflect.Value %75) - br i1 %76, label %_llgo_8, label %_llgo_9 - -_llgo_8: ; preds = %_llgo_7 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @24, i64 12 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - br label %_llgo_9 - -_llgo_9: ; preds = %_llgo_8, %_llgo_7 - %77 = call %"github.com/goplus/llgo/internal/runtime.iface" @reflect.Value.Type(%reflect.Value %10) - %78 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %77) - %79 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %77, 0 - %80 = getelementptr ptr, ptr %79, i64 18 - %81 = load ptr, ptr %80, align 8 - %82 = insertvalue { ptr, ptr } undef, ptr %81, 0 - %83 = insertvalue { ptr, ptr } %82, ptr %78, 1 - %84 = extractvalue { ptr, ptr } %83, 1 - %85 = extractvalue { ptr, ptr } %83, 0 - %86 = call %"github.com/goplus/llgo/internal/runtime.iface" %85(ptr %84) - %87 = call %reflect.Value @reflect.New(%"github.com/goplus/llgo/internal/runtime.iface" %86) - %88 = call %reflect.Value @reflect.Value.Elem(%reflect.Value %87) - %89 = call %"github.com/goplus/llgo/internal/runtime.iface" @reflect.Value.Type(%reflect.Value %10) - %90 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %89) - %91 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %89, 0 - %92 = getelementptr ptr, ptr %91, i64 9 - %93 = load ptr, ptr %92, align 8 - %94 = insertvalue { ptr, ptr } undef, ptr %93, 0 - %95 = insertvalue { ptr, ptr } %94, ptr %90, 1 - %96 = extractvalue { ptr, ptr } %95, 1 - %97 = extractvalue { ptr, ptr } %95, 0 - %98 = call %"github.com/goplus/llgo/internal/runtime.iface" %97(ptr %96) - %99 = call %reflect.Value @reflect.New(%"github.com/goplus/llgo/internal/runtime.iface" %98) - %100 = call %reflect.Value @reflect.Value.Elem(%reflect.Value %99) - %101 = call ptr @reflect.Value.MapRange(%reflect.Value %10) - br label %_llgo_12 - -_llgo_10: ; preds = %_llgo_12 - call void @reflect.Value.SetIterKey(%reflect.Value %88, ptr %101) - call void @reflect.Value.SetIterValue(%reflect.Value %100, ptr %101) - %102 = call i64 @reflect.Value.Int(%reflect.Value %88) - %103 = call %reflect.Value @"reflect.(*MapIter).Key"(ptr %101) - %104 = call i64 @reflect.Value.Int(%reflect.Value %103) - %105 = icmp ne i64 %102, %104 - br i1 %105, label %_llgo_13, label %_llgo_14 - -_llgo_11: ; preds = %_llgo_12 - ret void - -_llgo_12: ; preds = %_llgo_14, %_llgo_9 - %106 = call i1 @"reflect.(*MapIter).Next"(ptr %101) - br i1 %106, label %_llgo_10, label %_llgo_11 - -_llgo_13: ; preds = %_llgo_14, %_llgo_10 - %107 = load ptr, ptr @_llgo_string, align 8 - %108 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @25, i64 13 }, ptr %108, align 8 - %109 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %107, 0 - %110 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %109, ptr %108, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %110) - unreachable - -_llgo_14: ; preds = %_llgo_10 - %111 = call %"github.com/goplus/llgo/internal/runtime.String" @reflect.Value.String(%reflect.Value %100) - %112 = call %reflect.Value @"reflect.(*MapIter).Value"(ptr %101) - %113 = call %"github.com/goplus/llgo/internal/runtime.String" @reflect.Value.String(%reflect.Value %112) - %114 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" %111, %"github.com/goplus/llgo/internal/runtime.String" %113) - %115 = xor i1 %114, true - br i1 %115, label %_llgo_13, label %_llgo_12 -} - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/internal/runtime.eface") - -define void @"main.init$after"() { -_llgo_0: - %0 = load ptr, ptr @_llgo_int, align 8 - %1 = icmp eq ptr %0, null - br i1 %1, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %2, ptr @_llgo_int, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @_llgo_int, align 8 - %4 = load ptr, ptr @_llgo_int, align 8 - %5 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 - %6 = icmp eq ptr %5, null - br i1 %6, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %8 = getelementptr ptr, ptr %7, i64 0 - store ptr %3, ptr %8, align 8 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %7, 0 - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, i64 1, 1 - %11 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %10, i64 1, 2 - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %13 = getelementptr ptr, ptr %12, i64 0 - store ptr %4, ptr %13, align 8 - %14 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %12, 0 - %15 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %14, i64 1, 1 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %15, i64 1, 2 - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %11, %"github.com/goplus/llgo/internal/runtime.Slice" %16, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %17) - store ptr %17, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %18 = load ptr, ptr @_llgo_Pointer, align 8 - %19 = icmp eq ptr %18, null - br i1 %19, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %20 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %20) - store ptr %20, ptr @_llgo_Pointer, align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %21 = load ptr, ptr @_llgo_int, align 8 - %22 = load ptr, ptr @_llgo_int, align 8 - %23 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %24 = getelementptr ptr, ptr %23, i64 0 - store ptr %21, ptr %24, align 8 - %25 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %23, 0 - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %25, i64 1, 1 - %27 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %26, i64 1, 2 - %28 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %29 = getelementptr ptr, ptr %28, i64 0 - store ptr %22, ptr %29, align 8 - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %28, 0 - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %30, i64 1, 1 - %32 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %31, i64 1, 2 - %33 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %27, %"github.com/goplus/llgo/internal/runtime.Slice" %32, i1 false) - %34 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 2 }, ptr %33, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %36 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 5 }, ptr %35, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %37 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %38 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %37, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %34, ptr %38, align 8 - %39 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %37, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %36, ptr %39, align 8 - %40 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %37, 0 - %41 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %40, i64 2, 1 - %42 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %41, i64 2, 2 - %43 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %42) - store ptr %43, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 - %44 = load ptr, ptr @_llgo_string, align 8 - %45 = icmp eq ptr %44, null - br i1 %45, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - %46 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %46, ptr @_llgo_string, align 8 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - %47 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 1 }, i64 25, i64 8, i64 0, i64 1) - %48 = load ptr, ptr @_llgo_main.T, align 8 - %49 = icmp eq ptr %48, null - br i1 %49, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - store ptr %47, ptr @_llgo_main.T, align 8 - br label %_llgo_10 - -_llgo_10: ; preds = %_llgo_9, %_llgo_8 - %50 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %51 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @10, i64 1 }, ptr %50, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %52 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %53 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %52, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %51, ptr %53, align 8 - %54 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %52, 0 - %55 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %54, i64 1, 1 - %56 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %55, i64 1, 2 - %57 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %56) - store ptr %57, ptr @"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U", align 8 - %58 = load ptr, ptr @"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U", align 8 - br i1 %49, label %_llgo_11, label %_llgo_12 - -_llgo_11: ; preds = %_llgo_10 - %59 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 - %60 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %59, 1 - %61 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %60, ptr @"main.(*T).Add", 2 - %62 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %61, ptr @"main.(*T).Add", 3 - %63 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %64 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %63, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %62, ptr %64, align 8 - %65 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %63, 0 - %66 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %65, i64 1, 1 - %67 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %66, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %47, ptr %58, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %67) - br label %_llgo_12 - -_llgo_12: ; preds = %_llgo_11, %_llgo_10 - %68 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 1 }, i64 25, i64 8, i64 0, i64 1) - %69 = load ptr, ptr @"*_llgo_main.T", align 8 - %70 = icmp eq ptr %69, null - br i1 %70, label %_llgo_13, label %_llgo_14 - -_llgo_13: ; preds = %_llgo_12 - %71 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %68) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %71) - store ptr %71, ptr @"*_llgo_main.T", align 8 - br label %_llgo_14 - -_llgo_14: ; preds = %_llgo_13, %_llgo_12 - %72 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 - %73 = load ptr, ptr @"_llgo_iface$VdBKYV8-gcMjZtZfcf-u2oKoj9Lu3VXwuG8TGCW2S4A", align 8 - %74 = icmp eq ptr %73, null - br i1 %74, label %_llgo_15, label %_llgo_16 - -_llgo_15: ; preds = %_llgo_14 - %75 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 3 }, ptr undef }, ptr %72, 1 - %76 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %77 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %76, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %75, ptr %77, align 8 - %78 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %76, 0 - %79 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %78, i64 1, 1 - %80 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %79, i64 1, 2 - %81 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %80) - store ptr %81, ptr @"_llgo_iface$VdBKYV8-gcMjZtZfcf-u2oKoj9Lu3VXwuG8TGCW2S4A", align 8 - br label %_llgo_16 - -_llgo_16: ; preds = %_llgo_15, %_llgo_14 - %82 = load ptr, ptr @_llgo_any, align 8 - %83 = icmp eq ptr %82, null - br i1 %83, label %_llgo_17, label %_llgo_18 - -_llgo_17: ; preds = %_llgo_16 - %84 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %85 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %84, 0 - %86 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %85, i64 0, 1 - %87 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %86, i64 0, 2 - %88 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %87) - store ptr %88, ptr @_llgo_any, align 8 - br label %_llgo_18 - -_llgo_18: ; preds = %_llgo_17, %_llgo_16 - %89 = load ptr, ptr @"[]_llgo_any", align 8 - %90 = icmp eq ptr %89, null - br i1 %90, label %_llgo_19, label %_llgo_20 - -_llgo_19: ; preds = %_llgo_18 - %91 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %92 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %91, 0 - %93 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %92, i64 0, 1 - %94 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %93, i64 0, 2 - %95 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %94) - %96 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %95) - store ptr %96, ptr @"[]_llgo_any", align 8 - br label %_llgo_20 - -_llgo_20: ; preds = %_llgo_19, %_llgo_18 - %97 = load ptr, ptr @_llgo_int, align 8 - %98 = load ptr, ptr @_llgo_int, align 8 - %99 = load ptr, ptr @_llgo_int, align 8 - %100 = load ptr, ptr @_llgo_int, align 8 - %101 = load ptr, ptr @_llgo_int, align 8 - %102 = load ptr, ptr @_llgo_int, align 8 - %103 = load ptr, ptr @_llgo_int, align 8 - %104 = load ptr, ptr @_llgo_int, align 8 - %105 = load ptr, ptr @_llgo_int, align 8 - %106 = load ptr, ptr @"[]_llgo_any", align 8 - %107 = load ptr, ptr @_llgo_int, align 8 - %108 = load ptr, ptr @_llgo_int, align 8 - %109 = load ptr, ptr @"_llgo_func$KK0iU4Wpi3BdRqssvycXqtgNe2Dq1riBlM61Rds1QsU", align 8 - %110 = icmp eq ptr %109, null - br i1 %110, label %_llgo_21, label %_llgo_22 - -_llgo_21: ; preds = %_llgo_20 - %111 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %112 = getelementptr ptr, ptr %111, i64 0 - store ptr %97, ptr %112, align 8 - %113 = getelementptr ptr, ptr %111, i64 1 - store ptr %98, ptr %113, align 8 - %114 = getelementptr ptr, ptr %111, i64 2 - store ptr %99, ptr %114, align 8 - %115 = getelementptr ptr, ptr %111, i64 3 - store ptr %100, ptr %115, align 8 - %116 = getelementptr ptr, ptr %111, i64 4 - store ptr %101, ptr %116, align 8 - %117 = getelementptr ptr, ptr %111, i64 5 - store ptr %102, ptr %117, align 8 - %118 = getelementptr ptr, ptr %111, i64 6 - store ptr %103, ptr %118, align 8 - %119 = getelementptr ptr, ptr %111, i64 7 - store ptr %104, ptr %119, align 8 - %120 = getelementptr ptr, ptr %111, i64 8 - store ptr %105, ptr %120, align 8 - %121 = getelementptr ptr, ptr %111, i64 9 - store ptr %106, ptr %121, align 8 - %122 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %111, 0 - %123 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %122, i64 10, 1 - %124 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %123, i64 10, 2 - %125 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %126 = getelementptr ptr, ptr %125, i64 0 - store ptr %107, ptr %126, align 8 - %127 = getelementptr ptr, ptr %125, i64 1 - store ptr %108, ptr %127, align 8 - %128 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %125, 0 - %129 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %128, i64 2, 1 - %130 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %129, i64 2, 2 - %131 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %124, %"github.com/goplus/llgo/internal/runtime.Slice" %130, i1 true) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %131) - store ptr %131, ptr @"_llgo_func$KK0iU4Wpi3BdRqssvycXqtgNe2Dq1riBlM61Rds1QsU", align 8 - br label %_llgo_22 - -_llgo_22: ; preds = %_llgo_21, %_llgo_20 - %132 = load ptr, ptr @_llgo_int, align 8 - %133 = load ptr, ptr @_llgo_int, align 8 - %134 = load ptr, ptr @_llgo_int, align 8 - %135 = load ptr, ptr @_llgo_int, align 8 - %136 = load ptr, ptr @_llgo_int, align 8 - %137 = load ptr, ptr @_llgo_int, align 8 - %138 = load ptr, ptr @_llgo_int, align 8 - %139 = load ptr, ptr @_llgo_int, align 8 - %140 = load ptr, ptr @_llgo_int, align 8 - %141 = load ptr, ptr @"[]_llgo_any", align 8 - %142 = load ptr, ptr @_llgo_int, align 8 - %143 = load ptr, ptr @_llgo_int, align 8 - %144 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %145 = getelementptr ptr, ptr %144, i64 0 - store ptr %132, ptr %145, align 8 - %146 = getelementptr ptr, ptr %144, i64 1 - store ptr %133, ptr %146, align 8 - %147 = getelementptr ptr, ptr %144, i64 2 - store ptr %134, ptr %147, align 8 - %148 = getelementptr ptr, ptr %144, i64 3 - store ptr %135, ptr %148, align 8 - %149 = getelementptr ptr, ptr %144, i64 4 - store ptr %136, ptr %149, align 8 - %150 = getelementptr ptr, ptr %144, i64 5 - store ptr %137, ptr %150, align 8 - %151 = getelementptr ptr, ptr %144, i64 6 - store ptr %138, ptr %151, align 8 - %152 = getelementptr ptr, ptr %144, i64 7 - store ptr %139, ptr %152, align 8 - %153 = getelementptr ptr, ptr %144, i64 8 - store ptr %140, ptr %153, align 8 - %154 = getelementptr ptr, ptr %144, i64 9 - store ptr %141, ptr %154, align 8 - %155 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %144, 0 - %156 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %155, i64 10, 1 - %157 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %156, i64 10, 2 - %158 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %159 = getelementptr ptr, ptr %158, i64 0 - store ptr %142, ptr %159, align 8 - %160 = getelementptr ptr, ptr %158, i64 1 - store ptr %143, ptr %160, align 8 - %161 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %158, 0 - %162 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %161, i64 2, 1 - %163 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %162, i64 2, 2 - %164 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %157, %"github.com/goplus/llgo/internal/runtime.Slice" %163, i1 true) - %165 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 2 }, ptr %164, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %166 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %167 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 5 }, ptr %166, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %168 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %169 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %168, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %165, ptr %169, align 8 - %170 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %168, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %167, ptr %170, align 8 - %171 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %168, 0 - %172 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %171, i64 2, 1 - %173 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %172, i64 2, 2 - %174 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %173) - store ptr %174, ptr @"main.struct$FjMjjQr3-2iTiWyZP1IIQFOz0hUCa0OS6pEm5uVV6Pk", align 8 - %175 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %176 = icmp eq ptr %175, null - br i1 %176, label %_llgo_23, label %_llgo_24 - -_llgo_23: ; preds = %_llgo_22 - %177 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %178 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %179 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %180 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %179) - %181 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @16, i64 7 }, ptr %180, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %182 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %183 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %182) - %184 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @17, i64 4 }, ptr %183, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %185 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %186 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %185) - %187 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @18, i64 5 }, ptr %186, i64 72, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %188 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %189 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @19, i64 8 }, ptr %188, i64 200, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %190 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %191 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %190, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %181, ptr %191, align 8 - %192 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %190, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %184, ptr %192, align 8 - %193 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %190, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %187, ptr %193, align 8 - %194 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %190, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %189, ptr %194, align 8 - %195 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %190, 0 - %196 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %195, i64 4, 1 - %197 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %196, i64 4, 2 - %198 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 208, %"github.com/goplus/llgo/internal/runtime.Slice" %197) - %199 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %177, ptr %178, ptr %198, i64 4) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %199) - store ptr %199, ptr @"map[_llgo_int]_llgo_string", align 8 - br label %_llgo_24 - -_llgo_24: ; preds = %_llgo_23, %_llgo_22 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare i64 @reflect.Value.Kind(%reflect.Value) - -declare %"github.com/goplus/llgo/internal/runtime.iface" @reflect.Value.Type(%reflect.Value) - -declare ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @reflect.Value.Call(%reflect.Value, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) - -declare i64 @reflect.Value.Int(%reflect.Value) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) - -declare %"github.com/goplus/llgo/internal/runtime.eface" @reflect.Value.Interface(%reflect.Value) - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") - -define linkonce i64 @"__llgo_stub.main.callFunc$1"(ptr %0, i64 %1) { -_llgo_0: - %2 = tail call i64 @"main.callFunc$1"(i64 %1) - ret i64 %2 -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare %reflect.Value @reflect.Value.Method(%reflect.Value, i64) - -define linkonce { i64, i64 } @__llgo_stub.main.demo(ptr %0, i64 %1, i64 %2, i64 %3, i64 %4, i64 %5, i64 %6, i64 %7, i64 %8, i64 %9, %"github.com/goplus/llgo/internal/runtime.Slice" %10) { -_llgo_0: - %11 = tail call { i64, i64 } @main.demo(i64 %1, i64 %2, i64 %3, i64 %4, i64 %5, i64 %6, i64 %7, i64 %8, i64 %9, %"github.com/goplus/llgo/internal/runtime.Slice" %10) - ret { i64, i64 } %11 -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @reflect.Value.CallSlice(%reflect.Value, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare void @reflect.init() - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr, ptr, ptr, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr, ptr, ptr) - -declare i64 @reflect.Value.Len(%reflect.Value) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @reflect.Value.MapKeys(%reflect.Value) - -declare %reflect.Value @reflect.Value.MapIndex(%reflect.Value, %reflect.Value) - -declare %"github.com/goplus/llgo/internal/runtime.String" @reflect.Value.String(%reflect.Value) - -declare i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String") - -declare void @reflect.Value.SetMapIndex(%reflect.Value, %reflect.Value, %reflect.Value) - -declare i1 @reflect.Value.IsValid(%reflect.Value) - -declare %reflect.Value @reflect.New(%"github.com/goplus/llgo/internal/runtime.iface") - -declare %reflect.Value @reflect.Value.Elem(%reflect.Value) - -declare ptr @reflect.Value.MapRange(%reflect.Value) - -declare i1 @"reflect.(*MapIter).Next"(ptr) - -declare void @reflect.Value.SetIterKey(%reflect.Value, ptr) - -declare void @reflect.Value.SetIterValue(%reflect.Value, ptr) - -declare %reflect.Value @"reflect.(*MapIter).Key"(ptr) - -declare %reflect.Value @"reflect.(*MapIter).Value"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.iface" @reflect.TypeOf(%"github.com/goplus/llgo/internal/runtime.eface") - -declare %"github.com/goplus/llgo/internal/runtime.iface" @reflect.MapOf(%"github.com/goplus/llgo/internal/runtime.iface", %"github.com/goplus/llgo/internal/runtime.iface") - -declare %reflect.Value @reflect.MakeMap(%"github.com/goplus/llgo/internal/runtime.iface") diff --git a/cl/_testgo/selects/out.ll b/cl/_testgo/selects/out.ll deleted file mode 100644 index 6196d5c7..00000000 --- a/cl/_testgo/selects/out.ll +++ /dev/null @@ -1,266 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.ChanOp" = type { ptr, ptr, i32, i1 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [4 x i8] c"c1<-", align 1 -@1 = private unnamed_addr constant [4 x i8] c"<-c2", align 1 -@2 = private unnamed_addr constant [4 x i8] c"<-c4", align 1 -@3 = private unnamed_addr constant [31 x i8] c"blocking select matched no case", align 1 -@_llgo_string = linkonce global ptr null, align 8 -@4 = private unnamed_addr constant [4 x i8] c"<-c1", align 1 -@5 = private unnamed_addr constant [4 x i8] c"c2<-", align 1 -@6 = private unnamed_addr constant [4 x i8] c"<-c3", align 1 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.NewChan"(i64 0, i64 1) - store ptr %3, ptr %2, align 8 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.NewChan"(i64 0, i64 1) - store ptr %5, ptr %4, align 8 - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.NewChan"(i64 0, i64 1) - store ptr %7, ptr %6, align 8 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.NewChan"(i64 0, i64 1) - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %10 = getelementptr inbounds { ptr, ptr, ptr }, ptr %9, i32 0, i32 0 - store ptr %2, ptr %10, align 8 - %11 = getelementptr inbounds { ptr, ptr, ptr }, ptr %9, i32 0, i32 1 - store ptr %4, ptr %11, align 8 - %12 = getelementptr inbounds { ptr, ptr, ptr }, ptr %9, i32 0, i32 2 - store ptr %6, ptr %12, align 8 - %13 = insertvalue { ptr, ptr } { ptr @"main.main$1", ptr undef }, ptr %9, 1 - %14 = call ptr @malloc(i64 16) - %15 = getelementptr inbounds { { ptr, ptr } }, ptr %14, i32 0, i32 0 - store { ptr, ptr } %13, ptr %15, align 8 - %16 = alloca i8, i64 8, align 1 - %17 = call i32 @"github.com/goplus/llgo/internal/runtime.CreateThread"(ptr %16, ptr null, ptr @"main._llgo_routine$1", ptr %14) - %18 = load ptr, ptr %2, align 8 - %19 = alloca {}, align 8 - call void @llvm.memset(ptr %19, i8 0, i64 0, i1 false) - store {} zeroinitializer, ptr %19, align 1 - %20 = call i1 @"github.com/goplus/llgo/internal/runtime.ChanSend"(ptr %18, ptr %19, i64 0) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %21 = load ptr, ptr %4, align 8 - %22 = alloca {}, align 8 - call void @llvm.memset(ptr %22, i8 0, i64 0, i1 false) - %23 = insertvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" undef, ptr %21, 0 - %24 = insertvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" %23, ptr %22, 1 - %25 = insertvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" %24, i32 0, 2 - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" %25, i1 false, 3 - %27 = alloca {}, align 8 - call void @llvm.memset(ptr %27, i8 0, i64 0, i1 false) - %28 = insertvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" undef, ptr %8, 0 - %29 = insertvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" %28, ptr %27, 1 - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" %29, i32 0, 2 - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" %30, i1 false, 3 - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %33 = getelementptr %"github.com/goplus/llgo/internal/runtime.ChanOp", ptr %32, i64 0 - store %"github.com/goplus/llgo/internal/runtime.ChanOp" %26, ptr %33, align 8 - %34 = getelementptr %"github.com/goplus/llgo/internal/runtime.ChanOp", ptr %32, i64 1 - store %"github.com/goplus/llgo/internal/runtime.ChanOp" %31, ptr %34, align 8 - %35 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %32, 0 - %36 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %35, i64 2, 1 - %37 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %36, i64 2, 2 - %38 = call { i64, i1 } @"github.com/goplus/llgo/internal/runtime.Select"(%"github.com/goplus/llgo/internal/runtime.Slice" %37) - %39 = extractvalue { i64, i1 } %38, 0 - %40 = extractvalue { i64, i1 } %38, 1 - %41 = extractvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" %26, 1 - %42 = load {}, ptr %41, align 1 - %43 = extractvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" %31, 1 - %44 = load {}, ptr %43, align 1 - %45 = insertvalue { i64, i1, {}, {} } undef, i64 %39, 0 - %46 = insertvalue { i64, i1, {}, {} } %45, i1 %40, 1 - %47 = insertvalue { i64, i1, {}, {} } %46, {} %42, 2 - %48 = insertvalue { i64, i1, {}, {} } %47, {} %44, 3 - %49 = extractvalue { i64, i1, {}, {} } %48, 0 - %50 = icmp eq i64 %49, 0 - br i1 %50, label %_llgo_2, label %_llgo_3 - -_llgo_1: ; preds = %_llgo_4, %_llgo_2 - ret i32 0 - -_llgo_2: ; preds = %_llgo_0 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - br label %_llgo_1 - -_llgo_3: ; preds = %_llgo_0 - %51 = icmp eq i64 %49, 1 - br i1 %51, label %_llgo_4, label %_llgo_5 - -_llgo_4: ; preds = %_llgo_3 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - br label %_llgo_1 - -_llgo_5: ; preds = %_llgo_3 - %52 = load ptr, ptr @_llgo_string, align 8 - %53 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 31 }, ptr %53, align 8 - %54 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %52, 0 - %55 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %54, ptr %53, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %55) - unreachable -} - -define void @"main.main$1"(ptr %0) { -_llgo_0: - %1 = load { ptr, ptr, ptr }, ptr %0, align 8 - %2 = extractvalue { ptr, ptr, ptr } %1, 0 - %3 = load ptr, ptr %2, align 8 - %4 = alloca {}, align 8 - call void @llvm.memset(ptr %4, i8 0, i64 0, i1 false) - %5 = call i1 @"github.com/goplus/llgo/internal/runtime.ChanRecv"(ptr %3, ptr %4, i64 0) - %6 = load {}, ptr %4, align 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %7 = extractvalue { ptr, ptr, ptr } %1, 1 - %8 = load ptr, ptr %7, align 8 - %9 = extractvalue { ptr, ptr, ptr } %1, 2 - %10 = load ptr, ptr %9, align 8 - %11 = alloca {}, align 8 - call void @llvm.memset(ptr %11, i8 0, i64 0, i1 false) - store {} zeroinitializer, ptr %11, align 1 - %12 = insertvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" undef, ptr %8, 0 - %13 = insertvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" %12, ptr %11, 1 - %14 = insertvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" %13, i32 0, 2 - %15 = insertvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" %14, i1 true, 3 - %16 = alloca {}, align 8 - call void @llvm.memset(ptr %16, i8 0, i64 0, i1 false) - %17 = insertvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" undef, ptr %10, 0 - %18 = insertvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" %17, ptr %16, 1 - %19 = insertvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" %18, i32 0, 2 - %20 = insertvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" %19, i1 false, 3 - %21 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - %22 = getelementptr %"github.com/goplus/llgo/internal/runtime.ChanOp", ptr %21, i64 0 - store %"github.com/goplus/llgo/internal/runtime.ChanOp" %15, ptr %22, align 8 - %23 = getelementptr %"github.com/goplus/llgo/internal/runtime.ChanOp", ptr %21, i64 1 - store %"github.com/goplus/llgo/internal/runtime.ChanOp" %20, ptr %23, align 8 - %24 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %21, 0 - %25 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %24, i64 2, 1 - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %25, i64 2, 2 - %27 = call { i64, i1 } @"github.com/goplus/llgo/internal/runtime.Select"(%"github.com/goplus/llgo/internal/runtime.Slice" %26) - %28 = extractvalue { i64, i1 } %27, 0 - %29 = extractvalue { i64, i1 } %27, 1 - %30 = extractvalue %"github.com/goplus/llgo/internal/runtime.ChanOp" %20, 1 - %31 = load {}, ptr %30, align 1 - %32 = insertvalue { i64, i1, {} } undef, i64 %28, 0 - %33 = insertvalue { i64, i1, {} } %32, i1 %29, 1 - %34 = insertvalue { i64, i1, {} } %33, {} %31, 2 - %35 = extractvalue { i64, i1, {} } %34, 0 - %36 = icmp eq i64 %35, 0 - br i1 %36, label %_llgo_2, label %_llgo_3 - -_llgo_1: ; preds = %_llgo_4, %_llgo_2 - ret void - -_llgo_2: ; preds = %_llgo_0 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - br label %_llgo_1 - -_llgo_3: ; preds = %_llgo_0 - %37 = icmp eq i64 %35, 1 - br i1 %37, label %_llgo_4, label %_llgo_5 - -_llgo_4: ; preds = %_llgo_3 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - br label %_llgo_1 - -_llgo_5: ; preds = %_llgo_3 - %38 = load ptr, ptr @_llgo_string, align 8 - %39 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 31 }, ptr %39, align 8 - %40 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %38, 0 - %41 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %40, ptr %39, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %41) - unreachable -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewChan"(i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare ptr @malloc(i64) - -define ptr @"main._llgo_routine$1"(ptr %0) { -_llgo_0: - %1 = load { { ptr, ptr } }, ptr %0, align 8 - %2 = extractvalue { { ptr, ptr } } %1, 0 - %3 = extractvalue { ptr, ptr } %2, 1 - %4 = extractvalue { ptr, ptr } %2, 0 - call void %4(ptr %3) - call void @free(ptr %0) - ret ptr null -} - -declare void @free(ptr) - -declare i32 @"github.com/goplus/llgo/internal/runtime.CreateThread"(ptr, ptr, ptr, ptr) - -declare i1 @"github.com/goplus/llgo/internal/runtime.ChanSend"(ptr, ptr, i64) - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare { i64, i1 } @"github.com/goplus/llgo/internal/runtime.Select"(%"github.com/goplus/llgo/internal/runtime.Slice") - -define void @"main.init$after"() { -_llgo_0: - %0 = load ptr, ptr @_llgo_string, align 8 - %1 = icmp eq ptr %0, null - br i1 %1, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %2, ptr @_llgo_string, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") - -declare i1 @"github.com/goplus/llgo/internal/runtime.ChanRecv"(ptr, ptr, i64) - -attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testgo/struczero/out.ll b/cl/_testgo/struczero/out.ll deleted file mode 100644 index ab1c9335..00000000 --- a/cl/_testgo/struczero/out.ll +++ /dev/null @@ -1,325 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/cl/internal/foo.Foo" = type { ptr, float } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%main.bar = type { ptr, float } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } - -@"main.init$guard" = global i1 false, align 1 -@"_llgo_github.com/goplus/llgo/cl/internal/foo.Foo" = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [38 x i8] c"github.com/goplus/llgo/cl/internal/foo", align 1 -@1 = private unnamed_addr constant [3 x i8] c"Foo", align 1 -@_llgo_byte = linkonce global ptr null, align 8 -@"*_llgo_byte" = linkonce global ptr null, align 8 -@_llgo_float32 = linkonce global ptr null, align 8 -@"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs" = linkonce global ptr null, align 8 -@2 = private unnamed_addr constant [2 x i8] c"pb", align 1 -@3 = private unnamed_addr constant [1 x i8] c"F", align 1 -@4 = private unnamed_addr constant [4 x i8] c"main", align 1 -@5 = private unnamed_addr constant [2 x i8] c"Pb", align 1 -@"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE" = linkonce global ptr null, align 8 -@_llgo_main.bar = linkonce global ptr null, align 8 -@6 = private unnamed_addr constant [3 x i8] c"bar", align 1 -@"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo" = linkonce global ptr null, align 8 -@7 = private unnamed_addr constant [1 x i8] c"f", align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@8 = private unnamed_addr constant [6 x i8] c"notOk:", align 1 - -define { %"github.com/goplus/llgo/cl/internal/foo.Foo", i1 } @main.Bar(%"github.com/goplus/llgo/internal/runtime.eface" %0) { -_llgo_0: - %1 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 - %2 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Foo", align 8 - %3 = icmp eq ptr %1, %2 - br i1 %3, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 - %5 = load %"github.com/goplus/llgo/cl/internal/foo.Foo", ptr %4, align 8 - %6 = insertvalue { %"github.com/goplus/llgo/cl/internal/foo.Foo", i1 } undef, %"github.com/goplus/llgo/cl/internal/foo.Foo" %5, 0 - %7 = insertvalue { %"github.com/goplus/llgo/cl/internal/foo.Foo", i1 } %6, i1 true, 1 - br label %_llgo_3 - -_llgo_2: ; preds = %_llgo_0 - br label %_llgo_3 - -_llgo_3: ; preds = %_llgo_2, %_llgo_1 - %8 = phi { %"github.com/goplus/llgo/cl/internal/foo.Foo", i1 } [ %7, %_llgo_1 ], [ zeroinitializer, %_llgo_2 ] - %9 = extractvalue { %"github.com/goplus/llgo/cl/internal/foo.Foo", i1 } %8, 0 - %10 = extractvalue { %"github.com/goplus/llgo/cl/internal/foo.Foo", i1 } %8, 1 - %11 = insertvalue { %"github.com/goplus/llgo/cl/internal/foo.Foo", i1 } undef, %"github.com/goplus/llgo/cl/internal/foo.Foo" %9, 0 - %12 = insertvalue { %"github.com/goplus/llgo/cl/internal/foo.Foo", i1 } %11, i1 %10, 1 - ret { %"github.com/goplus/llgo/cl/internal/foo.Foo", i1 } %12 -} - -define { %main.bar, i1 } @main.Foo(%"github.com/goplus/llgo/internal/runtime.eface" %0) { -_llgo_0: - %1 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 - %2 = load ptr, ptr @_llgo_main.bar, align 8 - %3 = icmp eq ptr %1, %2 - br i1 %3, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 - %5 = load %main.bar, ptr %4, align 8 - %6 = insertvalue { %main.bar, i1 } undef, %main.bar %5, 0 - %7 = insertvalue { %main.bar, i1 } %6, i1 true, 1 - br label %_llgo_3 - -_llgo_2: ; preds = %_llgo_0 - br label %_llgo_3 - -_llgo_3: ; preds = %_llgo_2, %_llgo_1 - %8 = phi { %main.bar, i1 } [ %7, %_llgo_1 ], [ zeroinitializer, %_llgo_2 ] - %9 = extractvalue { %main.bar, i1 } %8, 0 - %10 = extractvalue { %main.bar, i1 } %8, 1 - %11 = insertvalue { %main.bar, i1 } undef, %main.bar %9, 0 - %12 = insertvalue { %main.bar, i1 } %11, i1 %10, 1 - ret { %main.bar, i1 } %12 -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"github.com/goplus/llgo/cl/internal/foo.init"() - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = alloca %main.bar, align 8 - call void @llvm.memset(ptr %2, i8 0, i64 16, i1 false) - %3 = call { %main.bar, i1 } @main.Foo(%"github.com/goplus/llgo/internal/runtime.eface" zeroinitializer) - %4 = extractvalue { %main.bar, i1 } %3, 0 - store %main.bar %4, ptr %2, align 8 - %5 = extractvalue { %main.bar, i1 } %3, 1 - %6 = getelementptr inbounds %main.bar, ptr %2, i32 0, i32 0 - %7 = load ptr, ptr %6, align 8 - %8 = getelementptr inbounds %main.bar, ptr %2, i32 0, i32 1 - %9 = load float, ptr %8, align 4 - %10 = xor i1 %5, true - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %7) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %11 = fpext float %9 to double - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double %11) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 6 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %10) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %12 = alloca %"github.com/goplus/llgo/cl/internal/foo.Foo", align 8 - call void @llvm.memset(ptr %12, i8 0, i64 16, i1 false) - %13 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Foo", align 8 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/cl/internal/foo.Foo" zeroinitializer, ptr %14, align 8 - %15 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %13, 0 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %15, ptr %14, 1 - %17 = call { %"github.com/goplus/llgo/cl/internal/foo.Foo", i1 } @main.Bar(%"github.com/goplus/llgo/internal/runtime.eface" %16) - %18 = extractvalue { %"github.com/goplus/llgo/cl/internal/foo.Foo", i1 } %17, 0 - store %"github.com/goplus/llgo/cl/internal/foo.Foo" %18, ptr %12, align 8 - %19 = extractvalue { %"github.com/goplus/llgo/cl/internal/foo.Foo", i1 } %17, 1 - %20 = load %"github.com/goplus/llgo/cl/internal/foo.Foo", ptr %12, align 8 - %21 = call ptr @"github.com/goplus/llgo/cl/internal/foo.Foo.Pb"(%"github.com/goplus/llgo/cl/internal/foo.Foo" %20) - %22 = getelementptr inbounds %"github.com/goplus/llgo/cl/internal/foo.Foo", ptr %12, i32 0, i32 1 - %23 = load float, ptr %22, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %21) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %24 = fpext float %23 to double - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double %24) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %19) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -define void @"main.init$after"() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 38 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 3 }, i64 25, i64 16, i64 1, i64 1) - %1 = load ptr, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Foo", align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - store ptr %0, ptr @"_llgo_github.com/goplus/llgo/cl/internal/foo.Foo", align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @_llgo_byte, align 8 - %4 = icmp eq ptr %3, null - br i1 %4, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - store ptr %5, ptr @_llgo_byte, align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %6 = load ptr, ptr @_llgo_byte, align 8 - %7 = load ptr, ptr @"*_llgo_byte", align 8 - %8 = icmp eq ptr %7, null - br i1 %8, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %10 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %9) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %10) - store ptr %10, ptr @"*_llgo_byte", align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %11 = load ptr, ptr @"*_llgo_byte", align 8 - %12 = load ptr, ptr @_llgo_float32, align 8 - %13 = icmp eq ptr %12, null - br i1 %13, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45) - store ptr %14, ptr @_llgo_float32, align 8 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - %15 = load ptr, ptr @_llgo_float32, align 8 - %16 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %16) - %18 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 2 }, ptr %17, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %19 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45) - %20 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 1 }, ptr %19, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %21 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %22 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %21, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %18, ptr %22, align 8 - %23 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %21, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %20, ptr %23, align 8 - %24 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %21, 0 - %25 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %24, i64 2, 1 - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %25, i64 2, 2 - %27 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %26) - store ptr %27, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8 - %28 = load ptr, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8 - br i1 %2, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - %29 = load ptr, ptr @"*_llgo_byte", align 8 - %30 = load ptr, ptr @"*_llgo_byte", align 8 - %31 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 - %32 = icmp eq ptr %31, null - br i1 %32, label %_llgo_11, label %_llgo_12 - -_llgo_10: ; preds = %_llgo_12, %_llgo_8 - %33 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 3 }, i64 25, i64 16, i64 0, i64 0) - store ptr %33, ptr @_llgo_main.bar, align 8 - %34 = load ptr, ptr @"*_llgo_byte", align 8 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %36 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %35) - %37 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 2 }, ptr %36, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %38 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45) - %39 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 1 }, ptr %38, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %40 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %41 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %40, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %37, ptr %41, align 8 - %42 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %40, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %39, ptr %42, align 8 - %43 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %40, 0 - %44 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %43, i64 2, 1 - %45 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %44, i64 2, 2 - %46 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %45) - store ptr %46, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8 - %47 = load ptr, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %33, ptr %47, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - ret void - -_llgo_11: ; preds = %_llgo_9 - %48 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %49 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %48, 0 - %50 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %49, i64 0, 1 - %51 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %50, i64 0, 2 - %52 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %53 = getelementptr ptr, ptr %52, i64 0 - store ptr %30, ptr %53, align 8 - %54 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %52, 0 - %55 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %54, i64 1, 1 - %56 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %55, i64 1, 2 - %57 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %51, %"github.com/goplus/llgo/internal/runtime.Slice" %56, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %57) - store ptr %57, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 - br label %_llgo_12 - -_llgo_12: ; preds = %_llgo_11, %_llgo_9 - %58 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 - %59 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 2 }, ptr undef, ptr undef, ptr undef }, ptr %58, 1 - %60 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %59, ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", 2 - %61 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %60, ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", 3 - %62 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 2 }, ptr undef, ptr undef, ptr undef }, ptr %58, 1 - %63 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %62, ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb", 2 - %64 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %63, ptr @"github.com/goplus/llgo/cl/internal/foo.Foo.Pb", 3 - %65 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %66 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %65, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %64, ptr %66, align 8 - %67 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %65, 0 - %68 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %67, i64 1, 1 - %69 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %68, i64 1, 2 - %70 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %71 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %70, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %61, ptr %71, align 8 - %72 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %70, 0 - %73 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %72, i64 1, 1 - %74 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %73, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, ptr %28, %"github.com/goplus/llgo/internal/runtime.Slice" %69, %"github.com/goplus/llgo/internal/runtime.Slice" %74) - br label %_llgo_10 -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) - -declare ptr @"github.com/goplus/llgo/cl/internal/foo.(*Foo).Pb"(ptr) - -declare ptr @"github.com/goplus/llgo/cl/internal/foo.Foo.Pb"(%"github.com/goplus/llgo/cl/internal/foo.Foo") - -declare void @"github.com/goplus/llgo/cl/internal/foo.init"() - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 - -declare void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1) - -attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testgo/tptypes/out.ll b/cl/_testgo/tptypes/out.ll deleted file mode 100644 index 8838ada6..00000000 --- a/cl/_testgo/tptypes/out.ll +++ /dev/null @@ -1,218 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"main.Data[int]" = type { i64 } -%"main.Data[string]" = type { %"github.com/goplus/llgo/internal/runtime.String" } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"main.Slice[[]int,int]" = type { %"github.com/goplus/llgo/internal/runtime.Slice" } -%"main.Slice[[]string,string]" = type { %"github.com/goplus/llgo/internal/runtime.Slice" } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [5 x i8] c"hello", align 1 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = alloca %"main.Data[int]", align 8 - call void @llvm.memset(ptr %2, i8 0, i64 8, i1 false) - %3 = getelementptr inbounds %"main.Data[int]", ptr %2, i32 0, i32 0 - store i64 1, ptr %3, align 4 - %4 = load %"main.Data[int]", ptr %2, align 4 - %5 = extractvalue %"main.Data[int]" %4, 0 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %5) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %6 = alloca %"main.Data[string]", align 8 - call void @llvm.memset(ptr %6, i8 0, i64 16, i1 false) - %7 = getelementptr inbounds %"main.Data[string]", ptr %6, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %7, align 8 - %8 = load %"main.Data[string]", ptr %6, align 8 - %9 = extractvalue %"main.Data[string]" %8, 0 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %9) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %10 = alloca %"main.Data[int]", align 8 - call void @llvm.memset(ptr %10, i8 0, i64 8, i1 false) - %11 = getelementptr inbounds %"main.Data[int]", ptr %10, i32 0, i32 0 - store i64 100, ptr %11, align 4 - %12 = load %"main.Data[int]", ptr %10, align 4 - %13 = extractvalue %"main.Data[int]" %12, 0 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %13) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %14 = alloca %"main.Data[string]", align 8 - call void @llvm.memset(ptr %14, i8 0, i64 16, i1 false) - %15 = getelementptr inbounds %"main.Data[string]", ptr %14, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %15, align 8 - %16 = load %"main.Data[string]", ptr %14, align 8 - %17 = extractvalue %"main.Data[string]" %16, 0 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %17) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 0) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %18 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) - %19 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %20 = getelementptr inbounds i64, ptr %19, i64 0 - store i64 100, ptr %20, align 4 - %21 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %19, 0 - %22 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %21, i64 1, 1 - %23 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %22, i64 1, 2 - %24 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"main.(*Slice[[]int,int]).Append"(ptr %18, %"github.com/goplus/llgo/internal/runtime.Slice" %23) - %25 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) - %26 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - %27 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %26, i64 0 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %27, align 8 - %28 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %26, 0 - %29 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %28, i64 1, 1 - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %29, i64 1, 2 - %31 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"main.(*Slice[[]string,string]).Append"(ptr %25, %"github.com/goplus/llgo/internal/runtime.Slice" %30) - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) - %33 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 32) - %34 = getelementptr inbounds i64, ptr %33, i64 0 - store i64 1, ptr %34, align 4 - %35 = getelementptr inbounds i64, ptr %33, i64 1 - store i64 2, ptr %35, align 4 - %36 = getelementptr inbounds i64, ptr %33, i64 2 - store i64 3, ptr %36, align 4 - %37 = getelementptr inbounds i64, ptr %33, i64 3 - store i64 4, ptr %37, align 4 - %38 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %33, 0 - %39 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %38, i64 4, 1 - %40 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %39, i64 4, 2 - %41 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"main.(*Slice[[]int,int]).Append"(ptr %32, %"github.com/goplus/llgo/internal/runtime.Slice" %40) - %42 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 32) - %43 = getelementptr inbounds i64, ptr %42, i64 0 - store i64 1, ptr %43, align 4 - %44 = getelementptr inbounds i64, ptr %42, i64 1 - store i64 2, ptr %44, align 4 - %45 = getelementptr inbounds i64, ptr %42, i64 2 - store i64 3, ptr %45, align 4 - %46 = getelementptr inbounds i64, ptr %42, i64 3 - store i64 4, ptr %46, align 4 - %47 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %42, 0 - %48 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %47, i64 4, 1 - %49 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %48, i64 4, 2 - %50 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"main.(*Slice[[]int,int]).Append2"(ptr %32, %"github.com/goplus/llgo/internal/runtime.Slice" %49) - %51 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %18, i32 0, i32 0 - %52 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %51, align 8 - %53 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %18, i32 0, i32 0 - %54 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %53, align 8 - %55 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %54, 0 - %56 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %54, 1 - %57 = icmp sge i64 0, %56 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %57) - %58 = getelementptr inbounds i64, ptr %55, i64 0 - %59 = load i64, ptr %58, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/internal/runtime.Slice" %52) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %59) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %60 = getelementptr inbounds %"main.Slice[[]string,string]", ptr %25, i32 0, i32 0 - %61 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %60, align 8 - %62 = getelementptr inbounds %"main.Slice[[]string,string]", ptr %25, i32 0, i32 0 - %63 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %62, align 8 - %64 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %63, 0 - %65 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %63, 1 - %66 = icmp sge i64 0, %65 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %66) - %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %64, i64 0 - %68 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %67, align 8 - call void @"github.com/goplus/llgo/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/internal/runtime.Slice" %61) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %68) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %69 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %32, i32 0, i32 0 - %70 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %69, align 8 - %71 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %32, i32 0, i32 0 - %72 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %71, align 8 - %73 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %72, 0 - %74 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %72, 1 - %75 = icmp sge i64 0, %74 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %75) - %76 = getelementptr inbounds i64, ptr %73, i64 0 - %77 = load i64, ptr %76, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/internal/runtime.Slice" %70) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %77) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 - -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -define linkonce %"github.com/goplus/llgo/internal/runtime.Slice" @"main.(*Slice[[]int,int]).Append"(ptr %0, %"github.com/goplus/llgo/internal/runtime.Slice" %1) { -_llgo_0: - %2 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %0, i32 0, i32 0 - %3 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2, align 8 - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1, 0 - %5 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1, 1 - %6 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/internal/runtime.Slice" %3, ptr %4, i64 %5, i64 8) - %7 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %0, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.Slice" %6, ptr %7, align 8 - %8 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %0, i32 0, i32 0 - %9 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %8, align 8 - ret %"github.com/goplus/llgo/internal/runtime.Slice" %9 -} - -define linkonce %"github.com/goplus/llgo/internal/runtime.Slice" @"main.(*Slice[[]string,string]).Append"(ptr %0, %"github.com/goplus/llgo/internal/runtime.Slice" %1) { -_llgo_0: - %2 = getelementptr inbounds %"main.Slice[[]string,string]", ptr %0, i32 0, i32 0 - %3 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2, align 8 - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1, 0 - %5 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1, 1 - %6 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/internal/runtime.Slice" %3, ptr %4, i64 %5, i64 16) - %7 = getelementptr inbounds %"main.Slice[[]string,string]", ptr %0, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.Slice" %6, ptr %7, align 8 - %8 = getelementptr inbounds %"main.Slice[[]string,string]", ptr %0, i32 0, i32 0 - %9 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %8, align 8 - ret %"github.com/goplus/llgo/internal/runtime.Slice" %9 -} - -define linkonce %"github.com/goplus/llgo/internal/runtime.Slice" @"main.(*Slice[[]int,int]).Append2"(ptr %0, %"github.com/goplus/llgo/internal/runtime.Slice" %1) { -_llgo_0: - %2 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %0, i32 0, i32 0 - %3 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2, align 8 - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1, 0 - %5 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1, 1 - %6 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/internal/runtime.Slice" %3, ptr %4, i64 %5, i64 8) - %7 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %0, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.Slice" %6, ptr %7, align 8 - %8 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %0, i32 0, i32 0 - %9 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %8, align 8 - ret %"github.com/goplus/llgo/internal/runtime.Slice" %9 -} - -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/internal/runtime.Slice", ptr, i64, i64) - -attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testlibc/allocacstrs/out.ll b/cl/_testlibc/allocacstrs/out.ll deleted file mode 100644 index ecbd40d4..00000000 --- a/cl/_testlibc/allocacstrs/out.ll +++ /dev/null @@ -1,101 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [1 x i8] c"a", align 1 -@1 = private unnamed_addr constant [1 x i8] c"b", align 1 -@2 = private unnamed_addr constant [1 x i8] c"c", align 1 -@3 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 48) - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2, i64 0 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 1 }, ptr %3, align 8 - %4 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2, i64 1 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 1 }, ptr %4, align 8 - %5 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2, i64 2 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 1 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %2, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %6, i64 3, 1 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %7, i64 3, 2 - %9 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %8, 1 - %10 = add i64 %9, 1 - %11 = alloca ptr, i64 %10, align 8 - br label %_llgo_4 - -_llgo_1: ; preds = %_llgo_3, %_llgo_6 - %12 = phi i64 [ 0, %_llgo_6 ], [ %17, %_llgo_3 ] - %13 = getelementptr ptr, ptr %11, i64 %12 - %14 = load ptr, ptr %13, align 8 - %15 = icmp eq ptr %14, null - br i1 %15, label %_llgo_2, label %_llgo_3 - -_llgo_2: ; preds = %_llgo_1 - ret i32 0 - -_llgo_3: ; preds = %_llgo_1 - %16 = call i32 (ptr, ...) @printf(ptr @3, ptr %14) - %17 = add i64 %12, 1 - br label %_llgo_1 - -_llgo_4: ; preds = %_llgo_5, %_llgo_0 - %18 = phi i64 [ 0, %_llgo_0 ], [ %32, %_llgo_5 ] - %19 = icmp slt i64 %18, %9 - br i1 %19, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %20 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %8, 0 - %21 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %8, 1 - %22 = icmp slt i64 %18, 0 - %23 = icmp sge i64 %18, %21 - %24 = or i1 %23, %22 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %24) - %25 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %20, i64 %18 - %26 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %25, align 8 - %27 = getelementptr ptr, ptr %11, i64 %18 - %28 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %26, 1 - %29 = add i64 %28, 1 - %30 = alloca i8, i64 %29, align 1 - %31 = call ptr @"github.com/goplus/llgo/internal/runtime.CStrCopy"(ptr %30, %"github.com/goplus/llgo/internal/runtime.String" %26) - store ptr %31, ptr %27, align 8 - %32 = add i64 %18, 1 - br label %_llgo_4 - -_llgo_6: ; preds = %_llgo_4 - %33 = getelementptr ptr, ptr %11, i64 %9 - store ptr null, ptr %33, align 8 - br label %_llgo_1 -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.CStrCopy"(ptr, %"github.com/goplus/llgo/internal/runtime.String") - -declare i32 @printf(ptr, ...) diff --git a/cl/_testlibc/complex/out.ll b/cl/_testlibc/complex/out.ll deleted file mode 100644 index f0265aff..00000000 --- a/cl/_testlibc/complex/out.ll +++ /dev/null @@ -1,74 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } - -@"main.init$guard" = global i1 false, align 1 -@0 = private unnamed_addr constant [5 x i8] c"addr:", align 1 -@1 = private unnamed_addr constant [10 x i8] c"abs(3+4i):", align 1 -@2 = private unnamed_addr constant [11 x i8] c"real(3+4i):", align 1 -@3 = private unnamed_addr constant [11 x i8] c"imag(3+4i):", align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 - -define void @main.f({ float, float } %0, { float, float } %1, ptr %2) { -_llgo_0: - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %2) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %3 = call float @cabsf({ float, float } %0) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 10 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %4 = fpext float %3 to double - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double %4) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %5 = extractvalue { float, float } %1, 0 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 11 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %6 = fpext float %5 to double - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double %6) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %7 = extractvalue { float, float } %1, 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 11 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %8 = fpext float %7 to double - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double %8) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - call void @main.f({ float, float } { float 3.000000e+00, float 4.000000e+00 }, { float, float } { float 3.000000e+00, float 4.000000e+00 }, ptr @main.f) - ret i32 0 -} - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr) - -declare float @cabsf({ float, float }) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double) - -declare void @"github.com/goplus/llgo/internal/runtime.init"() diff --git a/cl/_testlibgo/atomic/out.ll b/cl/_testlibgo/atomic/out.ll deleted file mode 100644 index 765b0452..00000000 --- a/cl/_testlibgo/atomic/out.ll +++ /dev/null @@ -1,100 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [6 x i8] c"store:", align 1 -@1 = private unnamed_addr constant [4 x i8] c"ret:", align 1 -@2 = private unnamed_addr constant [2 x i8] c"v:", align 1 -@3 = private unnamed_addr constant [4 x i8] c"swp:", align 1 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"sync/atomic.init"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - store atomic i64 100, ptr %2 seq_cst, align 4 - %3 = load atomic i64, ptr %2 seq_cst, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 6 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %4 = call i64 @"sync/atomic.AddInt64"(ptr %2, i64 1) - %5 = load i64, ptr %2, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %4) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 2 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %5) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %6 = call i1 @"sync/atomic.CompareAndSwapInt64"(ptr %2, i64 100, i64 102) - %7 = load i64, ptr %2, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %6) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 2 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %7) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %8 = call i1 @"sync/atomic.CompareAndSwapInt64"(ptr %2, i64 101, i64 102) - %9 = load i64, ptr %2, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %8) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 2 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %9) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %10 = call i64 @"sync/atomic.AddInt64"(ptr %2, i64 -1) - %11 = load i64, ptr %2, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %10) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 2 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %11) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -declare void @"sync/atomic.init"() - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) - -declare i64 @"sync/atomic.AddInt64"(ptr, i64) - -declare i1 @"sync/atomic.CompareAndSwapInt64"(ptr, i64, i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1) diff --git a/cl/_testlibgo/bytes/out.ll b/cl/_testlibgo/bytes/out.ll deleted file mode 100644 index b65455b7..00000000 --- a/cl/_testlibgo/bytes/out.ll +++ /dev/null @@ -1,81 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [6 x i8] c"Hello ", align 1 -@1 = private unnamed_addr constant [5 x i8] c"World", align 1 -@2 = private unnamed_addr constant [3 x i8] c"buf", align 1 -@3 = private unnamed_addr constant [2 x i8] c"Go", align 1 -@4 = private unnamed_addr constant [2 x i8] c"go", align 1 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @bytes.init() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 40) - %3 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 6 }) - %4 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @"bytes.(*Buffer).Write"(ptr %2, %"github.com/goplus/llgo/internal/runtime.Slice" %3) - %5 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @"bytes.(*Buffer).WriteString"(ptr %2, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 5 }) - %6 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"bytes.(*Buffer).Bytes"(ptr %2) - %7 = call %"github.com/goplus/llgo/internal/runtime.String" @"bytes.(*Buffer).String"(ptr %2) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 3 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/internal/runtime.Slice" %6) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %7) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %8 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 2 }) - %9 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 2 }) - %10 = call i1 @bytes.EqualFold(%"github.com/goplus/llgo/internal/runtime.Slice" %8, %"github.com/goplus/llgo/internal/runtime.Slice" %9) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %10) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -declare void @bytes.init() - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/internal/runtime.String") - -declare { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @"bytes.(*Buffer).Write"(ptr, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @"bytes.(*Buffer).WriteString"(ptr, %"github.com/goplus/llgo/internal/runtime.String") - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"bytes.(*Buffer).Bytes"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"bytes.(*Buffer).String"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/internal/runtime.Slice") - -declare i1 @bytes.EqualFold(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1) diff --git a/cl/_testlibgo/complex/out.ll b/cl/_testlibgo/complex/out.ll deleted file mode 100644 index a7c5af4e..00000000 --- a/cl/_testlibgo/complex/out.ll +++ /dev/null @@ -1,67 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } - -@"main.init$guard" = global i1 false, align 1 -@0 = private unnamed_addr constant [10 x i8] c"abs(3+4i):", align 1 -@1 = private unnamed_addr constant [11 x i8] c"real(3+4i):", align 1 -@2 = private unnamed_addr constant [11 x i8] c"imag(3+4i):", align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 - -define void @main.f({ double, double } %0, { double, double } %1) { -_llgo_0: - %2 = call double @cabs({ double, double } %0) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 10 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double %2) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %3 = extractvalue { double, double } %1, 0 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 11 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %4 = extractvalue { double, double } %1, 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 11 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double %4) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"math/cmplx.init"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - call void @main.f({ double, double } { double 3.000000e+00, double 4.000000e+00 }, { double, double } { double 3.000000e+00, double 4.000000e+00 }) - ret i32 0 -} - -declare double @cabs({ double, double }) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double) - -declare void @"math/cmplx.init"() - -declare void @"github.com/goplus/llgo/internal/runtime.init"() diff --git a/cl/_testlibgo/errors/out.ll b/cl/_testlibgo/errors/out.ll deleted file mode 100644 index aca6ef5e..00000000 --- a/cl/_testlibgo/errors/out.ll +++ /dev/null @@ -1,50 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [5 x i8] c"error", align 1 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @errors.init() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call %"github.com/goplus/llgo/internal/runtime.iface" @errors.New(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }) - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %2) - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %2, 1 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %3, 0 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %5, ptr %4, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %6) - unreachable -} - -declare void @errors.init() - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare %"github.com/goplus/llgo/internal/runtime.iface" @errors.New(%"github.com/goplus/llgo/internal/runtime.String") - -declare ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") diff --git a/cl/_testlibgo/nettextproto/out.ll b/cl/_testlibgo/nettextproto/out.ll deleted file mode 100644 index 929af524..00000000 --- a/cl/_testlibgo/nettextproto/out.ll +++ /dev/null @@ -1,45 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [4 x i8] c"host", align 1 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"net/textproto.init"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call %"github.com/goplus/llgo/internal/runtime.String" @"net/textproto.CanonicalMIMEHeaderKey"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %2) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -declare void @"net/textproto.init"() - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare %"github.com/goplus/llgo/internal/runtime.String" @"net/textproto.CanonicalMIMEHeaderKey"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) diff --git a/cl/_testlibgo/os/out.ll b/cl/_testlibgo/os/out.ll deleted file mode 100644 index 369d7f64..00000000 --- a/cl/_testlibgo/os/out.ll +++ /dev/null @@ -1,77 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [4 x i8] c"cwd:", align 1 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @os.init() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call { %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.iface" } @os.Getwd() - %3 = extractvalue { %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.iface" } %2, 0 - %4 = extractvalue { %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.iface" } %2, 1 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %4) - %6 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %4, 1 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %5, 0 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %7, ptr %6, 1 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %9, 0 - %11 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %10, ptr null, 1 - %12 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %8, %"github.com/goplus/llgo/internal/runtime.eface" %11) - %13 = xor i1 %12, true - br i1 %13, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %4) - %15 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %4, 1 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %14, 0 - %17 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %16, ptr %15, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %17) - unreachable - -_llgo_2: ; preds = %_llgo_0 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -declare void @os.init() - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare { %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.iface" } @os.Getwd() - -declare i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface", %"github.com/goplus/llgo/internal/runtime.eface") - -declare ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) diff --git a/cl/_testlibgo/strings/out.ll b/cl/_testlibgo/strings/out.ll deleted file mode 100644 index 5b4ea28a..00000000 --- a/cl/_testlibgo/strings/out.ll +++ /dev/null @@ -1,110 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [6 x i8] c"Hello ", align 1 -@1 = private unnamed_addr constant [5 x i8] c"World", align 1 -@2 = private unnamed_addr constant [4 x i8] c"len:", align 1 -@3 = private unnamed_addr constant [4 x i8] c"cap:", align 1 -@4 = private unnamed_addr constant [7 x i8] c"string:", align 1 -@5 = private unnamed_addr constant [13 x i8] c"Hello, \E4\B8\96\E7\95\8C", align 1 -@6 = private unnamed_addr constant [12 x i8] c"Hello, world", align 1 -@unicode.Han = external global ptr, align 8 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @strings.init() - call void @unicode.init() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 32) - %3 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 6 }) - %4 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @"strings.(*Builder).Write"(ptr %2, %"github.com/goplus/llgo/internal/runtime.Slice" %3) - %5 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @"strings.(*Builder).WriteString"(ptr %2, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 5 }) - %6 = call i64 @"strings.(*Builder).Len"(ptr %2) - %7 = call i64 @"strings.(*Builder).Cap"(ptr %2) - %8 = call %"github.com/goplus/llgo/internal/runtime.String" @"strings.(*Builder).String"(ptr %2) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %6) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %7) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 7 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %8) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %9 = call i64 @strings.IndexFunc(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 13 }, { ptr, ptr } { ptr @"__llgo_stub.main.main$1", ptr null }) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %9) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %10 = call i64 @strings.IndexFunc(%"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 12 }, { ptr, ptr } { ptr @"__llgo_stub.main.main$1", ptr null }) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %10) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -define i1 @"main.main$1"(i32 %0) { -_llgo_0: - %1 = load ptr, ptr @unicode.Han, align 8 - %2 = call i1 @unicode.Is(ptr %1, i32 %0) - ret i1 %2 -} - -declare void @strings.init() - -declare void @unicode.init() - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/internal/runtime.String") - -declare { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @"strings.(*Builder).Write"(ptr, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @"strings.(*Builder).WriteString"(ptr, %"github.com/goplus/llgo/internal/runtime.String") - -declare i64 @"strings.(*Builder).Len"(ptr) - -declare i64 @"strings.(*Builder).Cap"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"strings.(*Builder).String"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) - -declare i64 @strings.IndexFunc(%"github.com/goplus/llgo/internal/runtime.String", { ptr, ptr }) - -define linkonce i1 @"__llgo_stub.main.main$1"(ptr %0, i32 %1) { -_llgo_0: - %2 = tail call i1 @"main.main$1"(i32 %1) - ret i1 %2 -} - -declare i1 @unicode.Is(ptr, i32) diff --git a/cl/_testrt/abinamed/out.ll b/cl/_testrt/abinamed/out.ll deleted file mode 100644 index ae7c8efc..00000000 --- a/cl/_testrt/abinamed/out.ll +++ /dev/null @@ -1,3174 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%main.T = type { ptr, ptr, i64, %"github.com/goplus/llgo/internal/runtime.Slice" } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/internal/runtime.String", ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%main.eface = type { ptr, ptr } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } -%"github.com/goplus/llgo/internal/abi.StructType" = type { %"github.com/goplus/llgo/internal/abi.Type", %"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice" } -%"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@_llgo_main.T = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [4 x i8] c"main", align 1 -@1 = private unnamed_addr constant [1 x i8] c"T", align 1 -@"*_llgo_main.T" = linkonce global ptr null, align 8 -@"_llgo_github.com/goplus/llgo/internal/abi.Type" = linkonce global ptr null, align 8 -@2 = private unnamed_addr constant [35 x i8] c"github.com/goplus/llgo/internal/abi", align 1 -@3 = private unnamed_addr constant [4 x i8] c"Type", align 1 -@_llgo_uintptr = linkonce global ptr null, align 8 -@_llgo_uint32 = linkonce global ptr null, align 8 -@"_llgo_github.com/goplus/llgo/internal/abi.TFlag" = linkonce global ptr null, align 8 -@4 = private unnamed_addr constant [5 x i8] c"TFlag", align 1 -@_llgo_uint8 = linkonce global ptr null, align 8 -@_llgo_Pointer = linkonce global ptr null, align 8 -@_llgo_bool = linkonce global ptr null, align 8 -@"_llgo_func$fC75jGwF1nV5TF91gEeTF_JCtbG9Z7_yOawHBxqBh6E" = linkonce global ptr null, align 8 -@"main.struct$6Ehc6TOqEXOG056rtIWcVOuWzJK8QENYOqW7yQ1sEPU" = linkonce global ptr null, align 8 -@5 = private unnamed_addr constant [2 x i8] c"$f", align 1 -@6 = private unnamed_addr constant [5 x i8] c"$data", align 1 -@_llgo_byte = linkonce global ptr null, align 8 -@"*_llgo_byte" = linkonce global ptr null, align 8 -@_llgo_string = linkonce global ptr null, align 8 -@"*_llgo_github.com/goplus/llgo/internal/abi.Type" = linkonce global ptr null, align 8 -@"main.struct$s_4wS-L0c3X6acFEdGgOe80u4rOxTCyvHVAjIByYQqY" = linkonce global ptr null, align 8 -@7 = private unnamed_addr constant [5 x i8] c"Size_", align 1 -@8 = private unnamed_addr constant [8 x i8] c"PtrBytes", align 1 -@9 = private unnamed_addr constant [4 x i8] c"Hash", align 1 -@10 = private unnamed_addr constant [6 x i8] c"Align_", align 1 -@11 = private unnamed_addr constant [11 x i8] c"FieldAlign_", align 1 -@12 = private unnamed_addr constant [5 x i8] c"Kind_", align 1 -@13 = private unnamed_addr constant [5 x i8] c"Equal", align 1 -@14 = private unnamed_addr constant [6 x i8] c"GCData", align 1 -@15 = private unnamed_addr constant [4 x i8] c"Str_", align 1 -@16 = private unnamed_addr constant [10 x i8] c"PtrToThis_", align 1 -@17 = private unnamed_addr constant [5 x i8] c"Align", align 1 -@_llgo_int = linkonce global ptr null, align 8 -@"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA" = linkonce global ptr null, align 8 -@18 = private unnamed_addr constant [9 x i8] c"ArrayType", align 1 -@"_llgo_github.com/goplus/llgo/internal/abi.ArrayType" = linkonce global ptr null, align 8 -@"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY" = linkonce global ptr null, align 8 -@19 = private unnamed_addr constant [4 x i8] c"Elem", align 1 -@20 = private unnamed_addr constant [5 x i8] c"Slice", align 1 -@21 = private unnamed_addr constant [3 x i8] c"Len", align 1 -@"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType" = linkonce global ptr null, align 8 -@"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4" = linkonce global ptr null, align 8 -@22 = private unnamed_addr constant [7 x i8] c"ChanDir", align 1 -@"_llgo_github.com/goplus/llgo/internal/abi.ChanDir" = linkonce global ptr null, align 8 -@"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4" = linkonce global ptr null, align 8 -@23 = private unnamed_addr constant [6 x i8] c"Common", align 1 -@"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo" = linkonce global ptr null, align 8 -@24 = private unnamed_addr constant [15 x i8] c"ExportedMethods", align 1 -@"_llgo_github.com/goplus/llgo/internal/abi.Method" = linkonce global ptr null, align 8 -@25 = private unnamed_addr constant [6 x i8] c"Method", align 1 -@"_llgo_github.com/goplus/llgo/internal/abi.FuncType" = linkonce global ptr null, align 8 -@26 = private unnamed_addr constant [8 x i8] c"FuncType", align 1 -@"[]*_llgo_github.com/goplus/llgo/internal/abi.Type" = linkonce global ptr null, align 8 -@"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw" = linkonce global ptr null, align 8 -@27 = private unnamed_addr constant [2 x i8] c"In", align 1 -@28 = private unnamed_addr constant [3 x i8] c"Out", align 1 -@"[]_llgo_github.com/goplus/llgo/internal/abi.Method" = linkonce global ptr null, align 8 -@"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg" = linkonce global ptr null, align 8 -@29 = private unnamed_addr constant [10 x i8] c"FieldAlign", align 1 -@"*_llgo_github.com/goplus/llgo/internal/abi.FuncType" = linkonce global ptr null, align 8 -@"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww" = linkonce global ptr null, align 8 -@30 = private unnamed_addr constant [7 x i8] c"HasName", align 1 -@"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk" = linkonce global ptr null, align 8 -@31 = private unnamed_addr constant [10 x i8] c"IfaceIndir", align 1 -@32 = private unnamed_addr constant [13 x i8] c"InterfaceType", align 1 -@"_llgo_github.com/goplus/llgo/internal/abi.InterfaceType" = linkonce global ptr null, align 8 -@"_llgo_github.com/goplus/llgo/internal/abi.Imethod" = linkonce global ptr null, align 8 -@33 = private unnamed_addr constant [7 x i8] c"Imethod", align 1 -@"_llgo_struct$-SVMNS9vOT5F9q4yodRiL9MFhdPf0tfZ2Cx2o7KjSDw" = linkonce global ptr null, align 8 -@34 = private unnamed_addr constant [5 x i8] c"Name_", align 1 -@35 = private unnamed_addr constant [4 x i8] c"Typ_", align 1 -@36 = private unnamed_addr constant [8 x i8] c"Exported", align 1 -@37 = private unnamed_addr constant [4 x i8] c"Name", align 1 -@"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 -@38 = private unnamed_addr constant [7 x i8] c"PkgPath", align 1 -@"[]_llgo_github.com/goplus/llgo/internal/abi.Imethod" = linkonce global ptr null, align 8 -@"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4" = linkonce global ptr null, align 8 -@39 = private unnamed_addr constant [8 x i8] c"PkgPath_", align 1 -@40 = private unnamed_addr constant [7 x i8] c"Methods", align 1 -@"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType" = linkonce global ptr null, align 8 -@"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8" = linkonce global ptr null, align 8 -@41 = private unnamed_addr constant [9 x i8] c"IsClosure", align 1 -@42 = private unnamed_addr constant [13 x i8] c"IsDirectIface", align 1 -@43 = private unnamed_addr constant [3 x i8] c"Key", align 1 -@44 = private unnamed_addr constant [4 x i8] c"Kind", align 1 -@"_llgo_github.com/goplus/llgo/internal/abi.Kind" = linkonce global ptr null, align 8 -@_llgo_uint = linkonce global ptr null, align 8 -@45 = private unnamed_addr constant [6 x i8] c"String", align 1 -@"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI" = linkonce global ptr null, align 8 -@46 = private unnamed_addr constant [7 x i8] c"MapType", align 1 -@"_llgo_github.com/goplus/llgo/internal/abi.MapType" = linkonce global ptr null, align 8 -@"_llgo_func$ahHMZCcDhfW-lrs446sPkiW0NoVa2vpmK_wKarVa_20" = linkonce global ptr null, align 8 -@"main.struct$Oy3XhjARgY_pH1HU6oBj0nSC2Qs1A6CU4bRajpBttZc" = linkonce global ptr null, align 8 -@_llgo_uint16 = linkonce global ptr null, align 8 -@"main.struct$NNQFCWl7PM2tdO3Cxl4doIs1_JQl2vsUbnXLc46j14k" = linkonce global ptr null, align 8 -@47 = private unnamed_addr constant [6 x i8] c"Bucket", align 1 -@48 = private unnamed_addr constant [6 x i8] c"Hasher", align 1 -@49 = private unnamed_addr constant [7 x i8] c"KeySize", align 1 -@50 = private unnamed_addr constant [9 x i8] c"ValueSize", align 1 -@51 = private unnamed_addr constant [10 x i8] c"BucketSize", align 1 -@52 = private unnamed_addr constant [5 x i8] c"Flags", align 1 -@53 = private unnamed_addr constant [14 x i8] c"HashMightPanic", align 1 -@54 = private unnamed_addr constant [12 x i8] c"IndirectElem", align 1 -@55 = private unnamed_addr constant [11 x i8] c"IndirectKey", align 1 -@"*_llgo_github.com/goplus/llgo/internal/abi.MapType" = linkonce global ptr null, align 8 -@"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4" = linkonce global ptr null, align 8 -@56 = private unnamed_addr constant [13 x i8] c"NeedKeyUpdate", align 1 -@57 = private unnamed_addr constant [9 x i8] c"NumMethod", align 1 -@58 = private unnamed_addr constant [8 x i8] c"Pointers", align 1 -@59 = private unnamed_addr constant [12 x i8] c"ReflexiveKey", align 1 -@60 = private unnamed_addr constant [4 x i8] c"Size", align 1 -@"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s" = linkonce global ptr null, align 8 -@61 = private unnamed_addr constant [10 x i8] c"StructType", align 1 -@"_llgo_github.com/goplus/llgo/internal/abi.StructType" = linkonce global ptr null, align 8 -@"_llgo_github.com/goplus/llgo/internal/abi.StructField" = linkonce global ptr null, align 8 -@62 = private unnamed_addr constant [11 x i8] c"StructField", align 1 -@"_llgo_struct$GYlWrg0B_axMyyq9xClGPKuTjurG0iQMRoz8Me1fQig" = linkonce global ptr null, align 8 -@63 = private unnamed_addr constant [3 x i8] c"Typ", align 1 -@64 = private unnamed_addr constant [6 x i8] c"Offset", align 1 -@65 = private unnamed_addr constant [4 x i8] c"Tag_", align 1 -@66 = private unnamed_addr constant [9 x i8] c"Embedded_", align 1 -@67 = private unnamed_addr constant [8 x i8] c"Embedded", align 1 -@"[]_llgo_github.com/goplus/llgo/internal/abi.StructField" = linkonce global ptr null, align 8 -@"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0" = linkonce global ptr null, align 8 -@68 = private unnamed_addr constant [6 x i8] c"Fields", align 1 -@"*_llgo_github.com/goplus/llgo/internal/abi.StructType" = linkonce global ptr null, align 8 -@"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U" = linkonce global ptr null, align 8 -@69 = private unnamed_addr constant [8 x i8] c"Uncommon", align 1 -@"_llgo_github.com/goplus/llgo/internal/abi.UncommonType" = linkonce global ptr null, align 8 -@70 = private unnamed_addr constant [12 x i8] c"UncommonType", align 1 -@"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI" = linkonce global ptr null, align 8 -@71 = private unnamed_addr constant [6 x i8] c"Mcount", align 1 -@72 = private unnamed_addr constant [6 x i8] c"Xcount", align 1 -@73 = private unnamed_addr constant [4 x i8] c"Moff", align 1 -@"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType" = linkonce global ptr null, align 8 -@"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34" = linkonce global ptr null, align 8 -@74 = private unnamed_addr constant [8 x i8] c"Variadic", align 1 -@"_llgo_struct$SDp3TNnYnxb26MhB1v8VMbmY71BX77YOaY7lgS1cFx0" = linkonce global ptr null, align 8 -@75 = private unnamed_addr constant [5 x i8] c"Mtyp_", align 1 -@76 = private unnamed_addr constant [4 x i8] c"Ifn_", align 1 -@77 = private unnamed_addr constant [4 x i8] c"Tfn_", align 1 -@"[]_llgo_main.T" = linkonce global ptr null, align 8 -@"main.struct$FYfyNCnlvkYOztpQWjt-y8D_WY3tpxyt5Qo62CJffTE" = linkonce global ptr null, align 8 -@78 = private unnamed_addr constant [1 x i8] c"p", align 1 -@79 = private unnamed_addr constant [1 x i8] c"t", align 1 -@80 = private unnamed_addr constant [1 x i8] c"n", align 1 -@81 = private unnamed_addr constant [1 x i8] c"a", align 1 -@82 = private unnamed_addr constant [13 x i8] c"error field 0", align 1 -@83 = private unnamed_addr constant [18 x i8] c"error field 0 elem", align 1 -@84 = private unnamed_addr constant [13 x i8] c"error field 1", align 1 -@85 = private unnamed_addr constant [18 x i8] c"error field 1 elem", align 1 -@86 = private unnamed_addr constant [13 x i8] c"error field 2", align 1 -@87 = private unnamed_addr constant [13 x i8] c"error field 3", align 1 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"github.com/goplus/llgo/internal/abi.init"() - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = load ptr, ptr @_llgo_main.T, align 8 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - store %main.T zeroinitializer, ptr %3, align 8 - %4 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %2, 0 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %4, ptr %3, 1 - %6 = call ptr @main.toEface(%"github.com/goplus/llgo/internal/runtime.eface" %5) - %7 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 72) - store %"github.com/goplus/llgo/internal/abi.Type" zeroinitializer, ptr %8, align 8 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %7, 0 - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %9, ptr %8, 1 - %11 = call ptr @main.toEface(%"github.com/goplus/llgo/internal/runtime.eface" %10) - %12 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 - %13 = load ptr, ptr %12, align 8 - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %13) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %14 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 - %15 = load ptr, ptr %14, align 8 - %16 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %15, i32 0, i32 10 - %17 = load ptr, ptr %16, align 8 - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %17) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %18 = getelementptr inbounds %main.eface, ptr %11, i32 0, i32 0 - %19 = load ptr, ptr %18, align 8 - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %19) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %20 = getelementptr inbounds %main.eface, ptr %11, i32 0, i32 0 - %21 = load ptr, ptr %20, align 8 - %22 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %21, i32 0, i32 10 - %23 = load ptr, ptr %22, align 8 - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %23) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %24 = alloca %"github.com/goplus/llgo/internal/abi.StructField", align 8 - call void @llvm.memset(ptr %24, i8 0, i64 56, i1 false) - %25 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 - %26 = load ptr, ptr %25, align 8 - %27 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType"(ptr %26) - %28 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructType", ptr %27, i32 0, i32 2 - %29 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %28, align 8 - %30 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %29, 0 - %31 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %29, 1 - %32 = icmp sge i64 0, %31 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %32) - %33 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %30, i64 0 - %34 = load %"github.com/goplus/llgo/internal/abi.StructField", ptr %33, align 8 - store %"github.com/goplus/llgo/internal/abi.StructField" %34, ptr %24, align 8 - %35 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %24, i32 0, i32 1 - %36 = load ptr, ptr %35, align 8 - %37 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 - %38 = load ptr, ptr %37, align 8 - %39 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %38, i32 0, i32 10 - %40 = load ptr, ptr %39, align 8 - %41 = icmp ne ptr %36, %40 - br i1 %41, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %42 = load ptr, ptr @_llgo_string, align 8 - %43 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @82, i64 13 }, ptr %43, align 8 - %44 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %42, 0 - %45 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %44, ptr %43, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %45) - unreachable - -_llgo_2: ; preds = %_llgo_0 - %46 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %24, i32 0, i32 1 - %47 = load ptr, ptr %46, align 8 - %48 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem"(ptr %47) - %49 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 - %50 = load ptr, ptr %49, align 8 - %51 = icmp ne ptr %48, %50 - br i1 %51, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %52 = load ptr, ptr @_llgo_string, align 8 - %53 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @83, i64 18 }, ptr %53, align 8 - %54 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %52, 0 - %55 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %54, ptr %53, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %55) - unreachable - -_llgo_4: ; preds = %_llgo_2 - %56 = alloca %"github.com/goplus/llgo/internal/abi.StructField", align 8 - call void @llvm.memset(ptr %56, i8 0, i64 56, i1 false) - %57 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 - %58 = load ptr, ptr %57, align 8 - %59 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType"(ptr %58) - %60 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructType", ptr %59, i32 0, i32 2 - %61 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %60, align 8 - %62 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %61, 0 - %63 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %61, 1 - %64 = icmp sge i64 1, %63 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %64) - %65 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %62, i64 1 - %66 = load %"github.com/goplus/llgo/internal/abi.StructField", ptr %65, align 8 - store %"github.com/goplus/llgo/internal/abi.StructField" %66, ptr %56, align 8 - %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %56, i32 0, i32 1 - %68 = load ptr, ptr %67, align 8 - %69 = getelementptr inbounds %main.eface, ptr %11, i32 0, i32 0 - %70 = load ptr, ptr %69, align 8 - %71 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %70, i32 0, i32 10 - %72 = load ptr, ptr %71, align 8 - %73 = icmp ne ptr %68, %72 - br i1 %73, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %74 = load ptr, ptr @_llgo_string, align 8 - %75 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @84, i64 13 }, ptr %75, align 8 - %76 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %74, 0 - %77 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %76, ptr %75, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %77) - unreachable - -_llgo_6: ; preds = %_llgo_4 - %78 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %56, i32 0, i32 1 - %79 = load ptr, ptr %78, align 8 - %80 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem"(ptr %79) - %81 = getelementptr inbounds %main.eface, ptr %11, i32 0, i32 0 - %82 = load ptr, ptr %81, align 8 - %83 = icmp ne ptr %80, %82 - br i1 %83, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - %84 = load ptr, ptr @_llgo_string, align 8 - %85 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @85, i64 18 }, ptr %85, align 8 - %86 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %84, 0 - %87 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %86, ptr %85, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %87) - unreachable - -_llgo_8: ; preds = %_llgo_6 - %88 = alloca %"github.com/goplus/llgo/internal/abi.StructField", align 8 - call void @llvm.memset(ptr %88, i8 0, i64 56, i1 false) - %89 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 - %90 = load ptr, ptr %89, align 8 - %91 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType"(ptr %90) - %92 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructType", ptr %91, i32 0, i32 2 - %93 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %92, align 8 - %94 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %93, 0 - %95 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %93, 1 - %96 = icmp sge i64 2, %95 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %96) - %97 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %94, i64 2 - %98 = load %"github.com/goplus/llgo/internal/abi.StructField", ptr %97, align 8 - store %"github.com/goplus/llgo/internal/abi.StructField" %98, ptr %88, align 8 - %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %88, i32 0, i32 1 - %100 = load ptr, ptr %99, align 8 - %101 = getelementptr inbounds %main.eface, ptr %11, i32 0, i32 0 - %102 = load ptr, ptr %101, align 8 - %103 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType"(ptr %102) - %104 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructType", ptr %103, i32 0, i32 2 - %105 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %104, align 8 - %106 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %105, 0 - %107 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %105, 1 - %108 = icmp sge i64 0, %107 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %108) - %109 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %106, i64 0 - %110 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %109, i32 0, i32 1 - %111 = load ptr, ptr %110, align 8 - %112 = icmp ne ptr %100, %111 - br i1 %112, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - %113 = load ptr, ptr @_llgo_string, align 8 - %114 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @86, i64 13 }, ptr %114, align 8 - %115 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %113, 0 - %116 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %115, ptr %114, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %116) - unreachable - -_llgo_10: ; preds = %_llgo_8 - %117 = alloca %"github.com/goplus/llgo/internal/abi.StructField", align 8 - call void @llvm.memset(ptr %117, i8 0, i64 56, i1 false) - %118 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 - %119 = load ptr, ptr %118, align 8 - %120 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType"(ptr %119) - %121 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructType", ptr %120, i32 0, i32 2 - %122 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %121, align 8 - %123 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %122, 0 - %124 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %122, 1 - %125 = icmp sge i64 3, %124 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %125) - %126 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %123, i64 3 - %127 = load %"github.com/goplus/llgo/internal/abi.StructField", ptr %126, align 8 - store %"github.com/goplus/llgo/internal/abi.StructField" %127, ptr %117, align 8 - %128 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.StructField", ptr %117, i32 0, i32 1 - %129 = load ptr, ptr %128, align 8 - %130 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem"(ptr %129) - %131 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 - %132 = load ptr, ptr %131, align 8 - %133 = icmp ne ptr %130, %132 - br i1 %133, label %_llgo_11, label %_llgo_12 - -_llgo_11: ; preds = %_llgo_10 - %134 = load ptr, ptr @_llgo_string, align 8 - %135 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @87, i64 13 }, ptr %135, align 8 - %136 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %134, 0 - %137 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %136, ptr %135, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %137) - unreachable - -_llgo_12: ; preds = %_llgo_10 - ret i32 0 -} - -define ptr @main.toEface(%"github.com/goplus/llgo/internal/runtime.eface" %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.eface" %0, ptr %1, align 8 - ret ptr %1 -} - -declare void @"github.com/goplus/llgo/internal/abi.init"() - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -define void @"main.init$after"() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 1 }, i64 25, i64 48, i64 0, i64 0) - %1 = load ptr, ptr @_llgo_main.T, align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - store ptr %0, ptr @_llgo_main.T, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @_llgo_main.T, align 8 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 1 }, i64 25, i64 48, i64 0, i64 0) - %5 = load ptr, ptr @"*_llgo_main.T", align 8 - %6 = icmp eq ptr %5, null - br i1 %6, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %4) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %7) - store ptr %7, ptr @"*_llgo_main.T", align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %8 = load ptr, ptr @"*_llgo_main.T", align 8 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %10 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %11 = icmp eq ptr %10, null - br i1 %11, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - store ptr %9, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %12 = load ptr, ptr @_llgo_uintptr, align 8 - %13 = icmp eq ptr %12, null - br i1 %13, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) - store ptr %14, ptr @_llgo_uintptr, align 8 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - %15 = load ptr, ptr @_llgo_uintptr, align 8 - %16 = load ptr, ptr @_llgo_uint32, align 8 - %17 = icmp eq ptr %16, null - br i1 %17, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - %18 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 42) - store ptr %18, ptr @_llgo_uint32, align 8 - br label %_llgo_10 - -_llgo_10: ; preds = %_llgo_9, %_llgo_8 - %19 = load ptr, ptr @_llgo_uint32, align 8 - %20 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 5 }, i64 8, i64 1, i64 0, i64 0) - %21 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.TFlag", align 8 - %22 = icmp eq ptr %21, null - br i1 %22, label %_llgo_11, label %_llgo_12 - -_llgo_11: ; preds = %_llgo_10 - store ptr %20, ptr @"_llgo_github.com/goplus/llgo/internal/abi.TFlag", align 8 - br label %_llgo_12 - -_llgo_12: ; preds = %_llgo_11, %_llgo_10 - %23 = load ptr, ptr @_llgo_uint8, align 8 - %24 = icmp eq ptr %23, null - br i1 %24, label %_llgo_13, label %_llgo_14 - -_llgo_13: ; preds = %_llgo_12 - %25 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - store ptr %25, ptr @_llgo_uint8, align 8 - br label %_llgo_14 - -_llgo_14: ; preds = %_llgo_13, %_llgo_12 - %26 = load ptr, ptr @_llgo_uint8, align 8 - br i1 %22, label %_llgo_15, label %_llgo_16 - -_llgo_15: ; preds = %_llgo_14 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %20, ptr %26, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - br label %_llgo_16 - -_llgo_16: ; preds = %_llgo_15, %_llgo_14 - %27 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.TFlag", align 8 - %28 = load ptr, ptr @_llgo_Pointer, align 8 - %29 = icmp eq ptr %28, null - br i1 %29, label %_llgo_17, label %_llgo_18 - -_llgo_17: ; preds = %_llgo_16 - %30 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %30) - store ptr %30, ptr @_llgo_Pointer, align 8 - br label %_llgo_18 - -_llgo_18: ; preds = %_llgo_17, %_llgo_16 - %31 = load ptr, ptr @_llgo_Pointer, align 8 - %32 = load ptr, ptr @_llgo_bool, align 8 - %33 = icmp eq ptr %32, null - br i1 %33, label %_llgo_19, label %_llgo_20 - -_llgo_19: ; preds = %_llgo_18 - %34 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 33) - store ptr %34, ptr @_llgo_bool, align 8 - br label %_llgo_20 - -_llgo_20: ; preds = %_llgo_19, %_llgo_18 - %35 = load ptr, ptr @_llgo_bool, align 8 - %36 = load ptr, ptr @_llgo_Pointer, align 8 - %37 = load ptr, ptr @_llgo_Pointer, align 8 - %38 = load ptr, ptr @_llgo_bool, align 8 - %39 = load ptr, ptr @"_llgo_func$fC75jGwF1nV5TF91gEeTF_JCtbG9Z7_yOawHBxqBh6E", align 8 - %40 = icmp eq ptr %39, null - br i1 %40, label %_llgo_21, label %_llgo_22 - -_llgo_21: ; preds = %_llgo_20 - %41 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %42 = getelementptr ptr, ptr %41, i64 0 - store ptr %36, ptr %42, align 8 - %43 = getelementptr ptr, ptr %41, i64 1 - store ptr %37, ptr %43, align 8 - %44 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %41, 0 - %45 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %44, i64 2, 1 - %46 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %45, i64 2, 2 - %47 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %48 = getelementptr ptr, ptr %47, i64 0 - store ptr %38, ptr %48, align 8 - %49 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %47, 0 - %50 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %49, i64 1, 1 - %51 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %50, i64 1, 2 - %52 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %46, %"github.com/goplus/llgo/internal/runtime.Slice" %51, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %52) - store ptr %52, ptr @"_llgo_func$fC75jGwF1nV5TF91gEeTF_JCtbG9Z7_yOawHBxqBh6E", align 8 - br label %_llgo_22 - -_llgo_22: ; preds = %_llgo_21, %_llgo_20 - %53 = load ptr, ptr @"_llgo_func$fC75jGwF1nV5TF91gEeTF_JCtbG9Z7_yOawHBxqBh6E", align 8 - %54 = load ptr, ptr @_llgo_Pointer, align 8 - %55 = load ptr, ptr @_llgo_Pointer, align 8 - %56 = load ptr, ptr @_llgo_bool, align 8 - %57 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %58 = getelementptr ptr, ptr %57, i64 0 - store ptr %54, ptr %58, align 8 - %59 = getelementptr ptr, ptr %57, i64 1 - store ptr %55, ptr %59, align 8 - %60 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %57, 0 - %61 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %60, i64 2, 1 - %62 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %61, i64 2, 2 - %63 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %64 = getelementptr ptr, ptr %63, i64 0 - store ptr %56, ptr %64, align 8 - %65 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %63, 0 - %66 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %65, i64 1, 1 - %67 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %66, i64 1, 2 - %68 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %62, %"github.com/goplus/llgo/internal/runtime.Slice" %67, i1 false) - %69 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 2 }, ptr %68, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %70 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %71 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 5 }, ptr %70, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %72 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %73 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %72, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %69, ptr %73, align 8 - %74 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %72, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %71, ptr %74, align 8 - %75 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %72, 0 - %76 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %75, i64 2, 1 - %77 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %76, i64 2, 2 - %78 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %77) - store ptr %78, ptr @"main.struct$6Ehc6TOqEXOG056rtIWcVOuWzJK8QENYOqW7yQ1sEPU", align 8 - %79 = load ptr, ptr @"main.struct$6Ehc6TOqEXOG056rtIWcVOuWzJK8QENYOqW7yQ1sEPU", align 8 - %80 = load ptr, ptr @_llgo_byte, align 8 - %81 = icmp eq ptr %80, null - br i1 %81, label %_llgo_23, label %_llgo_24 - -_llgo_23: ; preds = %_llgo_22 - %82 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - store ptr %82, ptr @_llgo_byte, align 8 - br label %_llgo_24 - -_llgo_24: ; preds = %_llgo_23, %_llgo_22 - %83 = load ptr, ptr @_llgo_byte, align 8 - %84 = load ptr, ptr @"*_llgo_byte", align 8 - %85 = icmp eq ptr %84, null - br i1 %85, label %_llgo_25, label %_llgo_26 - -_llgo_25: ; preds = %_llgo_24 - %86 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %87 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %86) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %87) - store ptr %87, ptr @"*_llgo_byte", align 8 - br label %_llgo_26 - -_llgo_26: ; preds = %_llgo_25, %_llgo_24 - %88 = load ptr, ptr @"*_llgo_byte", align 8 - %89 = load ptr, ptr @_llgo_string, align 8 - %90 = icmp eq ptr %89, null - br i1 %90, label %_llgo_27, label %_llgo_28 - -_llgo_27: ; preds = %_llgo_26 - %91 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %91, ptr @_llgo_string, align 8 - br label %_llgo_28 - -_llgo_28: ; preds = %_llgo_27, %_llgo_26 - %92 = load ptr, ptr @_llgo_string, align 8 - %93 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %94 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 72, i64 0, i64 23) - %95 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %96 = icmp eq ptr %95, null - br i1 %96, label %_llgo_29, label %_llgo_30 - -_llgo_29: ; preds = %_llgo_28 - %97 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %94) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %97) - store ptr %97, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - br label %_llgo_30 - -_llgo_30: ; preds = %_llgo_29, %_llgo_28 - %98 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %99 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 5 }, i64 8, i64 1, i64 0, i64 0) - %100 = load ptr, ptr @_llgo_Pointer, align 8 - %101 = load ptr, ptr @_llgo_Pointer, align 8 - %102 = load ptr, ptr @_llgo_bool, align 8 - %103 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 72, i64 0, i64 23) - %104 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) - %105 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 5 }, ptr %104, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %106 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) - %107 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 8 }, ptr %106, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %108 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 42) - %109 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 4 }, ptr %108, i64 16, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %110 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 5 }, ptr %99, i64 20, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %111 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %112 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @10, i64 6 }, ptr %111, i64 21, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %113 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %114 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 11 }, ptr %113, i64 22, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %115 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %116 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @12, i64 5 }, ptr %115, i64 23, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %117 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %118 = getelementptr ptr, ptr %117, i64 0 - store ptr %100, ptr %118, align 8 - %119 = getelementptr ptr, ptr %117, i64 1 - store ptr %101, ptr %119, align 8 - %120 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %117, 0 - %121 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %120, i64 2, 1 - %122 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %121, i64 2, 2 - %123 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %124 = getelementptr ptr, ptr %123, i64 0 - store ptr %102, ptr %124, align 8 - %125 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %123, 0 - %126 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %125, i64 1, 1 - %127 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %126, i64 1, 2 - %128 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %122, %"github.com/goplus/llgo/internal/runtime.Slice" %127, i1 false) - %129 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 2 }, ptr %128, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %130 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %131 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 5 }, ptr %130, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %132 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %133 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %132, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %129, ptr %133, align 8 - %134 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %132, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %131, ptr %134, align 8 - %135 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %132, 0 - %136 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %135, i64 2, 1 - %137 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %136, i64 2, 2 - %138 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %137) - %139 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @13, i64 5 }, ptr %138, i64 24, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %140 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %141 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %140) - %142 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @14, i64 6 }, ptr %141, i64 40, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %143 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %144 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @15, i64 4 }, ptr %143, i64 48, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %145 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %103) - %146 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @16, i64 10 }, ptr %145, i64 64, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %147 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 616) - %148 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %147, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %105, ptr %148, align 8 - %149 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %147, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %107, ptr %149, align 8 - %150 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %147, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %109, ptr %150, align 8 - %151 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %147, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %110, ptr %151, align 8 - %152 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %147, i64 4 - store %"github.com/goplus/llgo/internal/abi.StructField" %112, ptr %152, align 8 - %153 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %147, i64 5 - store %"github.com/goplus/llgo/internal/abi.StructField" %114, ptr %153, align 8 - %154 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %147, i64 6 - store %"github.com/goplus/llgo/internal/abi.StructField" %116, ptr %154, align 8 - %155 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %147, i64 7 - store %"github.com/goplus/llgo/internal/abi.StructField" %139, ptr %155, align 8 - %156 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %147, i64 8 - store %"github.com/goplus/llgo/internal/abi.StructField" %142, ptr %156, align 8 - %157 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %147, i64 9 - store %"github.com/goplus/llgo/internal/abi.StructField" %144, ptr %157, align 8 - %158 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %147, i64 10 - store %"github.com/goplus/llgo/internal/abi.StructField" %146, ptr %158, align 8 - %159 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %147, 0 - %160 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %159, i64 11, 1 - %161 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %160, i64 11, 2 - %162 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 72, %"github.com/goplus/llgo/internal/runtime.Slice" %161) - store ptr %162, ptr @"main.struct$s_4wS-L0c3X6acFEdGgOe80u4rOxTCyvHVAjIByYQqY", align 8 - %163 = load ptr, ptr @"main.struct$s_4wS-L0c3X6acFEdGgOe80u4rOxTCyvHVAjIByYQqY", align 8 - br i1 %11, label %_llgo_31, label %_llgo_32 - -_llgo_31: ; preds = %_llgo_30 - %164 = load ptr, ptr @_llgo_int, align 8 - %165 = icmp eq ptr %164, null - br i1 %165, label %_llgo_33, label %_llgo_34 - -_llgo_32: ; preds = %_llgo_42, %_llgo_30 - %166 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %167 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %168 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 1 }, i64 25, i64 48, i64 0, i64 0) - %169 = load ptr, ptr @"[]_llgo_main.T", align 8 - %170 = icmp eq ptr %169, null - br i1 %170, label %_llgo_149, label %_llgo_150 - -_llgo_33: ; preds = %_llgo_31 - %171 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %171, ptr @_llgo_int, align 8 - br label %_llgo_34 - -_llgo_34: ; preds = %_llgo_33, %_llgo_31 - %172 = load ptr, ptr @_llgo_int, align 8 - %173 = load ptr, ptr @_llgo_int, align 8 - %174 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %175 = icmp eq ptr %174, null - br i1 %175, label %_llgo_35, label %_llgo_36 - -_llgo_35: ; preds = %_llgo_34 - %176 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %177 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %176, 0 - %178 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %177, i64 0, 1 - %179 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %178, i64 0, 2 - %180 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %181 = getelementptr ptr, ptr %180, i64 0 - store ptr %173, ptr %181, align 8 - %182 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %180, 0 - %183 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %182, i64 1, 1 - %184 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %183, i64 1, 2 - %185 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %179, %"github.com/goplus/llgo/internal/runtime.Slice" %184, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %185) - store ptr %185, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - br label %_llgo_36 - -_llgo_36: ; preds = %_llgo_35, %_llgo_34 - %186 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %187 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %186, 1 - %188 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %187, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Align", 2 - %189 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %188, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Align", 3 - %190 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @18, i64 9 }, i64 25, i64 104, i64 0, i64 21) - %191 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - %192 = icmp eq ptr %191, null - br i1 %192, label %_llgo_37, label %_llgo_38 - -_llgo_37: ; preds = %_llgo_36 - store ptr %190, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - br label %_llgo_38 - -_llgo_38: ; preds = %_llgo_37, %_llgo_36 - %193 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %194 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %195 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %196 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %197 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %198 = load ptr, ptr @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY", align 8 - %199 = icmp eq ptr %198, null - br i1 %199, label %_llgo_39, label %_llgo_40 - -_llgo_39: ; preds = %_llgo_38 - %200 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, ptr %195, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 true) - %201 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %196) - %202 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @19, i64 4 }, ptr %201, i64 72, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %203 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %197) - %204 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @20, i64 5 }, ptr %203, i64 80, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %205 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) - %206 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @21, i64 3 }, ptr %205, i64 88, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %207 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %208 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %207, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %200, ptr %208, align 8 - %209 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %207, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %202, ptr %209, align 8 - %210 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %207, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %204, ptr %210, align 8 - %211 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %207, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %206, ptr %211, align 8 - %212 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %207, 0 - %213 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %212, i64 4, 1 - %214 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %213, i64 4, 2 - %215 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 96, %"github.com/goplus/llgo/internal/runtime.Slice" %214) - store ptr %215, ptr @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY", align 8 - br label %_llgo_40 - -_llgo_40: ; preds = %_llgo_39, %_llgo_38 - %216 = load ptr, ptr @"_llgo_struct$eLreYy_0Tx9Ip-rgTmC6_uCvf27HVl_zBUTfLS0WYaY", align 8 - br i1 %192, label %_llgo_41, label %_llgo_42 - -_llgo_41: ; preds = %_llgo_40 - %217 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %218 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %217, 1 - %219 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %218, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Align", 2 - %220 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %219, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Align", 3 - %221 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @18, i64 9 }, i64 25, i64 104, i64 0, i64 21) - %222 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - %223 = icmp eq ptr %222, null - br i1 %223, label %_llgo_43, label %_llgo_44 - -_llgo_42: ; preds = %_llgo_148, %_llgo_40 - %224 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - %225 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - %226 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %227 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %226, 1 - %228 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %227, ptr @"github.com/goplus/llgo/internal/abi.(*Type).ArrayType", 2 - %229 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %228, ptr @"github.com/goplus/llgo/internal/abi.(*Type).ArrayType", 3 - %230 = load ptr, ptr @"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4", align 8 - %231 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %230, 1 - %232 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %231, ptr @"github.com/goplus/llgo/internal/abi.(*Type).ChanDir", 2 - %233 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %232, ptr @"github.com/goplus/llgo/internal/abi.(*Type).ChanDir", 3 - %234 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %235 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %236 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %235, 1 - %237 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %236, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Common", 2 - %238 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %237, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Common", 3 - %239 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %240 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %241 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @19, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %240, 1 - %242 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %241, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem", 2 - %243 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %242, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem", 3 - %244 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - %245 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 - %246 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %245, 1 - %247 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %246, ptr @"github.com/goplus/llgo/internal/abi.(*Type).ExportedMethods", 2 - %248 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %247, ptr @"github.com/goplus/llgo/internal/abi.(*Type).ExportedMethods", 3 - %249 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %250 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %249, 1 - %251 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %250, ptr @"github.com/goplus/llgo/internal/abi.(*Type).FieldAlign", 2 - %252 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %251, ptr @"github.com/goplus/llgo/internal/abi.(*Type).FieldAlign", 3 - %253 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %254 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %255 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %254, 1 - %256 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %255, ptr @"github.com/goplus/llgo/internal/abi.(*Type).FuncType", 2 - %257 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %256, ptr @"github.com/goplus/llgo/internal/abi.(*Type).FuncType", 3 - %258 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %259 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %258, 1 - %260 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %259, ptr @"github.com/goplus/llgo/internal/abi.(*Type).HasName", 2 - %261 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %260, ptr @"github.com/goplus/llgo/internal/abi.(*Type).HasName", 3 - %262 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %263 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %262, 1 - %264 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %263, ptr @"github.com/goplus/llgo/internal/abi.(*Type).IfaceIndir", 2 - %265 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %264, ptr @"github.com/goplus/llgo/internal/abi.(*Type).IfaceIndir", 3 - %266 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - %267 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %268 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %267, 1 - %269 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %268, ptr @"github.com/goplus/llgo/internal/abi.(*Type).InterfaceType", 2 - %270 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %269, ptr @"github.com/goplus/llgo/internal/abi.(*Type).InterfaceType", 3 - %271 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %272 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %271, 1 - %273 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %272, ptr @"github.com/goplus/llgo/internal/abi.(*Type).IsClosure", 2 - %274 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %273, ptr @"github.com/goplus/llgo/internal/abi.(*Type).IsClosure", 3 - %275 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %276 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %275, 1 - %277 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %276, ptr @"github.com/goplus/llgo/internal/abi.(*Type).IsDirectIface", 2 - %278 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %277, ptr @"github.com/goplus/llgo/internal/abi.(*Type).IsDirectIface", 3 - %279 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %280 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %281 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %280, 1 - %282 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %281, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Key", 2 - %283 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %282, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Key", 3 - %284 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - %285 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %284, 1 - %286 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %285, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Kind", 2 - %287 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %286, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Kind", 3 - %288 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %289 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %288, 1 - %290 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %289, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Len", 2 - %291 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %290, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Len", 3 - %292 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - %293 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %294 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %293, 1 - %295 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %294, ptr @"github.com/goplus/llgo/internal/abi.(*Type).MapType", 2 - %296 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %295, ptr @"github.com/goplus/llgo/internal/abi.(*Type).MapType", 3 - %297 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %298 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %297, 1 - %299 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %298, ptr @"github.com/goplus/llgo/internal/abi.(*Type).NumMethod", 2 - %300 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %299, ptr @"github.com/goplus/llgo/internal/abi.(*Type).NumMethod", 3 - %301 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %302 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %301, 1 - %303 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %302, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Pointers", 2 - %304 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %303, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Pointers", 3 - %305 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %306 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %305, 1 - %307 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %306, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Size", 2 - %308 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %307, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Size", 3 - %309 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %310 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %309, 1 - %311 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %310, ptr @"github.com/goplus/llgo/internal/abi.(*Type).String", 2 - %312 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %311, ptr @"github.com/goplus/llgo/internal/abi.(*Type).String", 3 - %313 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - %314 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - %315 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %314, 1 - %316 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %315, ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType", 2 - %317 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %316, ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType", 3 - %318 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %319 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %318, 1 - %320 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %319, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Uncommon", 2 - %321 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %320, ptr @"github.com/goplus/llgo/internal/abi.(*Type).Uncommon", 3 - %322 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 920) - %323 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %189, ptr %323, align 8 - %324 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %229, ptr %324, align 8 - %325 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %233, ptr %325, align 8 - %326 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %238, ptr %326, align 8 - %327 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %243, ptr %327, align 8 - %328 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %248, ptr %328, align 8 - %329 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %252, ptr %329, align 8 - %330 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %257, ptr %330, align 8 - %331 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %261, ptr %331, align 8 - %332 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %265, ptr %332, align 8 - %333 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %270, ptr %333, align 8 - %334 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %274, ptr %334, align 8 - %335 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %278, ptr %335, align 8 - %336 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %283, ptr %336, align 8 - %337 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %287, ptr %337, align 8 - %338 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %291, ptr %338, align 8 - %339 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 16 - store %"github.com/goplus/llgo/internal/abi.Method" %296, ptr %339, align 8 - %340 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 17 - store %"github.com/goplus/llgo/internal/abi.Method" %300, ptr %340, align 8 - %341 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 18 - store %"github.com/goplus/llgo/internal/abi.Method" %304, ptr %341, align 8 - %342 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 19 - store %"github.com/goplus/llgo/internal/abi.Method" %308, ptr %342, align 8 - %343 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 20 - store %"github.com/goplus/llgo/internal/abi.Method" %312, ptr %343, align 8 - %344 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 21 - store %"github.com/goplus/llgo/internal/abi.Method" %317, ptr %344, align 8 - %345 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %322, i64 22 - store %"github.com/goplus/llgo/internal/abi.Method" %321, ptr %345, align 8 - %346 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %322, 0 - %347 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %346, i64 23, 1 - %348 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %347, i64 23, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %9, ptr %163, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %348) - br label %_llgo_32 - -_llgo_43: ; preds = %_llgo_41 - %349 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %221) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %349) - store ptr %349, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - br label %_llgo_44 - -_llgo_44: ; preds = %_llgo_43, %_llgo_41 - %350 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - %351 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - %352 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %353 = icmp eq ptr %352, null - br i1 %353, label %_llgo_45, label %_llgo_46 - -_llgo_45: ; preds = %_llgo_44 - %354 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %355 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %354, 0 - %356 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %355, i64 0, 1 - %357 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %356, i64 0, 2 - %358 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %359 = getelementptr ptr, ptr %358, i64 0 - store ptr %351, ptr %359, align 8 - %360 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %358, 0 - %361 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %360, i64 1, 1 - %362 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %361, i64 1, 2 - %363 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %357, %"github.com/goplus/llgo/internal/runtime.Slice" %362, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %363) - store ptr %363, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - br label %_llgo_46 - -_llgo_46: ; preds = %_llgo_45, %_llgo_44 - %364 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %365 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %364, 1 - %366 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %365, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ArrayType", 2 - %367 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %366, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ArrayType", 3 - %368 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @22, i64 7 }, i64 2, i64 8, i64 0, i64 0) - %369 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ChanDir", align 8 - %370 = icmp eq ptr %369, null - br i1 %370, label %_llgo_47, label %_llgo_48 - -_llgo_47: ; preds = %_llgo_46 - store ptr %368, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ChanDir", align 8 - br label %_llgo_48 - -_llgo_48: ; preds = %_llgo_47, %_llgo_46 - %371 = load ptr, ptr @_llgo_int, align 8 - br i1 %370, label %_llgo_49, label %_llgo_50 - -_llgo_49: ; preds = %_llgo_48 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %368, ptr %371, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - br label %_llgo_50 - -_llgo_50: ; preds = %_llgo_49, %_llgo_48 - %372 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ChanDir", align 8 - %373 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.ChanDir", align 8 - %374 = load ptr, ptr @"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4", align 8 - %375 = icmp eq ptr %374, null - br i1 %375, label %_llgo_51, label %_llgo_52 - -_llgo_51: ; preds = %_llgo_50 - %376 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %377 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %376, 0 - %378 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %377, i64 0, 1 - %379 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %378, i64 0, 2 - %380 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %381 = getelementptr ptr, ptr %380, i64 0 - store ptr %373, ptr %381, align 8 - %382 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %380, 0 - %383 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %382, i64 1, 1 - %384 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %383, i64 1, 2 - %385 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %379, %"github.com/goplus/llgo/internal/runtime.Slice" %384, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %385) - store ptr %385, ptr @"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4", align 8 - br label %_llgo_52 - -_llgo_52: ; preds = %_llgo_51, %_llgo_50 - %386 = load ptr, ptr @"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4", align 8 - %387 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %386, 1 - %388 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %387, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ChanDir", 2 - %389 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %388, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ChanDir", 3 - %390 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %391 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %392 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %393 = icmp eq ptr %392, null - br i1 %393, label %_llgo_53, label %_llgo_54 - -_llgo_53: ; preds = %_llgo_52 - %394 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %395 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %394, 0 - %396 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %395, i64 0, 1 - %397 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %396, i64 0, 2 - %398 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %399 = getelementptr ptr, ptr %398, i64 0 - store ptr %391, ptr %399, align 8 - %400 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %398, 0 - %401 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %400, i64 1, 1 - %402 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %401, i64 1, 2 - %403 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %397, %"github.com/goplus/llgo/internal/runtime.Slice" %402, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %403) - store ptr %403, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - br label %_llgo_54 - -_llgo_54: ; preds = %_llgo_53, %_llgo_52 - %404 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %405 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %404, 1 - %406 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %405, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Common", 2 - %407 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %406, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Common", 3 - %408 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @25, i64 6 }, i64 25, i64 40, i64 0, i64 3) - %409 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - %410 = icmp eq ptr %409, null - br i1 %410, label %_llgo_55, label %_llgo_56 - -_llgo_55: ; preds = %_llgo_54 - store ptr %408, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - br label %_llgo_56 - -_llgo_56: ; preds = %_llgo_55, %_llgo_54 - %411 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) - %412 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %413 = icmp eq ptr %412, null - br i1 %413, label %_llgo_57, label %_llgo_58 - -_llgo_57: ; preds = %_llgo_56 - store ptr %411, ptr @"_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - br label %_llgo_58 - -_llgo_58: ; preds = %_llgo_57, %_llgo_56 - %414 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %415 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %416 = load ptr, ptr @"[]*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %417 = icmp eq ptr %416, null - br i1 %417, label %_llgo_59, label %_llgo_60 - -_llgo_59: ; preds = %_llgo_58 - %418 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %415) - %419 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %418) - store ptr %419, ptr @"[]*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - br label %_llgo_60 - -_llgo_60: ; preds = %_llgo_59, %_llgo_58 - %420 = load ptr, ptr @"[]*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %421 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %422 = load ptr, ptr @"[]*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %423 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %424 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %425 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %426 = load ptr, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", align 8 - %427 = icmp eq ptr %426, null - br i1 %427, label %_llgo_61, label %_llgo_62 - -_llgo_61: ; preds = %_llgo_60 - %428 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, ptr %423, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 true) - %429 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %424) - %430 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %429) - %431 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @27, i64 2 }, ptr %430, i64 72, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %432 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %425) - %433 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %432) - %434 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @28, i64 3 }, ptr %433, i64 96, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %435 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) - %436 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %435, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %428, ptr %436, align 8 - %437 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %435, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %431, ptr %437, align 8 - %438 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %435, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %434, ptr %438, align 8 - %439 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %435, 0 - %440 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %439, i64 3, 1 - %441 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %440, i64 3, 2 - %442 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 120, %"github.com/goplus/llgo/internal/runtime.Slice" %441) - store ptr %442, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", align 8 - br label %_llgo_62 - -_llgo_62: ; preds = %_llgo_61, %_llgo_60 - %443 = load ptr, ptr @"_llgo_struct$wRu7InfmQeSkq7akLN3soDNninnS1dQajawdYvmHbzw", align 8 - br i1 %413, label %_llgo_63, label %_llgo_64 - -_llgo_63: ; preds = %_llgo_62 - %444 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %445 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %444, 1 - %446 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %445, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Align", 2 - %447 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %446, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Align", 3 - %448 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - %449 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %450 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %449, 1 - %451 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %450, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ArrayType", 2 - %452 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %451, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ArrayType", 3 - %453 = load ptr, ptr @"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4", align 8 - %454 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %453, 1 - %455 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %454, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ChanDir", 2 - %456 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %455, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ChanDir", 3 - %457 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %458 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %459 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %458, 1 - %460 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %459, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Common", 2 - %461 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %460, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Common", 3 - %462 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %463 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %464 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @19, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %463, 1 - %465 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %464, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Elem", 2 - %466 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %465, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Elem", 3 - %467 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @25, i64 6 }, i64 25, i64 40, i64 0, i64 3) - %468 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - %469 = icmp eq ptr %468, null - br i1 %469, label %_llgo_65, label %_llgo_66 - -_llgo_64: ; preds = %_llgo_90, %_llgo_62 - %470 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %471 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %472 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) - %473 = load ptr, ptr @"_llgo_struct$SDp3TNnYnxb26MhB1v8VMbmY71BX77YOaY7lgS1cFx0", align 8 - %474 = icmp eq ptr %473, null - br i1 %474, label %_llgo_145, label %_llgo_146 - -_llgo_65: ; preds = %_llgo_63 - %475 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %467) - store ptr %475, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - br label %_llgo_66 - -_llgo_66: ; preds = %_llgo_65, %_llgo_63 - %476 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - %477 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - %478 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 - %479 = icmp eq ptr %478, null - br i1 %479, label %_llgo_67, label %_llgo_68 - -_llgo_67: ; preds = %_llgo_66 - %480 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %481 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %480, 0 - %482 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %481, i64 0, 1 - %483 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %482, i64 0, 2 - %484 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %485 = getelementptr ptr, ptr %484, i64 0 - store ptr %477, ptr %485, align 8 - %486 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %484, 0 - %487 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %486, i64 1, 1 - %488 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %487, i64 1, 2 - %489 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %483, %"github.com/goplus/llgo/internal/runtime.Slice" %488, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %489) - store ptr %489, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 - br label %_llgo_68 - -_llgo_68: ; preds = %_llgo_67, %_llgo_66 - %490 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 - %491 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %490, 1 - %492 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %491, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ExportedMethods", 2 - %493 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %492, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ExportedMethods", 3 - %494 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %495 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %494, 1 - %496 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %495, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FieldAlign", 2 - %497 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %496, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FieldAlign", 3 - %498 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) - %499 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %500 = icmp eq ptr %499, null - br i1 %500, label %_llgo_69, label %_llgo_70 - -_llgo_69: ; preds = %_llgo_68 - %501 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %498) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %501) - store ptr %501, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - br label %_llgo_70 - -_llgo_70: ; preds = %_llgo_69, %_llgo_68 - %502 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %503 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %504 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %505 = icmp eq ptr %504, null - br i1 %505, label %_llgo_71, label %_llgo_72 - -_llgo_71: ; preds = %_llgo_70 - %506 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %507 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %506, 0 - %508 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %507, i64 0, 1 - %509 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %508, i64 0, 2 - %510 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %511 = getelementptr ptr, ptr %510, i64 0 - store ptr %503, ptr %511, align 8 - %512 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %510, 0 - %513 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %512, i64 1, 1 - %514 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %513, i64 1, 2 - %515 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %509, %"github.com/goplus/llgo/internal/runtime.Slice" %514, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %515) - store ptr %515, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - br label %_llgo_72 - -_llgo_72: ; preds = %_llgo_71, %_llgo_70 - %516 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %517 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %516, 1 - %518 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %517, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FuncType", 2 - %519 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %518, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FuncType", 3 - %520 = load ptr, ptr @_llgo_bool, align 8 - %521 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %522 = icmp eq ptr %521, null - br i1 %522, label %_llgo_73, label %_llgo_74 - -_llgo_73: ; preds = %_llgo_72 - %523 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %524 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %523, 0 - %525 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %524, i64 0, 1 - %526 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %525, i64 0, 2 - %527 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %528 = getelementptr ptr, ptr %527, i64 0 - store ptr %520, ptr %528, align 8 - %529 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %527, 0 - %530 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %529, i64 1, 1 - %531 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %530, i64 1, 2 - %532 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %526, %"github.com/goplus/llgo/internal/runtime.Slice" %531, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %532) - store ptr %532, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - br label %_llgo_74 - -_llgo_74: ; preds = %_llgo_73, %_llgo_72 - %533 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %534 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %533, 1 - %535 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %534, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).HasName", 2 - %536 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %535, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).HasName", 3 - %537 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %538 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %537, 1 - %539 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %538, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IfaceIndir", 2 - %540 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %539, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IfaceIndir", 3 - %541 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @32, i64 13 }, i64 25, i64 120, i64 0, i64 23) - %542 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - %543 = icmp eq ptr %542, null - br i1 %543, label %_llgo_75, label %_llgo_76 - -_llgo_75: ; preds = %_llgo_74 - store ptr %541, ptr @"_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - br label %_llgo_76 - -_llgo_76: ; preds = %_llgo_75, %_llgo_74 - %544 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @33, i64 7 }, i64 25, i64 24, i64 0, i64 3) - %545 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Imethod", align 8 - %546 = icmp eq ptr %545, null - br i1 %546, label %_llgo_77, label %_llgo_78 - -_llgo_77: ; preds = %_llgo_76 - store ptr %544, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Imethod", align 8 - br label %_llgo_78 - -_llgo_78: ; preds = %_llgo_77, %_llgo_76 - %547 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %548 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) - %549 = load ptr, ptr @"_llgo_struct$-SVMNS9vOT5F9q4yodRiL9MFhdPf0tfZ2Cx2o7KjSDw", align 8 - %550 = icmp eq ptr %549, null - br i1 %550, label %_llgo_79, label %_llgo_80 - -_llgo_79: ; preds = %_llgo_78 - %551 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %552 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @34, i64 5 }, ptr %551, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %553 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %548) - %554 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @35, i64 4 }, ptr %553, i64 16, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %555 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %556 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %555, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %552, ptr %556, align 8 - %557 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %555, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %554, ptr %557, align 8 - %558 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %555, 0 - %559 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %558, i64 2, 1 - %560 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %559, i64 2, 2 - %561 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 24, %"github.com/goplus/llgo/internal/runtime.Slice" %560) - store ptr %561, ptr @"_llgo_struct$-SVMNS9vOT5F9q4yodRiL9MFhdPf0tfZ2Cx2o7KjSDw", align 8 - br label %_llgo_80 - -_llgo_80: ; preds = %_llgo_79, %_llgo_78 - %562 = load ptr, ptr @"_llgo_struct$-SVMNS9vOT5F9q4yodRiL9MFhdPf0tfZ2Cx2o7KjSDw", align 8 - br i1 %546, label %_llgo_81, label %_llgo_82 - -_llgo_81: ; preds = %_llgo_80 - %563 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %564 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @36, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %563, 1 - %565 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %564, ptr @"github.com/goplus/llgo/internal/abi.(*Imethod).Exported", 2 - %566 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %565, ptr @"github.com/goplus/llgo/internal/abi.(*Imethod).Exported", 3 - %567 = load ptr, ptr @_llgo_string, align 8 - %568 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %569 = icmp eq ptr %568, null - br i1 %569, label %_llgo_83, label %_llgo_84 - -_llgo_82: ; preds = %_llgo_84, %_llgo_80 - %570 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Imethod", align 8 - %571 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @33, i64 7 }, i64 25, i64 24, i64 0, i64 3) - %572 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Imethod", align 8 - %573 = icmp eq ptr %572, null - br i1 %573, label %_llgo_85, label %_llgo_86 - -_llgo_83: ; preds = %_llgo_81 - %574 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %575 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %574, 0 - %576 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %575, i64 0, 1 - %577 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %576, i64 0, 2 - %578 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %579 = getelementptr ptr, ptr %578, i64 0 - store ptr %567, ptr %579, align 8 - %580 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %578, 0 - %581 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %580, i64 1, 1 - %582 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %581, i64 1, 2 - %583 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %577, %"github.com/goplus/llgo/internal/runtime.Slice" %582, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %583) - store ptr %583, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - br label %_llgo_84 - -_llgo_84: ; preds = %_llgo_83, %_llgo_81 - %584 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %585 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @37, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %584, 1 - %586 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %585, ptr @"github.com/goplus/llgo/internal/abi.(*Imethod).Name", 2 - %587 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %586, ptr @"github.com/goplus/llgo/internal/abi.(*Imethod).Name", 3 - %588 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %589 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @38, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %588, 1 - %590 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %589, ptr @"github.com/goplus/llgo/internal/abi.(*Imethod).PkgPath", 2 - %591 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %590, ptr @"github.com/goplus/llgo/internal/abi.(*Imethod).PkgPath", 3 - %592 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 120) - %593 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %592, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %566, ptr %593, align 8 - %594 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %592, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %587, ptr %594, align 8 - %595 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %592, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %591, ptr %595, align 8 - %596 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %592, 0 - %597 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %596, i64 3, 1 - %598 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %597, i64 3, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %544, ptr %562, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %598) - br label %_llgo_82 - -_llgo_85: ; preds = %_llgo_82 - %599 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %571) - store ptr %599, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Imethod", align 8 - br label %_llgo_86 - -_llgo_86: ; preds = %_llgo_85, %_llgo_82 - %600 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Imethod", align 8 - %601 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %602 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @33, i64 7 }, i64 25, i64 24, i64 0, i64 3) - %603 = load ptr, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 - %604 = icmp eq ptr %603, null - br i1 %604, label %_llgo_87, label %_llgo_88 - -_llgo_87: ; preds = %_llgo_86 - %605 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, ptr %601, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 true) - %606 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %607 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @39, i64 8 }, ptr %606, i64 72, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %608 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %602) - %609 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @40, i64 7 }, ptr %608, i64 88, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %610 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) - %611 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %610, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %605, ptr %611, align 8 - %612 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %610, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %607, ptr %612, align 8 - %613 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %610, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %609, ptr %613, align 8 - %614 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %610, 0 - %615 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %614, i64 3, 1 - %616 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %615, i64 3, 2 - %617 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 112, %"github.com/goplus/llgo/internal/runtime.Slice" %616) - store ptr %617, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 - br label %_llgo_88 - -_llgo_88: ; preds = %_llgo_87, %_llgo_86 - %618 = load ptr, ptr @"_llgo_struct$mWxYYevLxpL1wQyiQtAy4OszkqTlHtrmEcPpzW9Air4", align 8 - br i1 %543, label %_llgo_89, label %_llgo_90 - -_llgo_89: ; preds = %_llgo_88 - %619 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %620 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %619, 1 - %621 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %620, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Align", 2 - %622 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %621, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Align", 3 - %623 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - %624 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %625 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %624, 1 - %626 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %625, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ArrayType", 2 - %627 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %626, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ArrayType", 3 - %628 = load ptr, ptr @"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4", align 8 - %629 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %628, 1 - %630 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %629, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ChanDir", 2 - %631 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %630, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ChanDir", 3 - %632 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %633 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %634 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %633, 1 - %635 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %634, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Common", 2 - %636 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %635, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Common", 3 - %637 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %638 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %639 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @19, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %638, 1 - %640 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %639, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Elem", 2 - %641 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %640, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Elem", 3 - %642 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - %643 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 - %644 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %643, 1 - %645 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %644, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ExportedMethods", 2 - %646 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %645, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ExportedMethods", 3 - %647 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %648 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %647, 1 - %649 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %648, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FieldAlign", 2 - %650 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %649, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FieldAlign", 3 - %651 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %652 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %653 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %652, 1 - %654 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %653, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FuncType", 2 - %655 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %654, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FuncType", 3 - %656 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %657 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %656, 1 - %658 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %657, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).HasName", 2 - %659 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %658, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).HasName", 3 - %660 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %661 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %660, 1 - %662 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %661, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IfaceIndir", 2 - %663 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %662, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IfaceIndir", 3 - %664 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @32, i64 13 }, i64 25, i64 120, i64 0, i64 23) - %665 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - %666 = icmp eq ptr %665, null - br i1 %666, label %_llgo_91, label %_llgo_92 - -_llgo_90: ; preds = %_llgo_110, %_llgo_88 - %667 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - %668 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - %669 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %670 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %669, 1 - %671 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %670, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).InterfaceType", 2 - %672 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %671, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).InterfaceType", 3 - %673 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %674 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %673, 1 - %675 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %674, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IsClosure", 2 - %676 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %675, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IsClosure", 3 - %677 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %678 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %677, 1 - %679 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %678, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IsDirectIface", 2 - %680 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %679, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).IsDirectIface", 3 - %681 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %682 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %683 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %682, 1 - %684 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %683, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Key", 2 - %685 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %684, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Key", 3 - %686 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - %687 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %686, 1 - %688 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %687, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Kind", 2 - %689 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %688, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Kind", 3 - %690 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %691 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %690, 1 - %692 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %691, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Len", 2 - %693 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %692, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Len", 3 - %694 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - %695 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %696 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %695, 1 - %697 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %696, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).MapType", 2 - %698 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %697, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).MapType", 3 - %699 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %700 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %699, 1 - %701 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %700, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).NumMethod", 2 - %702 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %701, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).NumMethod", 3 - %703 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %704 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %703, 1 - %705 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %704, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Pointers", 2 - %706 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %705, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Pointers", 3 - %707 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %708 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %707, 1 - %709 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %708, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Size", 2 - %710 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %709, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Size", 3 - %711 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %712 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %711, 1 - %713 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %712, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).String", 2 - %714 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %713, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).String", 3 - %715 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - %716 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - %717 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %716, 1 - %718 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %717, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).StructType", 2 - %719 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %718, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).StructType", 3 - %720 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %721 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %720, 1 - %722 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %721, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Uncommon", 2 - %723 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %722, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Uncommon", 3 - %724 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %725 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @74, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %724, 1 - %726 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %725, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Variadic", 2 - %727 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %726, ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Variadic", 3 - %728 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 960) - %729 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %447, ptr %729, align 8 - %730 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %452, ptr %730, align 8 - %731 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %456, ptr %731, align 8 - %732 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %461, ptr %732, align 8 - %733 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %466, ptr %733, align 8 - %734 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %493, ptr %734, align 8 - %735 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %497, ptr %735, align 8 - %736 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %519, ptr %736, align 8 - %737 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %536, ptr %737, align 8 - %738 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %540, ptr %738, align 8 - %739 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %672, ptr %739, align 8 - %740 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %676, ptr %740, align 8 - %741 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %680, ptr %741, align 8 - %742 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %685, ptr %742, align 8 - %743 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %689, ptr %743, align 8 - %744 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %693, ptr %744, align 8 - %745 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 16 - store %"github.com/goplus/llgo/internal/abi.Method" %698, ptr %745, align 8 - %746 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 17 - store %"github.com/goplus/llgo/internal/abi.Method" %702, ptr %746, align 8 - %747 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 18 - store %"github.com/goplus/llgo/internal/abi.Method" %706, ptr %747, align 8 - %748 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 19 - store %"github.com/goplus/llgo/internal/abi.Method" %710, ptr %748, align 8 - %749 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 20 - store %"github.com/goplus/llgo/internal/abi.Method" %714, ptr %749, align 8 - %750 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 21 - store %"github.com/goplus/llgo/internal/abi.Method" %719, ptr %750, align 8 - %751 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 22 - store %"github.com/goplus/llgo/internal/abi.Method" %723, ptr %751, align 8 - %752 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %728, i64 23 - store %"github.com/goplus/llgo/internal/abi.Method" %727, ptr %752, align 8 - %753 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %728, 0 - %754 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %753, i64 24, 1 - %755 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %754, i64 24, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %411, ptr %443, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %755) - br label %_llgo_64 - -_llgo_91: ; preds = %_llgo_89 - %756 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %664) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %756) - store ptr %756, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - br label %_llgo_92 - -_llgo_92: ; preds = %_llgo_91, %_llgo_89 - %757 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - %758 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - %759 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %760 = icmp eq ptr %759, null - br i1 %760, label %_llgo_93, label %_llgo_94 - -_llgo_93: ; preds = %_llgo_92 - %761 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %762 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %761, 0 - %763 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %762, i64 0, 1 - %764 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %763, i64 0, 2 - %765 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %766 = getelementptr ptr, ptr %765, i64 0 - store ptr %758, ptr %766, align 8 - %767 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %765, 0 - %768 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %767, i64 1, 1 - %769 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %768, i64 1, 2 - %770 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %764, %"github.com/goplus/llgo/internal/runtime.Slice" %769, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %770) - store ptr %770, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - br label %_llgo_94 - -_llgo_94: ; preds = %_llgo_93, %_llgo_92 - %771 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %772 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %771, 1 - %773 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %772, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).InterfaceType", 2 - %774 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %773, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).InterfaceType", 3 - %775 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %776 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %775, 1 - %777 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %776, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IsClosure", 2 - %778 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %777, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IsClosure", 3 - %779 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %780 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %779, 1 - %781 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %780, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IsDirectIface", 2 - %782 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %781, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IsDirectIface", 3 - %783 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %784 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %785 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %784, 1 - %786 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %785, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Key", 2 - %787 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %786, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Key", 3 - %788 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @44, i64 4 }, i64 7, i64 8, i64 1, i64 1) - %789 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 - %790 = icmp eq ptr %789, null - br i1 %790, label %_llgo_95, label %_llgo_96 - -_llgo_95: ; preds = %_llgo_94 - store ptr %788, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 - br label %_llgo_96 - -_llgo_96: ; preds = %_llgo_95, %_llgo_94 - %791 = load ptr, ptr @_llgo_uint, align 8 - %792 = icmp eq ptr %791, null - br i1 %792, label %_llgo_97, label %_llgo_98 - -_llgo_97: ; preds = %_llgo_96 - %793 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 39) - store ptr %793, ptr @_llgo_uint, align 8 - br label %_llgo_98 - -_llgo_98: ; preds = %_llgo_97, %_llgo_96 - %794 = load ptr, ptr @_llgo_uint, align 8 - br i1 %790, label %_llgo_99, label %_llgo_100 - -_llgo_99: ; preds = %_llgo_98 - %795 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %796 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %795, 1 - %797 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %796, ptr @"github.com/goplus/llgo/internal/abi.(*Kind).String", 2 - %798 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %797, ptr @"github.com/goplus/llgo/internal/abi.(*Kind).String", 3 - %799 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %795, 1 - %800 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %799, ptr @"github.com/goplus/llgo/internal/abi.(*Kind).String", 2 - %801 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %800, ptr @"github.com/goplus/llgo/internal/abi.Kind.String", 3 - %802 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %803 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %802, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %801, ptr %803, align 8 - %804 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %802, 0 - %805 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %804, i64 1, 1 - %806 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %805, i64 1, 2 - %807 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %808 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %807, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %798, ptr %808, align 8 - %809 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %807, 0 - %810 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %809, i64 1, 1 - %811 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %810, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %788, ptr %794, %"github.com/goplus/llgo/internal/runtime.Slice" %806, %"github.com/goplus/llgo/internal/runtime.Slice" %811) - br label %_llgo_100 - -_llgo_100: ; preds = %_llgo_99, %_llgo_98 - %812 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 - %813 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Kind", align 8 - %814 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - %815 = icmp eq ptr %814, null - br i1 %815, label %_llgo_101, label %_llgo_102 - -_llgo_101: ; preds = %_llgo_100 - %816 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %817 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %816, 0 - %818 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %817, i64 0, 1 - %819 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %818, i64 0, 2 - %820 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %821 = getelementptr ptr, ptr %820, i64 0 - store ptr %813, ptr %821, align 8 - %822 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %820, 0 - %823 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %822, i64 1, 1 - %824 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %823, i64 1, 2 - %825 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %819, %"github.com/goplus/llgo/internal/runtime.Slice" %824, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %825) - store ptr %825, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - br label %_llgo_102 - -_llgo_102: ; preds = %_llgo_101, %_llgo_100 - %826 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - %827 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %826, 1 - %828 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %827, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Kind", 2 - %829 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %828, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Kind", 3 - %830 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %831 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %830, 1 - %832 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %831, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Len", 2 - %833 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %832, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Len", 3 - %834 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @46, i64 7 }, i64 25, i64 136, i64 0, i64 26) - %835 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - %836 = icmp eq ptr %835, null - br i1 %836, label %_llgo_103, label %_llgo_104 - -_llgo_103: ; preds = %_llgo_102 - store ptr %834, ptr @"_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - br label %_llgo_104 - -_llgo_104: ; preds = %_llgo_103, %_llgo_102 - %837 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %838 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %839 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %840 = load ptr, ptr @_llgo_Pointer, align 8 - %841 = load ptr, ptr @_llgo_uintptr, align 8 - %842 = load ptr, ptr @_llgo_uintptr, align 8 - %843 = load ptr, ptr @"_llgo_func$ahHMZCcDhfW-lrs446sPkiW0NoVa2vpmK_wKarVa_20", align 8 - %844 = icmp eq ptr %843, null - br i1 %844, label %_llgo_105, label %_llgo_106 - -_llgo_105: ; preds = %_llgo_104 - %845 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %846 = getelementptr ptr, ptr %845, i64 0 - store ptr %840, ptr %846, align 8 - %847 = getelementptr ptr, ptr %845, i64 1 - store ptr %841, ptr %847, align 8 - %848 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %845, 0 - %849 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %848, i64 2, 1 - %850 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %849, i64 2, 2 - %851 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %852 = getelementptr ptr, ptr %851, i64 0 - store ptr %842, ptr %852, align 8 - %853 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %851, 0 - %854 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %853, i64 1, 1 - %855 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %854, i64 1, 2 - %856 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %850, %"github.com/goplus/llgo/internal/runtime.Slice" %855, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %856) - store ptr %856, ptr @"_llgo_func$ahHMZCcDhfW-lrs446sPkiW0NoVa2vpmK_wKarVa_20", align 8 - br label %_llgo_106 - -_llgo_106: ; preds = %_llgo_105, %_llgo_104 - %857 = load ptr, ptr @"_llgo_func$ahHMZCcDhfW-lrs446sPkiW0NoVa2vpmK_wKarVa_20", align 8 - %858 = load ptr, ptr @_llgo_Pointer, align 8 - %859 = load ptr, ptr @_llgo_uintptr, align 8 - %860 = load ptr, ptr @_llgo_uintptr, align 8 - %861 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %862 = getelementptr ptr, ptr %861, i64 0 - store ptr %858, ptr %862, align 8 - %863 = getelementptr ptr, ptr %861, i64 1 - store ptr %859, ptr %863, align 8 - %864 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %861, 0 - %865 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %864, i64 2, 1 - %866 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %865, i64 2, 2 - %867 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %868 = getelementptr ptr, ptr %867, i64 0 - store ptr %860, ptr %868, align 8 - %869 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %867, 0 - %870 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %869, i64 1, 1 - %871 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %870, i64 1, 2 - %872 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %866, %"github.com/goplus/llgo/internal/runtime.Slice" %871, i1 false) - %873 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 2 }, ptr %872, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %874 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %875 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 5 }, ptr %874, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %876 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %877 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %876, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %873, ptr %877, align 8 - %878 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %876, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %875, ptr %878, align 8 - %879 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %876, 0 - %880 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %879, i64 2, 1 - %881 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %880, i64 2, 2 - %882 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %881) - store ptr %882, ptr @"main.struct$Oy3XhjARgY_pH1HU6oBj0nSC2Qs1A6CU4bRajpBttZc", align 8 - %883 = load ptr, ptr @"main.struct$Oy3XhjARgY_pH1HU6oBj0nSC2Qs1A6CU4bRajpBttZc", align 8 - %884 = load ptr, ptr @_llgo_uint16, align 8 - %885 = icmp eq ptr %884, null - br i1 %885, label %_llgo_107, label %_llgo_108 - -_llgo_107: ; preds = %_llgo_106 - %886 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 41) - store ptr %886, ptr @_llgo_uint16, align 8 - br label %_llgo_108 - -_llgo_108: ; preds = %_llgo_107, %_llgo_106 - %887 = load ptr, ptr @_llgo_uint16, align 8 - %888 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %889 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %890 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %891 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %892 = load ptr, ptr @_llgo_Pointer, align 8 - %893 = load ptr, ptr @_llgo_uintptr, align 8 - %894 = load ptr, ptr @_llgo_uintptr, align 8 - %895 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, ptr %888, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 true) - %896 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %889) - %897 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @43, i64 3 }, ptr %896, i64 72, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %898 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %890) - %899 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @19, i64 4 }, ptr %898, i64 80, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %900 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %891) - %901 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @47, i64 6 }, ptr %900, i64 88, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %902 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - %903 = getelementptr ptr, ptr %902, i64 0 - store ptr %892, ptr %903, align 8 - %904 = getelementptr ptr, ptr %902, i64 1 - store ptr %893, ptr %904, align 8 - %905 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %902, 0 - %906 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %905, i64 2, 1 - %907 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %906, i64 2, 2 - %908 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %909 = getelementptr ptr, ptr %908, i64 0 - store ptr %894, ptr %909, align 8 - %910 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %908, 0 - %911 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %910, i64 1, 1 - %912 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %911, i64 1, 2 - %913 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %907, %"github.com/goplus/llgo/internal/runtime.Slice" %912, i1 false) - %914 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 2 }, ptr %913, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %915 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %916 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 5 }, ptr %915, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %917 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %918 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %917, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %914, ptr %918, align 8 - %919 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %917, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %916, ptr %919, align 8 - %920 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %917, 0 - %921 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %920, i64 2, 1 - %922 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %921, i64 2, 2 - %923 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %922) - %924 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @48, i64 6 }, ptr %923, i64 96, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %925 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %926 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @49, i64 7 }, ptr %925, i64 112, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %927 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %928 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @50, i64 9 }, ptr %927, i64 113, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %929 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 41) - %930 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @51, i64 10 }, ptr %929, i64 114, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %931 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 42) - %932 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @52, i64 5 }, ptr %931, i64 116, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %933 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 504) - %934 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %933, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %895, ptr %934, align 8 - %935 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %933, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %897, ptr %935, align 8 - %936 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %933, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %899, ptr %936, align 8 - %937 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %933, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %901, ptr %937, align 8 - %938 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %933, i64 4 - store %"github.com/goplus/llgo/internal/abi.StructField" %924, ptr %938, align 8 - %939 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %933, i64 5 - store %"github.com/goplus/llgo/internal/abi.StructField" %926, ptr %939, align 8 - %940 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %933, i64 6 - store %"github.com/goplus/llgo/internal/abi.StructField" %928, ptr %940, align 8 - %941 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %933, i64 7 - store %"github.com/goplus/llgo/internal/abi.StructField" %930, ptr %941, align 8 - %942 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %933, i64 8 - store %"github.com/goplus/llgo/internal/abi.StructField" %932, ptr %942, align 8 - %943 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %933, 0 - %944 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %943, i64 9, 1 - %945 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %944, i64 9, 2 - %946 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 120, %"github.com/goplus/llgo/internal/runtime.Slice" %945) - store ptr %946, ptr @"main.struct$NNQFCWl7PM2tdO3Cxl4doIs1_JQl2vsUbnXLc46j14k", align 8 - %947 = load ptr, ptr @"main.struct$NNQFCWl7PM2tdO3Cxl4doIs1_JQl2vsUbnXLc46j14k", align 8 - br i1 %836, label %_llgo_109, label %_llgo_110 - -_llgo_109: ; preds = %_llgo_108 - %948 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %949 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %948, 1 - %950 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %949, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Align", 2 - %951 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %950, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Align", 3 - %952 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - %953 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %954 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %953, 1 - %955 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %954, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ArrayType", 2 - %956 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %955, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ArrayType", 3 - %957 = load ptr, ptr @"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4", align 8 - %958 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %957, 1 - %959 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %958, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ChanDir", 2 - %960 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %959, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ChanDir", 3 - %961 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %962 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %963 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %962, 1 - %964 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %963, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Common", 2 - %965 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %964, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Common", 3 - %966 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - %967 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 - %968 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %967, 1 - %969 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %968, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ExportedMethods", 2 - %970 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %969, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ExportedMethods", 3 - %971 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %972 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %971, 1 - %973 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %972, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FieldAlign", 2 - %974 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %973, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FieldAlign", 3 - %975 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %976 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %977 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %976, 1 - %978 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %977, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FuncType", 2 - %979 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %978, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FuncType", 3 - %980 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %981 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %980, 1 - %982 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %981, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HasName", 2 - %983 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %982, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HasName", 3 - %984 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %985 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @53, i64 14 }, ptr undef, ptr undef, ptr undef }, ptr %984, 1 - %986 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %985, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HashMightPanic", 2 - %987 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %986, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).HashMightPanic", 3 - %988 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %989 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %988, 1 - %990 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %989, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IfaceIndir", 2 - %991 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %990, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IfaceIndir", 3 - %992 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %993 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @54, i64 12 }, ptr undef, ptr undef, ptr undef }, ptr %992, 1 - %994 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %993, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectElem", 2 - %995 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %994, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectElem", 3 - %996 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %997 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @55, i64 11 }, ptr undef, ptr undef, ptr undef }, ptr %996, 1 - %998 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %997, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectKey", 2 - %999 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %998, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectKey", 3 - %1000 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - %1001 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %1002 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1001, 1 - %1003 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1002, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).InterfaceType", 2 - %1004 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1003, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).InterfaceType", 3 - %1005 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1006 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1005, 1 - %1007 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1006, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IsClosure", 2 - %1008 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1007, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IsClosure", 3 - %1009 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1010 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1009, 1 - %1011 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1010, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IsDirectIface", 2 - %1012 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1011, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).IsDirectIface", 3 - %1013 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - %1014 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1013, 1 - %1015 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1014, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Kind", 2 - %1016 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1015, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Kind", 3 - %1017 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1018 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %1017, 1 - %1019 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1018, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Len", 2 - %1020 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1019, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Len", 3 - %1021 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @46, i64 7 }, i64 25, i64 136, i64 0, i64 26) - %1022 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - %1023 = icmp eq ptr %1022, null - br i1 %1023, label %_llgo_111, label %_llgo_112 - -_llgo_110: ; preds = %_llgo_130, %_llgo_108 - %1024 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - %1025 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - %1026 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %1027 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1026, 1 - %1028 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1027, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).MapType", 2 - %1029 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1028, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).MapType", 3 - %1030 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1031 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1030, 1 - %1032 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1031, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).NumMethod", 2 - %1033 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1032, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).NumMethod", 3 - %1034 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1035 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1034, 1 - %1036 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1035, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Pointers", 2 - %1037 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1036, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Pointers", 3 - %1038 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1039 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1038, 1 - %1040 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1039, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Size", 2 - %1041 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1040, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Size", 3 - %1042 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1043 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1042, 1 - %1044 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1043, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).String", 2 - %1045 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1044, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).String", 3 - %1046 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - %1047 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - %1048 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1047, 1 - %1049 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1048, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).StructType", 2 - %1050 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1049, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).StructType", 3 - %1051 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %1052 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1051, 1 - %1053 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1052, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Uncommon", 2 - %1054 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1053, ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Uncommon", 3 - %1055 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 920) - %1056 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %622, ptr %1056, align 8 - %1057 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %627, ptr %1057, align 8 - %1058 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %631, ptr %1058, align 8 - %1059 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %636, ptr %1059, align 8 - %1060 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %641, ptr %1060, align 8 - %1061 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %646, ptr %1061, align 8 - %1062 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %650, ptr %1062, align 8 - %1063 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %655, ptr %1063, align 8 - %1064 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %659, ptr %1064, align 8 - %1065 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %663, ptr %1065, align 8 - %1066 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %774, ptr %1066, align 8 - %1067 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %778, ptr %1067, align 8 - %1068 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %782, ptr %1068, align 8 - %1069 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %787, ptr %1069, align 8 - %1070 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %829, ptr %1070, align 8 - %1071 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %833, ptr %1071, align 8 - %1072 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 16 - store %"github.com/goplus/llgo/internal/abi.Method" %1029, ptr %1072, align 8 - %1073 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 17 - store %"github.com/goplus/llgo/internal/abi.Method" %1033, ptr %1073, align 8 - %1074 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 18 - store %"github.com/goplus/llgo/internal/abi.Method" %1037, ptr %1074, align 8 - %1075 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 19 - store %"github.com/goplus/llgo/internal/abi.Method" %1041, ptr %1075, align 8 - %1076 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 20 - store %"github.com/goplus/llgo/internal/abi.Method" %1045, ptr %1076, align 8 - %1077 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 21 - store %"github.com/goplus/llgo/internal/abi.Method" %1050, ptr %1077, align 8 - %1078 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1055, i64 22 - store %"github.com/goplus/llgo/internal/abi.Method" %1054, ptr %1078, align 8 - %1079 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1055, 0 - %1080 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1079, i64 23, 1 - %1081 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1080, i64 23, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %541, ptr %618, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1081) - br label %_llgo_90 - -_llgo_111: ; preds = %_llgo_109 - %1082 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1021) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1082) - store ptr %1082, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - br label %_llgo_112 - -_llgo_112: ; preds = %_llgo_111, %_llgo_109 - %1083 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - %1084 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - %1085 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %1086 = icmp eq ptr %1085, null - br i1 %1086, label %_llgo_113, label %_llgo_114 - -_llgo_113: ; preds = %_llgo_112 - %1087 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %1088 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1087, 0 - %1089 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1088, i64 0, 1 - %1090 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1089, i64 0, 2 - %1091 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %1092 = getelementptr ptr, ptr %1091, i64 0 - store ptr %1084, ptr %1092, align 8 - %1093 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1091, 0 - %1094 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1093, i64 1, 1 - %1095 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1094, i64 1, 2 - %1096 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1090, %"github.com/goplus/llgo/internal/runtime.Slice" %1095, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1096) - store ptr %1096, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - br label %_llgo_114 - -_llgo_114: ; preds = %_llgo_113, %_llgo_112 - %1097 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %1098 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1097, 1 - %1099 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1098, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).MapType", 2 - %1100 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1099, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).MapType", 3 - %1101 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1102 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @56, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1101, 1 - %1103 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1102, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).NeedKeyUpdate", 2 - %1104 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1103, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).NeedKeyUpdate", 3 - %1105 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1106 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1105, 1 - %1107 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1106, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).NumMethod", 2 - %1108 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1107, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).NumMethod", 3 - %1109 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1110 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1109, 1 - %1111 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1110, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Pointers", 2 - %1112 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1111, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Pointers", 3 - %1113 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1114 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @59, i64 12 }, ptr undef, ptr undef, ptr undef }, ptr %1113, 1 - %1115 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1114, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ReflexiveKey", 2 - %1116 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1115, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ReflexiveKey", 3 - %1117 = load ptr, ptr @_llgo_uintptr, align 8 - %1118 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1119 = icmp eq ptr %1118, null - br i1 %1119, label %_llgo_115, label %_llgo_116 - -_llgo_115: ; preds = %_llgo_114 - %1120 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %1121 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1120, 0 - %1122 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1121, i64 0, 1 - %1123 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1122, i64 0, 2 - %1124 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %1125 = getelementptr ptr, ptr %1124, i64 0 - store ptr %1117, ptr %1125, align 8 - %1126 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1124, 0 - %1127 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1126, i64 1, 1 - %1128 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1127, i64 1, 2 - %1129 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1123, %"github.com/goplus/llgo/internal/runtime.Slice" %1128, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1129) - store ptr %1129, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - br label %_llgo_116 - -_llgo_116: ; preds = %_llgo_115, %_llgo_114 - %1130 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1131 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1130, 1 - %1132 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1131, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Size", 2 - %1133 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1132, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Size", 3 - %1134 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1135 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1134, 1 - %1136 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1135, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).String", 2 - %1137 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1136, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).String", 3 - %1138 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @61, i64 10 }, i64 25, i64 120, i64 0, i64 23) - %1139 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - %1140 = icmp eq ptr %1139, null - br i1 %1140, label %_llgo_117, label %_llgo_118 - -_llgo_117: ; preds = %_llgo_116 - store ptr %1138, ptr @"_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - br label %_llgo_118 - -_llgo_118: ; preds = %_llgo_117, %_llgo_116 - %1141 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @62, i64 11 }, i64 25, i64 56, i64 0, i64 2) - %1142 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.StructField", align 8 - %1143 = icmp eq ptr %1142, null - br i1 %1143, label %_llgo_119, label %_llgo_120 - -_llgo_119: ; preds = %_llgo_118 - store ptr %1141, ptr @"_llgo_github.com/goplus/llgo/internal/abi.StructField", align 8 - br label %_llgo_120 - -_llgo_120: ; preds = %_llgo_119, %_llgo_118 - %1144 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %1145 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %1146 = load ptr, ptr @"_llgo_struct$GYlWrg0B_axMyyq9xClGPKuTjurG0iQMRoz8Me1fQig", align 8 - %1147 = icmp eq ptr %1146, null - br i1 %1147, label %_llgo_121, label %_llgo_122 - -_llgo_121: ; preds = %_llgo_120 - %1148 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %1149 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @34, i64 5 }, ptr %1148, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1150 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1145) - %1151 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @63, i64 3 }, ptr %1150, i64 16, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1152 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) - %1153 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @64, i64 6 }, ptr %1152, i64 24, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1154 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %1155 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @65, i64 4 }, ptr %1154, i64 32, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1156 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 33) - %1157 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @66, i64 9 }, ptr %1156, i64 48, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1158 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 280) - %1159 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1158, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %1149, ptr %1159, align 8 - %1160 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1158, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %1151, ptr %1160, align 8 - %1161 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1158, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %1153, ptr %1161, align 8 - %1162 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1158, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %1155, ptr %1162, align 8 - %1163 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1158, i64 4 - store %"github.com/goplus/llgo/internal/abi.StructField" %1157, ptr %1163, align 8 - %1164 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1158, 0 - %1165 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1164, i64 5, 1 - %1166 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1165, i64 5, 2 - %1167 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 56, %"github.com/goplus/llgo/internal/runtime.Slice" %1166) - store ptr %1167, ptr @"_llgo_struct$GYlWrg0B_axMyyq9xClGPKuTjurG0iQMRoz8Me1fQig", align 8 - br label %_llgo_122 - -_llgo_122: ; preds = %_llgo_121, %_llgo_120 - %1168 = load ptr, ptr @"_llgo_struct$GYlWrg0B_axMyyq9xClGPKuTjurG0iQMRoz8Me1fQig", align 8 - br i1 %1143, label %_llgo_123, label %_llgo_124 - -_llgo_123: ; preds = %_llgo_122 - %1169 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1170 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @67, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1169, 1 - %1171 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1170, ptr @"github.com/goplus/llgo/internal/abi.(*StructField).Embedded", 2 - %1172 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1171, ptr @"github.com/goplus/llgo/internal/abi.(*StructField).Embedded", 3 - %1173 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1174 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @36, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1173, 1 - %1175 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1174, ptr @"github.com/goplus/llgo/internal/abi.(*StructField).Exported", 2 - %1176 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1175, ptr @"github.com/goplus/llgo/internal/abi.(*StructField).Exported", 3 - %1177 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %1178 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1177, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %1172, ptr %1178, align 8 - %1179 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1177, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %1176, ptr %1179, align 8 - %1180 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1177, 0 - %1181 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1180, i64 2, 1 - %1182 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1181, i64 2, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %1141, ptr %1168, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1182) - br label %_llgo_124 - -_llgo_124: ; preds = %_llgo_123, %_llgo_122 - %1183 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.StructField", align 8 - %1184 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @62, i64 11 }, i64 25, i64 56, i64 0, i64 2) - %1185 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.StructField", align 8 - %1186 = icmp eq ptr %1185, null - br i1 %1186, label %_llgo_125, label %_llgo_126 - -_llgo_125: ; preds = %_llgo_124 - %1187 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %1184) - store ptr %1187, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.StructField", align 8 - br label %_llgo_126 - -_llgo_126: ; preds = %_llgo_125, %_llgo_124 - %1188 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.StructField", align 8 - %1189 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %1190 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @62, i64 11 }, i64 25, i64 56, i64 0, i64 2) - %1191 = load ptr, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 - %1192 = icmp eq ptr %1191, null - br i1 %1192, label %_llgo_127, label %_llgo_128 - -_llgo_127: ; preds = %_llgo_126 - %1193 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, ptr %1189, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 true) - %1194 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %1195 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @39, i64 8 }, ptr %1194, i64 72, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1196 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %1190) - %1197 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @68, i64 6 }, ptr %1196, i64 88, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1198 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) - %1199 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1198, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %1193, ptr %1199, align 8 - %1200 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1198, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %1195, ptr %1200, align 8 - %1201 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1198, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %1197, ptr %1201, align 8 - %1202 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1198, 0 - %1203 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1202, i64 3, 1 - %1204 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1203, i64 3, 2 - %1205 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 112, %"github.com/goplus/llgo/internal/runtime.Slice" %1204) - store ptr %1205, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 - br label %_llgo_128 - -_llgo_128: ; preds = %_llgo_127, %_llgo_126 - %1206 = load ptr, ptr @"_llgo_struct$K_cvuhBwc2_5r7UW089ibWfcfsGoDb4pZ7K19IcMTk0", align 8 - br i1 %1140, label %_llgo_129, label %_llgo_130 - -_llgo_129: ; preds = %_llgo_128 - %1207 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1208 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %1207, 1 - %1209 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1208, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Align", 2 - %1210 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1209, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Align", 3 - %1211 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.ArrayType", align 8 - %1212 = load ptr, ptr @"_llgo_func$CsVqlCxhoEcIvPD5BSBukfSiD9C7Ic5_Gf32MLbCWB4", align 8 - %1213 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1212, 1 - %1214 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1213, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ArrayType", 2 - %1215 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1214, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ArrayType", 3 - %1216 = load ptr, ptr @"_llgo_func$TrNr0CVWj6qegOngzWbt2Jl7pr7IBJ5gOmgUf2ieIi4", align 8 - %1217 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1216, 1 - %1218 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1217, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ChanDir", 2 - %1219 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1218, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ChanDir", 3 - %1220 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %1221 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %1222 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1221, 1 - %1223 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1222, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Common", 2 - %1224 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1223, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Common", 3 - %1225 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %1226 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %1227 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @19, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1226, 1 - %1228 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1227, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Elem", 2 - %1229 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1228, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Elem", 3 - %1230 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - %1231 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 - %1232 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %1231, 1 - %1233 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1232, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ExportedMethods", 2 - %1234 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1233, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ExportedMethods", 3 - %1235 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1236 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1235, 1 - %1237 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1236, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).FieldAlign", 2 - %1238 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1237, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).FieldAlign", 3 - %1239 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %1240 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %1241 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1240, 1 - %1242 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1241, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).FuncType", 2 - %1243 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1242, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).FuncType", 3 - %1244 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1245 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1244, 1 - %1246 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1245, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).HasName", 2 - %1247 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1246, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).HasName", 3 - %1248 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1249 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1248, 1 - %1250 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1249, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IfaceIndir", 2 - %1251 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1250, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IfaceIndir", 3 - %1252 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - %1253 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %1254 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1253, 1 - %1255 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1254, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).InterfaceType", 2 - %1256 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1255, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).InterfaceType", 3 - %1257 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1258 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1257, 1 - %1259 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1258, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IsClosure", 2 - %1260 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1259, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IsClosure", 3 - %1261 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1262 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1261, 1 - %1263 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1262, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IsDirectIface", 2 - %1264 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1263, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).IsDirectIface", 3 - %1265 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %1266 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %1267 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %1266, 1 - %1268 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1267, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Key", 2 - %1269 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1268, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Key", 3 - %1270 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - %1271 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1270, 1 - %1272 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1271, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Kind", 2 - %1273 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1272, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Kind", 3 - %1274 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1275 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %1274, 1 - %1276 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1275, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Len", 2 - %1277 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1276, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Len", 3 - %1278 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - %1279 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %1280 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1279, 1 - %1281 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1280, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).MapType", 2 - %1282 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1281, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).MapType", 3 - %1283 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1284 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1283, 1 - %1285 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1284, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).NumMethod", 2 - %1286 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1285, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).NumMethod", 3 - %1287 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1288 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1287, 1 - %1289 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1288, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Pointers", 2 - %1290 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1289, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Pointers", 3 - %1291 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1292 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1291, 1 - %1293 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1292, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Size", 2 - %1294 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1293, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Size", 3 - %1295 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1296 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1295, 1 - %1297 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1296, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).String", 2 - %1298 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1297, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).String", 3 - %1299 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @61, i64 10 }, i64 25, i64 120, i64 0, i64 23) - %1300 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - %1301 = icmp eq ptr %1300, null - br i1 %1301, label %_llgo_131, label %_llgo_132 - -_llgo_130: ; preds = %_llgo_144, %_llgo_128 - %1302 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - %1303 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - %1304 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - %1305 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1304, 1 - %1306 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1305, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).StructType", 2 - %1307 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1306, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).StructType", 3 - %1308 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %1309 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1308, 1 - %1310 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1309, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Uncommon", 2 - %1311 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1310, ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Uncommon", 3 - %1312 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 1040) - %1313 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %951, ptr %1313, align 8 - %1314 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %956, ptr %1314, align 8 - %1315 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %960, ptr %1315, align 8 - %1316 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %965, ptr %1316, align 8 - %1317 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %970, ptr %1317, align 8 - %1318 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %974, ptr %1318, align 8 - %1319 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %979, ptr %1319, align 8 - %1320 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %983, ptr %1320, align 8 - %1321 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %987, ptr %1321, align 8 - %1322 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %991, ptr %1322, align 8 - %1323 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %995, ptr %1323, align 8 - %1324 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %999, ptr %1324, align 8 - %1325 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %1004, ptr %1325, align 8 - %1326 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %1008, ptr %1326, align 8 - %1327 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %1012, ptr %1327, align 8 - %1328 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %1016, ptr %1328, align 8 - %1329 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 16 - store %"github.com/goplus/llgo/internal/abi.Method" %1020, ptr %1329, align 8 - %1330 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 17 - store %"github.com/goplus/llgo/internal/abi.Method" %1100, ptr %1330, align 8 - %1331 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 18 - store %"github.com/goplus/llgo/internal/abi.Method" %1104, ptr %1331, align 8 - %1332 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 19 - store %"github.com/goplus/llgo/internal/abi.Method" %1108, ptr %1332, align 8 - %1333 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 20 - store %"github.com/goplus/llgo/internal/abi.Method" %1112, ptr %1333, align 8 - %1334 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 21 - store %"github.com/goplus/llgo/internal/abi.Method" %1116, ptr %1334, align 8 - %1335 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 22 - store %"github.com/goplus/llgo/internal/abi.Method" %1133, ptr %1335, align 8 - %1336 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 23 - store %"github.com/goplus/llgo/internal/abi.Method" %1137, ptr %1336, align 8 - %1337 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 24 - store %"github.com/goplus/llgo/internal/abi.Method" %1307, ptr %1337, align 8 - %1338 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1312, i64 25 - store %"github.com/goplus/llgo/internal/abi.Method" %1311, ptr %1338, align 8 - %1339 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1312, 0 - %1340 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1339, i64 26, 1 - %1341 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1340, i64 26, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %834, ptr %947, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1341) - br label %_llgo_110 - -_llgo_131: ; preds = %_llgo_129 - %1342 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1299) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1342) - store ptr %1342, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - br label %_llgo_132 - -_llgo_132: ; preds = %_llgo_131, %_llgo_129 - %1343 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - %1344 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - %1345 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - %1346 = icmp eq ptr %1345, null - br i1 %1346, label %_llgo_133, label %_llgo_134 - -_llgo_133: ; preds = %_llgo_132 - %1347 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %1348 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1347, 0 - %1349 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1348, i64 0, 1 - %1350 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1349, i64 0, 2 - %1351 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %1352 = getelementptr ptr, ptr %1351, i64 0 - store ptr %1344, ptr %1352, align 8 - %1353 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1351, 0 - %1354 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1353, i64 1, 1 - %1355 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1354, i64 1, 2 - %1356 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1350, %"github.com/goplus/llgo/internal/runtime.Slice" %1355, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1356) - store ptr %1356, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - br label %_llgo_134 - -_llgo_134: ; preds = %_llgo_133, %_llgo_132 - %1357 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - %1358 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1357, 1 - %1359 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1358, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).StructType", 2 - %1360 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1359, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).StructType", 3 - %1361 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @70, i64 12 }, i64 25, i64 24, i64 0, i64 2) - %1362 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 - %1363 = icmp eq ptr %1362, null - br i1 %1363, label %_llgo_135, label %_llgo_136 - -_llgo_135: ; preds = %_llgo_134 - store ptr %1361, ptr @"_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 - br label %_llgo_136 - -_llgo_136: ; preds = %_llgo_135, %_llgo_134 - %1364 = load ptr, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 - %1365 = icmp eq ptr %1364, null - br i1 %1365, label %_llgo_137, label %_llgo_138 - -_llgo_137: ; preds = %_llgo_136 - %1366 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %1367 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @39, i64 8 }, ptr %1366, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1368 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 41) - %1369 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @71, i64 6 }, ptr %1368, i64 16, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1370 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 41) - %1371 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @72, i64 6 }, ptr %1370, i64 18, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1372 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 42) - %1373 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @73, i64 4 }, ptr %1372, i64 20, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1374 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %1375 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1374, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %1367, ptr %1375, align 8 - %1376 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1374, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %1369, ptr %1376, align 8 - %1377 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1374, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %1371, ptr %1377, align 8 - %1378 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1374, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %1373, ptr %1378, align 8 - %1379 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1374, 0 - %1380 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1379, i64 4, 1 - %1381 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1380, i64 4, 2 - %1382 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 24, %"github.com/goplus/llgo/internal/runtime.Slice" %1381) - store ptr %1382, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 - br label %_llgo_138 - -_llgo_138: ; preds = %_llgo_137, %_llgo_136 - %1383 = load ptr, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 - br i1 %1363, label %_llgo_139, label %_llgo_140 - -_llgo_139: ; preds = %_llgo_138 - %1384 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - %1385 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 - %1386 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %1385, 1 - %1387 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1386, ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).ExportedMethods", 2 - %1388 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1387, ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).ExportedMethods", 3 - %1389 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - %1390 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 - %1391 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @40, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1390, 1 - %1392 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1391, ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).Methods", 2 - %1393 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1392, ptr @"github.com/goplus/llgo/internal/abi.(*UncommonType).Methods", 3 - %1394 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %1395 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1394, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %1388, ptr %1395, align 8 - %1396 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1394, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %1393, ptr %1396, align 8 - %1397 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1394, 0 - %1398 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1397, i64 2, 1 - %1399 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1398, i64 2, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %1361, ptr %1383, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1399) - br label %_llgo_140 - -_llgo_140: ; preds = %_llgo_139, %_llgo_138 - %1400 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 - %1401 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @70, i64 12 }, i64 25, i64 24, i64 0, i64 2) - %1402 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 - %1403 = icmp eq ptr %1402, null - br i1 %1403, label %_llgo_141, label %_llgo_142 - -_llgo_141: ; preds = %_llgo_140 - %1404 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1401) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1404) - store ptr %1404, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 - br label %_llgo_142 - -_llgo_142: ; preds = %_llgo_141, %_llgo_140 - %1405 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 - %1406 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.UncommonType", align 8 - %1407 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %1408 = icmp eq ptr %1407, null - br i1 %1408, label %_llgo_143, label %_llgo_144 - -_llgo_143: ; preds = %_llgo_142 - %1409 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %1410 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1409, 0 - %1411 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1410, i64 0, 1 - %1412 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1411, i64 0, 2 - %1413 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %1414 = getelementptr ptr, ptr %1413, i64 0 - store ptr %1406, ptr %1414, align 8 - %1415 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1413, 0 - %1416 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1415, i64 1, 1 - %1417 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1416, i64 1, 2 - %1418 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %1412, %"github.com/goplus/llgo/internal/runtime.Slice" %1417, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %1418) - store ptr %1418, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - br label %_llgo_144 - -_llgo_144: ; preds = %_llgo_143, %_llgo_142 - %1419 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %1420 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1419, 1 - %1421 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1420, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Uncommon", 2 - %1422 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1421, ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Uncommon", 3 - %1423 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 920) - %1424 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %1210, ptr %1424, align 8 - %1425 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %1215, ptr %1425, align 8 - %1426 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %1219, ptr %1426, align 8 - %1427 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %1224, ptr %1427, align 8 - %1428 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %1229, ptr %1428, align 8 - %1429 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %1234, ptr %1429, align 8 - %1430 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %1238, ptr %1430, align 8 - %1431 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %1243, ptr %1431, align 8 - %1432 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %1247, ptr %1432, align 8 - %1433 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %1251, ptr %1433, align 8 - %1434 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %1256, ptr %1434, align 8 - %1435 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %1260, ptr %1435, align 8 - %1436 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %1264, ptr %1436, align 8 - %1437 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %1269, ptr %1437, align 8 - %1438 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %1273, ptr %1438, align 8 - %1439 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %1277, ptr %1439, align 8 - %1440 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 16 - store %"github.com/goplus/llgo/internal/abi.Method" %1282, ptr %1440, align 8 - %1441 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 17 - store %"github.com/goplus/llgo/internal/abi.Method" %1286, ptr %1441, align 8 - %1442 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 18 - store %"github.com/goplus/llgo/internal/abi.Method" %1290, ptr %1442, align 8 - %1443 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 19 - store %"github.com/goplus/llgo/internal/abi.Method" %1294, ptr %1443, align 8 - %1444 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 20 - store %"github.com/goplus/llgo/internal/abi.Method" %1298, ptr %1444, align 8 - %1445 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 21 - store %"github.com/goplus/llgo/internal/abi.Method" %1360, ptr %1445, align 8 - %1446 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1423, i64 22 - store %"github.com/goplus/llgo/internal/abi.Method" %1422, ptr %1446, align 8 - %1447 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1423, 0 - %1448 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1447, i64 23, 1 - %1449 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1448, i64 23, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %1138, ptr %1206, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1449) - br label %_llgo_130 - -_llgo_145: ; preds = %_llgo_64 - %1450 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %1451 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @34, i64 5 }, ptr %1450, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1452 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %472) - %1453 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @75, i64 5 }, ptr %1452, i64 16, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1454 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %1455 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @76, i64 4 }, ptr %1454, i64 24, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1456 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %1457 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @77, i64 4 }, ptr %1456, i64 32, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1458 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %1459 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1458, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %1451, ptr %1459, align 8 - %1460 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1458, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %1453, ptr %1460, align 8 - %1461 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1458, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %1455, ptr %1461, align 8 - %1462 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1458, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %1457, ptr %1462, align 8 - %1463 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1458, 0 - %1464 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1463, i64 4, 1 - %1465 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1464, i64 4, 2 - %1466 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 40, %"github.com/goplus/llgo/internal/runtime.Slice" %1465) - store ptr %1466, ptr @"_llgo_struct$SDp3TNnYnxb26MhB1v8VMbmY71BX77YOaY7lgS1cFx0", align 8 - br label %_llgo_146 - -_llgo_146: ; preds = %_llgo_145, %_llgo_64 - %1467 = load ptr, ptr @"_llgo_struct$SDp3TNnYnxb26MhB1v8VMbmY71BX77YOaY7lgS1cFx0", align 8 - br i1 %410, label %_llgo_147, label %_llgo_148 - -_llgo_147: ; preds = %_llgo_146 - %1468 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1469 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @36, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1468, 1 - %1470 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1469, ptr @"github.com/goplus/llgo/internal/abi.(*Method).Exported", 2 - %1471 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1470, ptr @"github.com/goplus/llgo/internal/abi.(*Method).Exported", 3 - %1472 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1473 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @37, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1472, 1 - %1474 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1473, ptr @"github.com/goplus/llgo/internal/abi.(*Method).Name", 2 - %1475 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1474, ptr @"github.com/goplus/llgo/internal/abi.(*Method).Name", 3 - %1476 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1477 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @38, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1476, 1 - %1478 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1477, ptr @"github.com/goplus/llgo/internal/abi.(*Method).PkgPath", 2 - %1479 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1478, ptr @"github.com/goplus/llgo/internal/abi.(*Method).PkgPath", 3 - %1480 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 120) - %1481 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1480, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %1471, ptr %1481, align 8 - %1482 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1480, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %1475, ptr %1482, align 8 - %1483 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1480, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %1479, ptr %1483, align 8 - %1484 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1480, 0 - %1485 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1484, i64 3, 1 - %1486 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1485, i64 3, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %408, ptr %1467, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1486) - br label %_llgo_148 - -_llgo_148: ; preds = %_llgo_147, %_llgo_146 - %1487 = load ptr, ptr @"_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - %1488 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/internal/abi.Method", align 8 - %1489 = load ptr, ptr @"_llgo_func$r0w3aCNVheLGqjxncuxitGhNtWJagb9gZLqOSrNI7dg", align 8 - %1490 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %1489, 1 - %1491 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1490, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ExportedMethods", 2 - %1492 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1491, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ExportedMethods", 3 - %1493 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1494 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1493, 1 - %1495 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1494, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FieldAlign", 2 - %1496 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1495, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FieldAlign", 3 - %1497 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.FuncType", align 8 - %1498 = load ptr, ptr @"_llgo_func$DsoxgOnxqV7tLvokF3AA14v1gtHsHaThoC8Q_XGcQww", align 8 - %1499 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1498, 1 - %1500 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1499, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FuncType", 2 - %1501 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1500, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FuncType", 3 - %1502 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1503 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1502, 1 - %1504 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1503, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).HasName", 2 - %1505 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1504, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).HasName", 3 - %1506 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1507 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1506, 1 - %1508 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1507, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IfaceIndir", 2 - %1509 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1508, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IfaceIndir", 3 - %1510 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.InterfaceType", align 8 - %1511 = load ptr, ptr @"_llgo_func$1QmforOaCy2fBAssC2y1FWCCT6fpq9RKwP2j2HIASY8", align 8 - %1512 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1511, 1 - %1513 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1512, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).InterfaceType", 2 - %1514 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1513, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).InterfaceType", 3 - %1515 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1516 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1515, 1 - %1517 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1516, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IsClosure", 2 - %1518 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1517, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IsClosure", 3 - %1519 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1520 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1519, 1 - %1521 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1520, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IsDirectIface", 2 - %1522 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1521, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).IsDirectIface", 3 - %1523 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.Type", align 8 - %1524 = load ptr, ptr @"_llgo_func$4-mqItKfDlL0CgVKnUxoresYgh6zW1WSlZYZSsVzLRo", align 8 - %1525 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %1524, 1 - %1526 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1525, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Key", 2 - %1527 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1526, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Key", 3 - %1528 = load ptr, ptr @"_llgo_func$ntUE0UmVAWPS2O7GpCCGszSn-XnjHJntZZ2jYtwbFXI", align 8 - %1529 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1528, 1 - %1530 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1529, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Kind", 2 - %1531 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1530, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Kind", 3 - %1532 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.MapType", align 8 - %1533 = load ptr, ptr @"_llgo_func$d-NlqnjcQnaMjsBQY7qh2SWQmHb0XIigoceXdiJ8YT4", align 8 - %1534 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1533, 1 - %1535 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1534, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).MapType", 2 - %1536 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1535, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).MapType", 3 - %1537 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 - %1538 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1537, 1 - %1539 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1538, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).NumMethod", 2 - %1540 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1539, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).NumMethod", 3 - %1541 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 - %1542 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1541, 1 - %1543 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1542, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Pointers", 2 - %1544 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1543, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Pointers", 3 - %1545 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 - %1546 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1545, 1 - %1547 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1546, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Size", 2 - %1548 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1547, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Size", 3 - %1549 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %1550 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1549, 1 - %1551 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1550, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).String", 2 - %1552 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1551, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).String", 3 - %1553 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/internal/abi.StructType", align 8 - %1554 = load ptr, ptr @"_llgo_func$qiNnn6Cbm3GtDp4gDI4U_DRV3h8zlz91s9jrfOXC--U", align 8 - %1555 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1554, 1 - %1556 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1555, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).StructType", 2 - %1557 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1556, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).StructType", 3 - %1558 = load ptr, ptr @"_llgo_func$DbD4nZv_bjE4tH8hh-VfAjMXMpNfIsMlLJJJPKupp34", align 8 - %1559 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1558, 1 - %1560 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1559, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Uncommon", 2 - %1561 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %1560, ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Uncommon", 3 - %1562 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 840) - %1563 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %220, ptr %1563, align 8 - %1564 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %367, ptr %1564, align 8 - %1565 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 2 - store %"github.com/goplus/llgo/internal/abi.Method" %389, ptr %1565, align 8 - %1566 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 3 - store %"github.com/goplus/llgo/internal/abi.Method" %407, ptr %1566, align 8 - %1567 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 4 - store %"github.com/goplus/llgo/internal/abi.Method" %1492, ptr %1567, align 8 - %1568 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 5 - store %"github.com/goplus/llgo/internal/abi.Method" %1496, ptr %1568, align 8 - %1569 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 6 - store %"github.com/goplus/llgo/internal/abi.Method" %1501, ptr %1569, align 8 - %1570 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 7 - store %"github.com/goplus/llgo/internal/abi.Method" %1505, ptr %1570, align 8 - %1571 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 8 - store %"github.com/goplus/llgo/internal/abi.Method" %1509, ptr %1571, align 8 - %1572 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 9 - store %"github.com/goplus/llgo/internal/abi.Method" %1514, ptr %1572, align 8 - %1573 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 10 - store %"github.com/goplus/llgo/internal/abi.Method" %1518, ptr %1573, align 8 - %1574 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 11 - store %"github.com/goplus/llgo/internal/abi.Method" %1522, ptr %1574, align 8 - %1575 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 12 - store %"github.com/goplus/llgo/internal/abi.Method" %1527, ptr %1575, align 8 - %1576 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 13 - store %"github.com/goplus/llgo/internal/abi.Method" %1531, ptr %1576, align 8 - %1577 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 14 - store %"github.com/goplus/llgo/internal/abi.Method" %1536, ptr %1577, align 8 - %1578 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 15 - store %"github.com/goplus/llgo/internal/abi.Method" %1540, ptr %1578, align 8 - %1579 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 16 - store %"github.com/goplus/llgo/internal/abi.Method" %1544, ptr %1579, align 8 - %1580 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 17 - store %"github.com/goplus/llgo/internal/abi.Method" %1548, ptr %1580, align 8 - %1581 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 18 - store %"github.com/goplus/llgo/internal/abi.Method" %1552, ptr %1581, align 8 - %1582 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 19 - store %"github.com/goplus/llgo/internal/abi.Method" %1557, ptr %1582, align 8 - %1583 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %1562, i64 20 - store %"github.com/goplus/llgo/internal/abi.Method" %1561, ptr %1583, align 8 - %1584 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1562, 0 - %1585 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1584, i64 21, 1 - %1586 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1585, i64 21, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %190, ptr %216, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %1586) - br label %_llgo_42 - -_llgo_149: ; preds = %_llgo_32 - %1587 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %168) - store ptr %1587, ptr @"[]_llgo_main.T", align 8 - br label %_llgo_150 - -_llgo_150: ; preds = %_llgo_149, %_llgo_32 - %1588 = load ptr, ptr @"[]_llgo_main.T", align 8 - %1589 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 1 }, i64 25, i64 48, i64 0, i64 0) - %1590 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 35 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) - %1591 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 1 }, i64 25, i64 48, i64 0, i64 0) - %1592 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1589) - %1593 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @78, i64 1 }, ptr %1592, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1594 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %1590) - %1595 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @79, i64 1 }, ptr %1594, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1596 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) - %1597 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @80, i64 1 }, ptr %1596, i64 16, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1598 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %1591) - %1599 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @81, i64 1 }, ptr %1598, i64 24, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %1600 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %1601 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1600, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %1593, ptr %1601, align 8 - %1602 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1600, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %1595, ptr %1602, align 8 - %1603 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1600, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %1597, ptr %1603, align 8 - %1604 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %1600, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %1599, ptr %1604, align 8 - %1605 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %1600, 0 - %1606 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1605, i64 4, 1 - %1607 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1606, i64 4, 2 - %1608 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 48, %"github.com/goplus/llgo/internal/runtime.Slice" %1607) - store ptr %1608, ptr @"main.struct$FYfyNCnlvkYOztpQWjt-y8D_WY3tpxyt5Qo62CJffTE", align 8 - %1609 = load ptr, ptr @"main.struct$FYfyNCnlvkYOztpQWjt-y8D_WY3tpxyt5Qo62CJffTE", align 8 - br i1 %2, label %_llgo_151, label %_llgo_152 - -_llgo_151: ; preds = %_llgo_150 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, ptr %1609, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - br label %_llgo_152 - -_llgo_152: ; preds = %_llgo_151, %_llgo_150 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*Type).Align"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*ArrayType).Align"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).ArrayType"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*ArrayType).ChanDir"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Common"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*FuncType).Align"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).ArrayType"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*FuncType).ChanDir"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Common"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Elem"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/abi.(*FuncType).ExportedMethods"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*FuncType).FieldAlign"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).FuncType"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*FuncType).HasName"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*FuncType).IfaceIndir"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*Imethod).Exported"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*Imethod).Name"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*Imethod).PkgPath"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Align"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ArrayType"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ChanDir"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Common"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Elem"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/abi.(*InterfaceType).ExportedMethods"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FieldAlign"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).FuncType"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).HasName"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IfaceIndir"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).InterfaceType"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IsClosure"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).IsDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Key"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*Kind).String"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.Kind.String"(i64) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Kind"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Len"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*MapType).Align"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*MapType).ArrayType"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*MapType).ChanDir"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Common"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/abi.(*MapType).ExportedMethods"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*MapType).FieldAlign"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*MapType).FuncType"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).HasName"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).HashMightPanic"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).IfaceIndir"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectElem"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).IndirectKey"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*MapType).InterfaceType"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).IsClosure"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).IsDirectIface"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*MapType).Kind"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*MapType).Len"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*MapType).MapType"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).NeedKeyUpdate"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*MapType).NumMethod"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).Pointers"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*MapType).ReflexiveKey"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*MapType).Size"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*MapType).String"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*StructField).Embedded"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*StructField).Exported"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*StructType).Align"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).ArrayType"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*StructType).ChanDir"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Common"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Elem"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/abi.(*StructType).ExportedMethods"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*StructType).FieldAlign"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).FuncType"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*StructType).HasName"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*StructType).IfaceIndir"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).InterfaceType"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*StructType).IsClosure"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*StructType).IsDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Key"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*StructType).Kind"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*StructType).Len"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).MapType"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*StructType).NumMethod"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*StructType).Pointers"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*StructType).Size"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*StructType).String"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).StructType"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/abi.(*UncommonType).ExportedMethods"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/abi.(*UncommonType).Methods"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*StructType).Uncommon"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*MapType).StructType"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*MapType).Uncommon"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).MapType"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).NumMethod"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Pointers"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Size"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*InterfaceType).String"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).StructType"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*InterfaceType).Uncommon"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).InterfaceType"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*FuncType).IsClosure"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*FuncType).IsDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Key"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*FuncType).Kind"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*FuncType).Len"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).MapType"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*FuncType).NumMethod"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*FuncType).Pointers"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*FuncType).Size"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*FuncType).String"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).StructType"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*FuncType).Uncommon"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*FuncType).Variadic"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*Method).Exported"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*Method).Name"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*Method).PkgPath"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/abi.(*ArrayType).ExportedMethods"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*ArrayType).FieldAlign"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).FuncType"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*ArrayType).HasName"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*ArrayType).IfaceIndir"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).InterfaceType"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*ArrayType).IsClosure"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*ArrayType).IsDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Key"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*ArrayType).Kind"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).MapType"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*ArrayType).NumMethod"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*ArrayType).Pointers"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*ArrayType).Size"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*ArrayType).String"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).StructType"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*ArrayType).Uncommon"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).ArrayType"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*Type).ChanDir"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).Common"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/abi.(*Type).ExportedMethods"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*Type).FieldAlign"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).FuncType"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*Type).HasName"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*Type).IfaceIndir"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).InterfaceType"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*Type).IsClosure"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*Type).IsDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).Key"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*Type).Kind"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*Type).Len"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).MapType"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*Type).NumMethod"(ptr) - -declare i1 @"github.com/goplus/llgo/internal/abi.(*Type).Pointers"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*Type).Size"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*Type).String"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).StructType"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).Uncommon"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 - -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testrt/builtin/out.ll b/cl/_testrt/builtin/out.ll deleted file mode 100644 index d73792ef..00000000 --- a/cl/_testrt/builtin/out.ll +++ /dev/null @@ -1,523 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } - -@main.a = global i64 0, align 8 -@main.b = global i64 0, align 8 -@"main.init$guard" = global i1 false, align 1 -@main.n = global i64 0, align 8 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [5 x i8] c"hello", align 1 -@1 = private unnamed_addr constant [3 x i8] c"def", align 1 -@_llgo_int = linkonce global ptr null, align 8 -@2 = private unnamed_addr constant [4 x i8] c"ABCD", align 1 -@3 = private unnamed_addr constant [7 x i8] c"\E4\B8\ADabcd", align 1 -@4 = private unnamed_addr constant [3 x i8] c"abc", align 1 -@5 = private unnamed_addr constant [3 x i8] c"abd", align 1 -@6 = private unnamed_addr constant [2 x i8] c"fn", align 1 - -define double @main.Float64frombits(i64 %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - store i64 %0, ptr %1, align 4 - %2 = load double, ptr %1, align 8 - ret double %2 -} - -define double @main.Inf(i64 %0) { -_llgo_0: - %1 = icmp sge i64 %0, 0 - br i1 %1, label %_llgo_1, label %_llgo_3 - -_llgo_1: ; preds = %_llgo_0 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_3, %_llgo_1 - %2 = phi i64 [ 9218868437227405312, %_llgo_1 ], [ -4503599627370496, %_llgo_3 ] - %3 = call double @main.Float64frombits(i64 %2) - ret double %3 - -_llgo_3: ; preds = %_llgo_0 - br label %_llgo_2 -} - -define i1 @main.IsNaN(double %0) { -_llgo_0: - %1 = fcmp une double %0, %0 - ret i1 %1 -} - -define double @main.NaN() { -_llgo_0: - %0 = call double @main.Float64frombits(i64 9221120237041090561) - ret double %0 -} - -define void @main.demo() { -_llgo_0: - ret void -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - store i64 9223372036854775807, ptr @main.a, align 4 - store i64 -9223372036854775808, ptr @main.b, align 4 - store i64 -1, ptr @main.n, align 4 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 32) - %3 = getelementptr inbounds i64, ptr %2, i64 0 - store i64 1, ptr %3, align 4 - %4 = getelementptr inbounds i64, ptr %2, i64 1 - store i64 2, ptr %4, align 4 - %5 = getelementptr inbounds i64, ptr %2, i64 2 - store i64 3, ptr %5, align 4 - %6 = getelementptr inbounds i64, ptr %2, i64 3 - store i64 4, ptr %6, align 4 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %2, 0 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %7, i64 4, 1 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %8, i64 4, 2 - %10 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 32) - %11 = getelementptr inbounds i64, ptr %10, i64 0 - %12 = getelementptr inbounds i64, ptr %10, i64 1 - %13 = getelementptr inbounds i64, ptr %10, i64 2 - %14 = getelementptr inbounds i64, ptr %10, i64 3 - store i64 1, ptr %11, align 4 - store i64 2, ptr %12, align 4 - store i64 3, ptr %13, align 4 - store i64 4, ptr %14, align 4 - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 10) - %16 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %15, i64 1, i64 10, i64 0, i64 4, i64 10) - %17 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 1 - %18 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 2 - call void @"github.com/goplus/llgo/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/internal/runtime.Slice" %9) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %17) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %18) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %19 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %16, 1 - %20 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %16, 2 - call void @"github.com/goplus/llgo/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/internal/runtime.Slice" %16) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %19) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %20) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 4) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 4) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 4) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 4) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %21 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 32) - %22 = getelementptr inbounds i64, ptr %21, i64 0 - store i64 1, ptr %22, align 4 - %23 = getelementptr inbounds i64, ptr %21, i64 1 - store i64 2, ptr %23, align 4 - %24 = getelementptr inbounds i64, ptr %21, i64 2 - store i64 3, ptr %24, align 4 - %25 = getelementptr inbounds i64, ptr %21, i64 3 - store i64 4, ptr %25, align 4 - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %21, 0 - %27 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %26, i64 4, 1 - %28 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %27, i64 4, 2 - %29 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %28, 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %29) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 4) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %30 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 2 - %31 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 1 - %32 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 0 - %33 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %32, i64 8, i64 %30, i64 1, i64 %31, i64 %30) - %34 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %33, 1 - %35 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 2 - %36 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 1 - %37 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 0 - %38 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %37, i64 8, i64 %35, i64 1, i64 %36, i64 %35) - %39 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %38, 2 - %40 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 2 - %41 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 0 - %42 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %41, i64 8, i64 %40, i64 1, i64 2, i64 %40) - %43 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %42, 1 - %44 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 2 - %45 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 0 - %46 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %45, i64 8, i64 %44, i64 1, i64 2, i64 %44) - %47 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %46, 2 - %48 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 2 - %49 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 0 - %50 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %49, i64 8, i64 %48, i64 1, i64 2, i64 2) - %51 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %50, 1 - %52 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 2 - %53 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 0 - %54 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %53, i64 8, i64 %52, i64 1, i64 2, i64 2) - %55 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %54, 2 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %34) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %39) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %43) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %47) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %51) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %55) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %56 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 4, i64 4) - %57 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %56, 1 - %58 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 4, i64 4) - %59 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %58, 2 - %60 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 2, i64 4) - %61 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %60, 1 - %62 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 2, i64 4) - %63 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %62, 2 - %64 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 2, i64 2) - %65 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %64, 1 - %66 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 2, i64 2) - %67 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %66, 2 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %57) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %59) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %61) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %63) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %65) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %67) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %68 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringSlice"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, i64 1, i64 5) - %69 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringSlice"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, i64 1, i64 2) - %70 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringSlice"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, i64 5, i64 5) - %71 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %70, 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %68) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %69) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %71) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %72 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 32) - %73 = getelementptr inbounds i64, ptr %72, i64 0 - store i64 5, ptr %73, align 4 - %74 = getelementptr inbounds i64, ptr %72, i64 1 - store i64 6, ptr %74, align 4 - %75 = getelementptr inbounds i64, ptr %72, i64 2 - store i64 7, ptr %75, align 4 - %76 = getelementptr inbounds i64, ptr %72, i64 3 - store i64 8, ptr %76, align 4 - %77 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %72, 0 - %78 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %77, i64 4, 1 - %79 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %78, i64 4, 2 - %80 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %79, 0 - %81 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %79, 1 - %82 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/internal/runtime.Slice" %9, ptr %80, i64 %81, i64 8) - call void @"github.com/goplus/llgo/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/internal/runtime.Slice" %82) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %83 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 3) - %84 = getelementptr inbounds i8, ptr %83, i64 0 - store i8 97, ptr %84, align 1 - %85 = getelementptr inbounds i8, ptr %83, i64 1 - store i8 98, ptr %85, align 1 - %86 = getelementptr inbounds i8, ptr %83, i64 2 - store i8 99, ptr %86, align 1 - %87 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %83, 0 - %88 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %87, i64 3, 1 - %89 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %88, i64 3, 2 - %90 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/internal/runtime.Slice" %89, ptr @1, i64 3, i64 1) - call void @"github.com/goplus/llgo/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/internal/runtime.Slice" %90) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %91 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - %92 = load ptr, ptr @_llgo_int, align 8 - %93 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %92, 0 - %94 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %93, ptr inttoptr (i64 100 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %94, ptr %91, align 8 - %95 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %91, align 8 - %96 = ptrtoint ptr %91 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 true) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 0) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 100) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 -100) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 255) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 -100) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double 0.000000e+00) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double 1.005000e+02) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintEface"(%"github.com/goplus/llgo/internal/runtime.eface" %95) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %91) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %96) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %97 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 3) - %98 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %99 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %97, 0 - %100 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %99, i64 3, 1 - %101 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %100, i64 3, 2 - %102 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %90, 0 - %103 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %90, 1 - %104 = call i64 @"github.com/goplus/llgo/internal/runtime.SliceCopy"(%"github.com/goplus/llgo/internal/runtime.Slice" %101, ptr %102, i64 %103, i64 1) - store i64 %104, ptr %98, align 4 - %105 = load i64, ptr %98, align 4 - %106 = getelementptr inbounds i8, ptr %97, i64 0 - %107 = load i8, ptr %106, align 1 - %108 = getelementptr inbounds i8, ptr %97, i64 1 - %109 = load i8, ptr %108, align 1 - %110 = getelementptr inbounds i8, ptr %97, i64 2 - %111 = load i8, ptr %110, align 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %105) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %112 = zext i8 %107 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %112) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %113 = zext i8 %109 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %113) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %114 = zext i8 %111 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %114) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %115 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %97, i64 1, i64 3, i64 1, i64 3, i64 3) - %116 = call i64 @"github.com/goplus/llgo/internal/runtime.SliceCopy"(%"github.com/goplus/llgo/internal/runtime.Slice" %115, ptr @2, i64 4, i64 1) - store i64 %116, ptr %98, align 4 - %117 = load i64, ptr %98, align 4 - %118 = getelementptr inbounds i8, ptr %97, i64 0 - %119 = load i8, ptr %118, align 1 - %120 = getelementptr inbounds i8, ptr %97, i64 1 - %121 = load i8, ptr %120, align 1 - %122 = getelementptr inbounds i8, ptr %97, i64 2 - %123 = load i8, ptr %122, align 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %117) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %124 = zext i8 %119 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %124) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %125 = zext i8 %121 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %125) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %126 = zext i8 %123 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %126) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %127 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %128 = getelementptr inbounds { ptr }, ptr %127, i32 0, i32 0 - store ptr %98, ptr %128, align 8 - %129 = insertvalue { ptr, ptr } { ptr @"main.main$2", ptr undef }, ptr %127, 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr @main.demo) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr @main.demo) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr @"main.main$1") - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %130 = extractvalue { ptr, ptr } %129, 0 - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %130) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %131 = call ptr @"github.com/goplus/llgo/internal/runtime.NewStringIter"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 7 }) - br label %_llgo_1 - -_llgo_1: ; preds = %_llgo_2, %_llgo_0 - %132 = call { i1, i64, i32 } @"github.com/goplus/llgo/internal/runtime.StringIterNext"(ptr %131) - %133 = extractvalue { i1, i64, i32 } %132, 0 - br i1 %133, label %_llgo_2, label %_llgo_3 - -_llgo_2: ; preds = %_llgo_1 - %134 = extractvalue { i1, i64, i32 } %132, 1 - %135 = extractvalue { i1, i64, i32 } %132, 2 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %134) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %136 = sext i32 %135 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %136) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - br label %_llgo_1 - -_llgo_3: ; preds = %_llgo_1 - %137 = call double @main.Inf(i64 1) - %138 = call double @main.Inf(i64 -1) - %139 = call double @main.NaN() - %140 = call double @main.NaN() - %141 = call i1 @main.IsNaN(double %140) - %142 = call i1 @main.IsNaN(double 1.000000e+00) - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double %137) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double %138) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double %139) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %141) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %142) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %143 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 7 }) - %144 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.StringToRunes"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 7 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/internal/runtime.Slice" %143) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/internal/runtime.Slice" %144) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %145 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringFromBytes"(%"github.com/goplus/llgo/internal/runtime.Slice" %143) - %146 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringFromRunes"(%"github.com/goplus/llgo/internal/runtime.Slice" %144) - %147 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %143, 0 - %148 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %143, 1 - %149 = icmp sge i64 3, %148 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %149) - %150 = getelementptr inbounds i8, ptr %147, i64 3 - %151 = load i8, ptr %150, align 1 - %152 = sext i8 %151 to i32 - %153 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringFromRune"(i32 %152) - %154 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %144, 0 - %155 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %144, 1 - %156 = icmp sge i64 0, %155 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %156) - %157 = getelementptr inbounds i32, ptr %154, i64 0 - %158 = load i32, ptr %157, align 4 - %159 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringFromRune"(i32 %158) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %145) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %146) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %153) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %159) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %160 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 3 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 3 }) - %161 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 3 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 3 }) - %162 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 3 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 3 }) - %163 = xor i1 %162, true - %164 = call i1 @"github.com/goplus/llgo/internal/runtime.StringLess"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 3 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 3 }) - %165 = call i1 @"github.com/goplus/llgo/internal/runtime.StringLess"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 3 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 3 }) - %166 = xor i1 %165, true - %167 = call i1 @"github.com/goplus/llgo/internal/runtime.StringLess"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 3 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 3 }) - %168 = call i1 @"github.com/goplus/llgo/internal/runtime.StringLess"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 3 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 3 }) - %169 = xor i1 %168, true - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %160) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %161) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %163) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %164) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %166) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %167) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %169) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -define void @"main.main$1"() { -_llgo_0: - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 2 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -define void @"main.main$2"(ptr %0) { -_llgo_0: - %1 = load { ptr }, ptr %0, align 8 - %2 = extractvalue { ptr } %1, 0 - %3 = load i64, ptr %2, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr, i64, i64, i64, i64, i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/internal/runtime.Slice") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringSlice"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/internal/runtime.Slice", ptr, i64, i64) - -define void @"main.init$after"() { -_llgo_0: - %0 = load ptr, ptr @_llgo_int, align 8 - %1 = icmp eq ptr %0, null - br i1 %1, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %2, ptr @_llgo_int, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintEface"(%"github.com/goplus/llgo/internal/runtime.eface") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/runtime.SliceCopy"(%"github.com/goplus/llgo/internal/runtime.Slice", ptr, i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewStringIter"(%"github.com/goplus/llgo/internal/runtime.String") - -declare { i1, i64, i32 } @"github.com/goplus/llgo/internal/runtime.StringIterNext"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/internal/runtime.String") - -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.StringToRunes"(%"github.com/goplus/llgo/internal/runtime.String") - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringFromBytes"(%"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringFromRunes"(%"github.com/goplus/llgo/internal/runtime.Slice") - -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringFromRune"(i32) - -declare i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String") - -declare i1 @"github.com/goplus/llgo/internal/runtime.StringLess"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String") diff --git a/cl/_testrt/closureiface/out.ll b/cl/_testrt/closureiface/out.ll deleted file mode 100644 index f114e760..00000000 --- a/cl/_testrt/closureiface/out.ll +++ /dev/null @@ -1,213 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@_llgo_int = linkonce global ptr null, align 8 -@"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU" = linkonce global ptr null, align 8 -@_llgo_Pointer = linkonce global ptr null, align 8 -@"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk" = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [2 x i8] c"$f", align 1 -@1 = private unnamed_addr constant [5 x i8] c"$data", align 1 -@2 = private unnamed_addr constant [4 x i8] c"main", align 1 -@3 = private unnamed_addr constant [5 x i8] c"error", align 1 -@_llgo_string = linkonce global ptr null, align 8 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - store i64 200, ptr %2, align 4 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %4 = getelementptr inbounds { ptr }, ptr %3, i32 0, i32 0 - store ptr %2, ptr %4, align 8 - %5 = insertvalue { ptr, ptr } { ptr @"main.main$1", ptr undef }, ptr %3, 1 - %6 = load ptr, ptr @_llgo_int, align 8 - %7 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 - %8 = load ptr, ptr @_llgo_Pointer, align 8 - %9 = load ptr, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 - %10 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store { ptr, ptr } %5, ptr %10, align 8 - %11 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %9, 0 - %12 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %11, ptr %10, 1 - %13 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %12, 0 - %14 = load ptr, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 - %15 = icmp eq ptr %13, %14 - br i1 %15, label %_llgo_3, label %_llgo_4 - -_llgo_1: ; preds = %_llgo_5 - %16 = load ptr, ptr @_llgo_string, align 8 - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 5 }, ptr %17, align 8 - %18 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %16, 0 - %19 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %18, ptr %17, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %19) - unreachable - -_llgo_2: ; preds = %_llgo_5 - %20 = extractvalue { ptr, ptr } %28, 1 - %21 = extractvalue { ptr, ptr } %28, 0 - %22 = call i64 %21(ptr %20, i64 100) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %22) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 - -_llgo_3: ; preds = %_llgo_0 - %23 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %12, 1 - %24 = load { ptr, ptr }, ptr %23, align 8 - %25 = insertvalue { { ptr, ptr }, i1 } undef, { ptr, ptr } %24, 0 - %26 = insertvalue { { ptr, ptr }, i1 } %25, i1 true, 1 - br label %_llgo_5 - -_llgo_4: ; preds = %_llgo_0 - br label %_llgo_5 - -_llgo_5: ; preds = %_llgo_4, %_llgo_3 - %27 = phi { { ptr, ptr }, i1 } [ %26, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] - %28 = extractvalue { { ptr, ptr }, i1 } %27, 0 - %29 = extractvalue { { ptr, ptr }, i1 } %27, 1 - br i1 %29, label %_llgo_2, label %_llgo_1 -} - -define i64 @"main.main$1"(ptr %0, i64 %1) { -_llgo_0: - %2 = load { ptr }, ptr %0, align 8 - %3 = extractvalue { ptr } %2, 0 - %4 = load i64, ptr %3, align 4 - %5 = add i64 %4, %1 - ret i64 %5 -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -define void @"main.init$after"() { -_llgo_0: - %0 = load ptr, ptr @_llgo_int, align 8 - %1 = icmp eq ptr %0, null - br i1 %1, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %2, ptr @_llgo_int, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @_llgo_int, align 8 - %4 = load ptr, ptr @_llgo_int, align 8 - %5 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 - %6 = icmp eq ptr %5, null - br i1 %6, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %8 = getelementptr ptr, ptr %7, i64 0 - store ptr %3, ptr %8, align 8 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %7, 0 - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, i64 1, 1 - %11 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %10, i64 1, 2 - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %13 = getelementptr ptr, ptr %12, i64 0 - store ptr %4, ptr %13, align 8 - %14 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %12, 0 - %15 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %14, i64 1, 1 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %15, i64 1, 2 - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %11, %"github.com/goplus/llgo/internal/runtime.Slice" %16, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %17) - store ptr %17, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %18 = load ptr, ptr @_llgo_Pointer, align 8 - %19 = icmp eq ptr %18, null - br i1 %19, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %20 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %20) - store ptr %20, ptr @_llgo_Pointer, align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %21 = load ptr, ptr @_llgo_int, align 8 - %22 = load ptr, ptr @_llgo_int, align 8 - %23 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %24 = getelementptr ptr, ptr %23, i64 0 - store ptr %21, ptr %24, align 8 - %25 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %23, 0 - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %25, i64 1, 1 - %27 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %26, i64 1, 2 - %28 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %29 = getelementptr ptr, ptr %28, i64 0 - store ptr %22, ptr %29, align 8 - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %28, 0 - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %30, i64 1, 1 - %32 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %31, i64 1, 2 - %33 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %27, %"github.com/goplus/llgo/internal/runtime.Slice" %32, i1 false) - %34 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 2 }, ptr %33, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %36 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 5 }, ptr %35, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %37 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %38 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %37, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %34, ptr %38, align 8 - %39 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %37, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %36, ptr %39, align 8 - %40 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %37, 0 - %41 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %40, i64 2, 1 - %42 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %41, i64 2, 2 - %43 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %42) - store ptr %43, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 - %44 = load ptr, ptr @_llgo_string, align 8 - %45 = icmp eq ptr %44, null - br i1 %45, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - %46 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %46, ptr @_llgo_string, align 8 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") diff --git a/cl/_testrt/complex/out.ll b/cl/_testrt/complex/out.ll deleted file mode 100644 index 91c4d5b3..00000000 --- a/cl/_testrt/complex/out.ll +++ /dev/null @@ -1,66 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double 1.000000e+00) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double 2.000000e+00) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - call void @"github.com/goplus/llgo/internal/runtime.PrintComplex"({ double, double } { double -1.000000e+00, double -2.000000e+00 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - call void @"github.com/goplus/llgo/internal/runtime.PrintComplex"({ double, double } { double 4.000000e+00, double 6.000000e+00 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - call void @"github.com/goplus/llgo/internal/runtime.PrintComplex"({ double, double } { double -2.000000e+00, double -2.000000e+00 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - call void @"github.com/goplus/llgo/internal/runtime.PrintComplex"({ double, double } { double -5.000000e+00, double 1.000000e+01 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - call void @"github.com/goplus/llgo/internal/runtime.PrintComplex"({ double, double } { double 4.400000e-01, double -8.000000e-02 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - call void @"github.com/goplus/llgo/internal/runtime.PrintComplex"({ double, double } { double 0x7FF0000000000000, double 0x7FF0000000000000 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - call void @"github.com/goplus/llgo/internal/runtime.PrintComplex"({ double, double } { double 0x7FF8000000000000, double 0x7FF8000000000000 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 true) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 false) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 false) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 true) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 true) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintComplex"({ double, double }) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1) diff --git a/cl/_testrt/concat/out.ll b/cl/_testrt/concat/out.ll deleted file mode 100644 index e1a6434d..00000000 --- a/cl/_testrt/concat/out.ll +++ /dev/null @@ -1,95 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } - -@"main.init$guard" = global i1 false, align 1 -@0 = private unnamed_addr constant [3 x i8] c"...", align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@1 = private unnamed_addr constant [5 x i8] c"Hello", align 1 -@2 = private unnamed_addr constant [1 x i8] c" ", align 1 -@3 = private unnamed_addr constant [5 x i8] c"World", align 1 - -define %"github.com/goplus/llgo/internal/runtime.String" @main.concat(%"github.com/goplus/llgo/internal/runtime.Slice" %0) { -_llgo_0: - %1 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 1 - br label %_llgo_1 - -_llgo_1: ; preds = %_llgo_2, %_llgo_0 - %2 = phi %"github.com/goplus/llgo/internal/runtime.String" [ zeroinitializer, %_llgo_0 ], [ %13, %_llgo_2 ] - %3 = phi i64 [ -1, %_llgo_0 ], [ %4, %_llgo_2 ] - %4 = add i64 %3, 1 - %5 = icmp slt i64 %4, %1 - br i1 %5, label %_llgo_2, label %_llgo_3 - -_llgo_2: ; preds = %_llgo_1 - %6 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 0 - %7 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 1 - %8 = icmp slt i64 %4, 0 - %9 = icmp sge i64 %4, %7 - %10 = or i1 %9, %8 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %10) - %11 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %6, i64 %4 - %12 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %11, align 8 - %13 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringCat"(%"github.com/goplus/llgo/internal/runtime.String" %2, %"github.com/goplus/llgo/internal/runtime.String" %12) - br label %_llgo_1 - -_llgo_3: ; preds = %_llgo_1 - ret %"github.com/goplus/llgo/internal/runtime.String" %2 -} - -define %"github.com/goplus/llgo/internal/runtime.String" @main.info(%"github.com/goplus/llgo/internal/runtime.String" %0) { -_llgo_0: - %1 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringCat"(%"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/internal/runtime.String" %0) - %2 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringCat"(%"github.com/goplus/llgo/internal/runtime.String" %1, %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 3 }) - ret %"github.com/goplus/llgo/internal/runtime.String" %2 -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 48) - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2, i64 0 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 5 }, ptr %3, align 8 - %4 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2, i64 1 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 1 }, ptr %4, align 8 - %5 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.String", ptr %2, i64 2 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 5 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %2, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %6, i64 3, 1 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %7, i64 3, 2 - %9 = call %"github.com/goplus/llgo/internal/runtime.String" @main.concat(%"github.com/goplus/llgo/internal/runtime.Slice" %8) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %9) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringCat"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) diff --git a/cl/_testrt/constuptr/out.ll b/cl/_testrt/constuptr/out.ll deleted file mode 100644 index 663ef1ec..00000000 --- a/cl/_testrt/constuptr/out.ll +++ /dev/null @@ -1,36 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr inttoptr (i64 100 to ptr)) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) diff --git a/cl/_testrt/eface/out.ll b/cl/_testrt/eface/out.ll deleted file mode 100644 index a08020ec..00000000 --- a/cl/_testrt/eface/out.ll +++ /dev/null @@ -1,632 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%main.eface = type { ptr, ptr } -%"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/internal/runtime.String", ptr } -%"github.com/goplus/llgo/internal/abi.UncommonType" = type { %"github.com/goplus/llgo/internal/runtime.String", i16, i16, i32 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } -%"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } - -@"main.init$guard" = global i1 false, align 1 -@0 = private unnamed_addr constant [6 x i8] c"invoke", align 1 -@1 = private unnamed_addr constant [7 x i8] c"\09elem: ", align 1 -@2 = private unnamed_addr constant [9 x i8] c"\09uncomm: ", align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@_llgo_bool = linkonce global ptr null, align 8 -@_llgo_int = linkonce global ptr null, align 8 -@_llgo_int8 = linkonce global ptr null, align 8 -@_llgo_int16 = linkonce global ptr null, align 8 -@_llgo_int32 = linkonce global ptr null, align 8 -@_llgo_int64 = linkonce global ptr null, align 8 -@_llgo_uint = linkonce global ptr null, align 8 -@_llgo_uint8 = linkonce global ptr null, align 8 -@_llgo_uint16 = linkonce global ptr null, align 8 -@_llgo_uint32 = linkonce global ptr null, align 8 -@_llgo_uint64 = linkonce global ptr null, align 8 -@_llgo_uintptr = linkonce global ptr null, align 8 -@_llgo_float32 = linkonce global ptr null, align 8 -@_llgo_float64 = linkonce global ptr null, align 8 -@"[10]_llgo_int" = linkonce global ptr null, align 8 -@"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 -@_llgo_Pointer = linkonce global ptr null, align 8 -@"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8" = linkonce global ptr null, align 8 -@3 = private unnamed_addr constant [2 x i8] c"$f", align 1 -@4 = private unnamed_addr constant [5 x i8] c"$data", align 1 -@5 = private unnamed_addr constant [4 x i8] c"main", align 1 -@"*_llgo_int" = linkonce global ptr null, align 8 -@"[]_llgo_int" = linkonce global ptr null, align 8 -@6 = private unnamed_addr constant [5 x i8] c"hello", align 1 -@_llgo_string = linkonce global ptr null, align 8 -@"main.struct$RKbUG45GE4henGMAdmt0Rju0JptyR8NsX7IZLsOI0OM" = linkonce global ptr null, align 8 -@7 = private unnamed_addr constant [1 x i8] c"x", align 1 -@8 = private unnamed_addr constant [1 x i8] c"y", align 1 -@9 = private unnamed_addr constant [1 x i8] c"z", align 1 -@_llgo_main.T = linkonce global ptr null, align 8 -@10 = private unnamed_addr constant [1 x i8] c"T", align 1 -@11 = private unnamed_addr constant [6 x i8] c"Invoke", align 1 - -define void @"main.(*T).Invoke"(ptr %0) { -_llgo_0: - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 6 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -define void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.eface" %0, ptr %1, align 8 - %2 = getelementptr inbounds %main.eface, ptr %1, i32 0, i32 0 - %3 = load ptr, ptr %2, align 8 - call void @main.dumpTyp(ptr %3, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer) - ret void -} - -define void @main.dumpTyp(ptr %0, %"github.com/goplus/llgo/internal/runtime.String" %1) { -_llgo_0: - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %1) - %2 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*Type).String"(ptr %0) - %3 = call i64 @"github.com/goplus/llgo/internal/abi.(*Type).Kind"(ptr %0) - %4 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %0, i32 0, i32 0 - %5 = load i64, ptr %4, align 4 - %6 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %0, i32 0, i32 1 - %7 = load i64, ptr %6, align 4 - %8 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %0, i32 0, i32 2 - %9 = load i32, ptr %8, align 4 - %10 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %0, i32 0, i32 3 - %11 = load i8, ptr %10, align 1 - %12 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %0, i32 0, i32 4 - %13 = load i8, ptr %12, align 1 - %14 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %0, i32 0, i32 10 - %15 = load ptr, ptr %14, align 8 - %16 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).Uncommon"(ptr %0) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %2) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %5) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %7) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %17 = zext i32 %9 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %17) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %18 = zext i8 %11 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %18) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %19 = zext i8 %13 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %19) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %15) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %16) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %20 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem"(ptr %0) - %21 = icmp ne ptr %20, null - br i1 %21, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %22 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem"(ptr %0) - %23 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringCat"(%"github.com/goplus/llgo/internal/runtime.String" %1, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 7 }) - call void @main.dumpTyp(ptr %22, %"github.com/goplus/llgo/internal/runtime.String" %23) - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %24 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).Uncommon"(ptr %0) - %25 = icmp ne ptr %24, null - br i1 %25, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %26 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).Uncommon"(ptr %0) - %27 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringCat"(%"github.com/goplus/llgo/internal/runtime.String" %1, %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 9 }) - call void @main.dumpUncommon(ptr %26, %"github.com/goplus/llgo/internal/runtime.String" %27) - %28 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %0, i32 0, i32 10 - %29 = load ptr, ptr %28, align 8 - %30 = icmp ne ptr %29, null - br i1 %30, label %_llgo_5, label %_llgo_4 - -_llgo_4: ; preds = %_llgo_5, %_llgo_3, %_llgo_2 - ret void - -_llgo_5: ; preds = %_llgo_3 - %31 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %0, i32 0, i32 10 - %32 = load ptr, ptr %31, align 8 - %33 = call ptr @"github.com/goplus/llgo/internal/abi.(*Type).Uncommon"(ptr %32) - %34 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringCat"(%"github.com/goplus/llgo/internal/runtime.String" %1, %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 9 }) - call void @main.dumpUncommon(ptr %33, %"github.com/goplus/llgo/internal/runtime.String" %34) - br label %_llgo_4 -} - -define void @main.dumpUncommon(ptr %0, %"github.com/goplus/llgo/internal/runtime.String" %1) { -_llgo_0: - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %1) - %2 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.UncommonType", ptr %0, i32 0, i32 0 - %3 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2, align 8 - %4 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.UncommonType", ptr %0, i32 0, i32 1 - %5 = load i16, ptr %4, align 2 - %6 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.UncommonType", ptr %0, i32 0, i32 2 - %7 = load i16, ptr %6, align 2 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %8 = zext i16 %5 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %8) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %9 = zext i16 %7 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %9) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"github.com/goplus/llgo/internal/abi.init"() - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = load ptr, ptr @_llgo_bool, align 8 - %3 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %2, 0 - %4 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %3, ptr inttoptr (i64 -1 to ptr), 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %4) - %5 = load ptr, ptr @_llgo_int, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %5, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr null, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %7) - %8 = load ptr, ptr @_llgo_int8, align 8 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %8, 0 - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %9, ptr null, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %10) - %11 = load ptr, ptr @_llgo_int16, align 8 - %12 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %11, 0 - %13 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %12, ptr null, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %13) - %14 = load ptr, ptr @_llgo_int32, align 8 - %15 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %14, 0 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %15, ptr null, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %16) - %17 = load ptr, ptr @_llgo_int64, align 8 - %18 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %17, 0 - %19 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %18, ptr null, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %19) - %20 = load ptr, ptr @_llgo_uint, align 8 - %21 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %20, 0 - %22 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %21, ptr null, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %22) - %23 = load ptr, ptr @_llgo_uint8, align 8 - %24 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %23, 0 - %25 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %24, ptr null, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %25) - %26 = load ptr, ptr @_llgo_uint16, align 8 - %27 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %26, 0 - %28 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %27, ptr null, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %28) - %29 = load ptr, ptr @_llgo_uint32, align 8 - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %29, 0 - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %30, ptr null, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %31) - %32 = load ptr, ptr @_llgo_uint64, align 8 - %33 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %32, 0 - %34 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %33, ptr null, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %34) - %35 = load ptr, ptr @_llgo_uintptr, align 8 - %36 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %35, 0 - %37 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %36, ptr null, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %37) - %38 = load ptr, ptr @_llgo_float32, align 8 - %39 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %38, 0 - %40 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %39, ptr null, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %40) - %41 = load ptr, ptr @_llgo_float64, align 8 - %42 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %41, 0 - %43 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %42, ptr null, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %43) - %44 = load ptr, ptr @"[10]_llgo_int", align 8 - %45 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - store [10 x i64] zeroinitializer, ptr %45, align 4 - %46 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %44, 0 - %47 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %46, ptr %45, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %47) - %48 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %49 = load ptr, ptr @_llgo_Pointer, align 8 - %50 = load ptr, ptr @"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8", align 8 - %51 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store { ptr, ptr } { ptr @"__llgo_stub.main.main$1", ptr null }, ptr %51, align 8 - %52 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %50, 0 - %53 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %52, ptr %51, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %53) - %54 = load ptr, ptr @"*_llgo_int", align 8 - %55 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %54, 0 - %56 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %55, ptr null, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %56) - %57 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 0) - %58 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %57, 0 - %59 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %58, i64 0, 1 - %60 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %59, i64 0, 2 - %61 = load ptr, ptr @"[]_llgo_int", align 8 - %62 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - store %"github.com/goplus/llgo/internal/runtime.Slice" %60, ptr %62, align 8 - %63 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %61, 0 - %64 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %63, ptr %62, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %64) - %65 = load ptr, ptr @_llgo_string, align 8 - %66 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 5 }, ptr %66, align 8 - %67 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %65, 0 - %68 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %67, ptr %66, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %68) - %69 = load ptr, ptr @"main.struct$RKbUG45GE4henGMAdmt0Rju0JptyR8NsX7IZLsOI0OM", align 8 - %70 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - store { i8, i64, i64 } zeroinitializer, ptr %70, align 4 - %71 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %69, 0 - %72 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %71, ptr %70, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %72) - %73 = load ptr, ptr @_llgo_main.T, align 8 - %74 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, ptr %74, align 8 - %75 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %73, 0 - %76 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %75, ptr %74, 1 - call void @main.dump(%"github.com/goplus/llgo/internal/runtime.eface" %76) - ret i32 0 -} - -define void @"main.main$1"() { -_llgo_0: - ret void -} - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/abi.(*Type).String"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/abi.(*Type).Kind"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).Uncommon"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/abi.(*Type).Elem"(ptr) - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringCat"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/abi.init"() - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -define void @"main.init$after"() { -_llgo_0: - %0 = load ptr, ptr @_llgo_bool, align 8 - %1 = icmp eq ptr %0, null - br i1 %1, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 33) - store ptr %2, ptr @_llgo_bool, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @_llgo_int, align 8 - %4 = icmp eq ptr %3, null - br i1 %4, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %5, ptr @_llgo_int, align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %6 = load ptr, ptr @_llgo_int8, align 8 - %7 = icmp eq ptr %6, null - br i1 %7, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) - store ptr %8, ptr @_llgo_int8, align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %9 = load ptr, ptr @_llgo_int16, align 8 - %10 = icmp eq ptr %9, null - br i1 %10, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 36) - store ptr %11, ptr @_llgo_int16, align 8 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - %12 = load ptr, ptr @_llgo_int32, align 8 - %13 = icmp eq ptr %12, null - br i1 %13, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 37) - store ptr %14, ptr @_llgo_int32, align 8 - br label %_llgo_10 - -_llgo_10: ; preds = %_llgo_9, %_llgo_8 - %15 = load ptr, ptr @_llgo_int64, align 8 - %16 = icmp eq ptr %15, null - br i1 %16, label %_llgo_11, label %_llgo_12 - -_llgo_11: ; preds = %_llgo_10 - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 38) - store ptr %17, ptr @_llgo_int64, align 8 - br label %_llgo_12 - -_llgo_12: ; preds = %_llgo_11, %_llgo_10 - %18 = load ptr, ptr @_llgo_uint, align 8 - %19 = icmp eq ptr %18, null - br i1 %19, label %_llgo_13, label %_llgo_14 - -_llgo_13: ; preds = %_llgo_12 - %20 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 39) - store ptr %20, ptr @_llgo_uint, align 8 - br label %_llgo_14 - -_llgo_14: ; preds = %_llgo_13, %_llgo_12 - %21 = load ptr, ptr @_llgo_uint8, align 8 - %22 = icmp eq ptr %21, null - br i1 %22, label %_llgo_15, label %_llgo_16 - -_llgo_15: ; preds = %_llgo_14 - %23 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - store ptr %23, ptr @_llgo_uint8, align 8 - br label %_llgo_16 - -_llgo_16: ; preds = %_llgo_15, %_llgo_14 - %24 = load ptr, ptr @_llgo_uint16, align 8 - %25 = icmp eq ptr %24, null - br i1 %25, label %_llgo_17, label %_llgo_18 - -_llgo_17: ; preds = %_llgo_16 - %26 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 41) - store ptr %26, ptr @_llgo_uint16, align 8 - br label %_llgo_18 - -_llgo_18: ; preds = %_llgo_17, %_llgo_16 - %27 = load ptr, ptr @_llgo_uint32, align 8 - %28 = icmp eq ptr %27, null - br i1 %28, label %_llgo_19, label %_llgo_20 - -_llgo_19: ; preds = %_llgo_18 - %29 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 42) - store ptr %29, ptr @_llgo_uint32, align 8 - br label %_llgo_20 - -_llgo_20: ; preds = %_llgo_19, %_llgo_18 - %30 = load ptr, ptr @_llgo_uint64, align 8 - %31 = icmp eq ptr %30, null - br i1 %31, label %_llgo_21, label %_llgo_22 - -_llgo_21: ; preds = %_llgo_20 - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 43) - store ptr %32, ptr @_llgo_uint64, align 8 - br label %_llgo_22 - -_llgo_22: ; preds = %_llgo_21, %_llgo_20 - %33 = load ptr, ptr @_llgo_uintptr, align 8 - %34 = icmp eq ptr %33, null - br i1 %34, label %_llgo_23, label %_llgo_24 - -_llgo_23: ; preds = %_llgo_22 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) - store ptr %35, ptr @_llgo_uintptr, align 8 - br label %_llgo_24 - -_llgo_24: ; preds = %_llgo_23, %_llgo_22 - %36 = load ptr, ptr @_llgo_float32, align 8 - %37 = icmp eq ptr %36, null - br i1 %37, label %_llgo_25, label %_llgo_26 - -_llgo_25: ; preds = %_llgo_24 - %38 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45) - store ptr %38, ptr @_llgo_float32, align 8 - br label %_llgo_26 - -_llgo_26: ; preds = %_llgo_25, %_llgo_24 - %39 = load ptr, ptr @_llgo_float64, align 8 - %40 = icmp eq ptr %39, null - br i1 %40, label %_llgo_27, label %_llgo_28 - -_llgo_27: ; preds = %_llgo_26 - %41 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 46) - store ptr %41, ptr @_llgo_float64, align 8 - br label %_llgo_28 - -_llgo_28: ; preds = %_llgo_27, %_llgo_26 - %42 = load ptr, ptr @"[10]_llgo_int", align 8 - %43 = icmp eq ptr %42, null - br i1 %43, label %_llgo_29, label %_llgo_30 - -_llgo_29: ; preds = %_llgo_28 - %44 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %45 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 10, ptr %44) - store ptr %45, ptr @"[10]_llgo_int", align 8 - br label %_llgo_30 - -_llgo_30: ; preds = %_llgo_29, %_llgo_28 - %46 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %47 = icmp eq ptr %46, null - br i1 %47, label %_llgo_31, label %_llgo_32 - -_llgo_31: ; preds = %_llgo_30 - %48 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %49 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %48, 0 - %50 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %49, i64 0, 1 - %51 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %50, i64 0, 2 - %52 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %53 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %52, 0 - %54 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %53, i64 0, 1 - %55 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %54, i64 0, 2 - %56 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %51, %"github.com/goplus/llgo/internal/runtime.Slice" %55, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %56) - store ptr %56, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - br label %_llgo_32 - -_llgo_32: ; preds = %_llgo_31, %_llgo_30 - %57 = load ptr, ptr @_llgo_Pointer, align 8 - %58 = icmp eq ptr %57, null - br i1 %58, label %_llgo_33, label %_llgo_34 - -_llgo_33: ; preds = %_llgo_32 - %59 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %59) - store ptr %59, ptr @_llgo_Pointer, align 8 - br label %_llgo_34 - -_llgo_34: ; preds = %_llgo_33, %_llgo_32 - %60 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %61 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %60, 0 - %62 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %61, i64 0, 1 - %63 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %62, i64 0, 2 - %64 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %65 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %64, 0 - %66 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %65, i64 0, 1 - %67 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %66, i64 0, 2 - %68 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %63, %"github.com/goplus/llgo/internal/runtime.Slice" %67, i1 false) - %69 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 2 }, ptr %68, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %70 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %71 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 5 }, ptr %70, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %72 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %73 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %72, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %69, ptr %73, align 8 - %74 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %72, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %71, ptr %74, align 8 - %75 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %72, 0 - %76 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %75, i64 2, 1 - %77 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %76, i64 2, 2 - %78 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %77) - store ptr %78, ptr @"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8", align 8 - %79 = load ptr, ptr @"*_llgo_int", align 8 - %80 = icmp eq ptr %79, null - br i1 %80, label %_llgo_35, label %_llgo_36 - -_llgo_35: ; preds = %_llgo_34 - %81 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %82 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %81) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %82) - store ptr %82, ptr @"*_llgo_int", align 8 - br label %_llgo_36 - -_llgo_36: ; preds = %_llgo_35, %_llgo_34 - %83 = load ptr, ptr @"[]_llgo_int", align 8 - %84 = icmp eq ptr %83, null - br i1 %84, label %_llgo_37, label %_llgo_38 - -_llgo_37: ; preds = %_llgo_36 - %85 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %86 = call ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr %85) - store ptr %86, ptr @"[]_llgo_int", align 8 - br label %_llgo_38 - -_llgo_38: ; preds = %_llgo_37, %_llgo_36 - %87 = load ptr, ptr @_llgo_string, align 8 - %88 = icmp eq ptr %87, null - br i1 %88, label %_llgo_39, label %_llgo_40 - -_llgo_39: ; preds = %_llgo_38 - %89 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %89, ptr @_llgo_string, align 8 - br label %_llgo_40 - -_llgo_40: ; preds = %_llgo_39, %_llgo_38 - %90 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) - %91 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 1 }, ptr %90, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %92 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %93 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 1 }, ptr %92, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %94 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %95 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 1 }, ptr %94, i64 16, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %96 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 168) - %97 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %96, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %91, ptr %97, align 8 - %98 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %96, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %93, ptr %98, align 8 - %99 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %96, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %95, ptr %99, align 8 - %100 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %96, 0 - %101 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %100, i64 3, 1 - %102 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %101, i64 3, 2 - %103 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 4 }, i64 24, %"github.com/goplus/llgo/internal/runtime.Slice" %102) - store ptr %103, ptr @"main.struct$RKbUG45GE4henGMAdmt0Rju0JptyR8NsX7IZLsOI0OM", align 8 - %104 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @10, i64 1 }, i64 24, i64 16, i64 0, i64 1) - %105 = load ptr, ptr @_llgo_main.T, align 8 - %106 = icmp eq ptr %105, null - br i1 %106, label %_llgo_41, label %_llgo_42 - -_llgo_41: ; preds = %_llgo_40 - store ptr %104, ptr @_llgo_main.T, align 8 - br label %_llgo_42 - -_llgo_42: ; preds = %_llgo_41, %_llgo_40 - %107 = load ptr, ptr @_llgo_string, align 8 - br i1 %106, label %_llgo_43, label %_llgo_44 - -_llgo_43: ; preds = %_llgo_42 - %108 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %109 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %108, 1 - %110 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %109, ptr @"main.(*T).Invoke", 2 - %111 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %110, ptr @"main.(*T).Invoke", 3 - %112 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %113 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %112, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %111, ptr %113, align 8 - %114 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %112, 0 - %115 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %114, i64 1, 1 - %116 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %115, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %104, ptr %107, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %116) - br label %_llgo_44 - -_llgo_44: ; preds = %_llgo_43, %_llgo_42 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -define linkonce void @"__llgo_stub.main.main$1"(ptr %0) { -_llgo_0: - tail call void @"main.main$1"() - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.SliceOf"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") diff --git a/cl/_testrt/freevars/out.ll b/cl/_testrt/freevars/out.ll deleted file mode 100644 index 605ae33d..00000000 --- a/cl/_testrt/freevars/out.ll +++ /dev/null @@ -1,98 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - call void @"main.main$1"({ ptr, ptr } { ptr @"__llgo_stub.main.main$2", ptr null }) - ret i32 0 -} - -define void @"main.main$1"({ ptr, ptr } %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - store { ptr, ptr } %0, ptr %1, align 8 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %3 = getelementptr inbounds { ptr }, ptr %2, i32 0, i32 0 - store ptr %1, ptr %3, align 8 - %4 = insertvalue { ptr, ptr } { ptr @"main.main$1$1", ptr undef }, ptr %2, 1 - %5 = extractvalue { ptr, ptr } %4, 1 - %6 = extractvalue { ptr, ptr } %4, 0 - call void %6(ptr %5, %"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) - ret void -} - -define void @"main.main$1$1"(ptr %0, %"github.com/goplus/llgo/internal/runtime.iface" %1) { -_llgo_0: - %2 = load { ptr }, ptr %0, align 8 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" %1) - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %1, 1 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %3, 0 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %5, ptr %4, 1 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %7, 0 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %8, ptr null, 1 - %10 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %6, %"github.com/goplus/llgo/internal/runtime.eface" %9) - %11 = xor i1 %10, true - br i1 %11, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %12 = extractvalue { ptr } %2, 0 - %13 = load { ptr, ptr }, ptr %12, align 8 - %14 = extractvalue { ptr, ptr } %13, 1 - %15 = extractvalue { ptr, ptr } %13, 0 - call void %15(ptr %14, %"github.com/goplus/llgo/internal/runtime.iface" %1) - ret void - -_llgo_2: ; preds = %_llgo_0 - %16 = extractvalue { ptr } %2, 0 - %17 = load { ptr, ptr }, ptr %16, align 8 - %18 = extractvalue { ptr, ptr } %17, 1 - %19 = extractvalue { ptr, ptr } %17, 0 - call void %19(ptr %18, %"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) - ret void -} - -define void @"main.main$2"(%"github.com/goplus/llgo/internal/runtime.iface" %0) { -_llgo_0: - ret void -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -define linkonce void @"__llgo_stub.main.main$2"(ptr %0, %"github.com/goplus/llgo/internal/runtime.iface" %1) { -_llgo_0: - tail call void @"main.main$2"(%"github.com/goplus/llgo/internal/runtime.iface" %1) - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface", %"github.com/goplus/llgo/internal/runtime.eface") - -declare ptr @"github.com/goplus/llgo/internal/runtime.IfaceType"(%"github.com/goplus/llgo/internal/runtime.iface") diff --git a/cl/_testrt/funcdecl/out.ll b/cl/_testrt/funcdecl/out.ll deleted file mode 100644 index de1d33d6..00000000 --- a/cl/_testrt/funcdecl/out.ll +++ /dev/null @@ -1,238 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%main.rtype = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } - -@"main.init$guard" = global i1 false, align 1 -@"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 -@_llgo_Pointer = linkonce global ptr null, align 8 -@"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8" = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [2 x i8] c"$f", align 1 -@1 = private unnamed_addr constant [5 x i8] c"$data", align 1 -@2 = private unnamed_addr constant [4 x i8] c"main", align 1 -@3 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 -@_llgo_string = linkonce global ptr null, align 8 -@4 = private unnamed_addr constant [4 x i8] c"demo", align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@5 = private unnamed_addr constant [5 x i8] c"hello", align 1 - -define void @main.check({ ptr, ptr } %0) { -_llgo_0: - %1 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %2 = load ptr, ptr @_llgo_Pointer, align 8 - %3 = load ptr, ptr @"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8", align 8 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store { ptr, ptr } { ptr @__llgo_stub.main.demo, ptr null }, ptr %4, align 8 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %3, 0 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %5, ptr %4, 1 - %7 = load ptr, ptr @"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8", align 8 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store { ptr, ptr } %0, ptr %8, align 8 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %7, 0 - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %9, ptr %8, 1 - %11 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, 0 - %12 = load ptr, ptr @"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8", align 8 - %13 = icmp eq ptr %11, %12 - br i1 %13, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %14 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, 1 - %15 = load { ptr, ptr }, ptr %14, align 8 - %16 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %10, 0 - %17 = load ptr, ptr @"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8", align 8 - %18 = icmp eq ptr %16, %17 - br i1 %18, label %_llgo_3, label %_llgo_4 - -_llgo_2: ; preds = %_llgo_0 - %19 = load ptr, ptr @_llgo_string, align 8 - %20 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 21 }, ptr %20, align 8 - %21 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %19, 0 - %22 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %21, ptr %20, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %22) - unreachable - -_llgo_3: ; preds = %_llgo_1 - %23 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %10, 1 - %24 = load { ptr, ptr }, ptr %23, align 8 - call void @"github.com/goplus/llgo/internal/runtime.PrintEface"(%"github.com/goplus/llgo/internal/runtime.eface" %6) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintEface"(%"github.com/goplus/llgo/internal/runtime.eface" %10) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %25 = extractvalue { ptr, ptr } %0, 0 - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %25) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %26 = extractvalue { ptr, ptr } %15, 0 - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %26) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - %27 = extractvalue { ptr, ptr } %24, 0 - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %27) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr @main.demo) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %28 = call ptr @main.closurePtr(%"github.com/goplus/llgo/internal/runtime.eface" %6) - %29 = call ptr @main.closurePtr(%"github.com/goplus/llgo/internal/runtime.eface" %10) - %30 = icmp eq ptr %28, %29 - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %30) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void - -_llgo_4: ; preds = %_llgo_1 - %31 = load ptr, ptr @_llgo_string, align 8 - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 21 }, ptr %32, align 8 - %33 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %31, 0 - %34 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %33, ptr %32, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %34) - unreachable -} - -define ptr @main.closurePtr(%"github.com/goplus/llgo/internal/runtime.eface" %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.eface" %0, ptr %1, align 8 - %2 = getelementptr inbounds %main.rtype, ptr %1, i32 0, i32 1 - %3 = load ptr, ptr %2, align 8 - %4 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 0 - %5 = load ptr, ptr %4, align 8 - ret ptr %5 -} - -define void @main.demo() { -_llgo_0: - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 5 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - call void @main.check({ ptr, ptr } { ptr @__llgo_stub.main.demo, ptr null }) - ret i32 0 -} - -define linkonce void @__llgo_stub.main.demo(ptr %0) { -_llgo_0: - tail call void @main.demo() - ret void -} - -define void @"main.init$after"() { -_llgo_0: - %0 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %1 = icmp eq ptr %0, null - br i1 %1, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %3 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %2, 0 - %4 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %3, i64 0, 1 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %4, i64 0, 2 - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %6, 0 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %7, i64 0, 1 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %8, i64 0, 2 - %10 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %5, %"github.com/goplus/llgo/internal/runtime.Slice" %9, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %10) - store ptr %10, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %11 = load ptr, ptr @_llgo_Pointer, align 8 - %12 = icmp eq ptr %11, null - br i1 %12, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %13 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %13) - store ptr %13, ptr @_llgo_Pointer, align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %15 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %14, 0 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %15, i64 0, 1 - %17 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %16, i64 0, 2 - %18 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %19 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %18, 0 - %20 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %19, i64 0, 1 - %21 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %20, i64 0, 2 - %22 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %17, %"github.com/goplus/llgo/internal/runtime.Slice" %21, i1 false) - %23 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 2 }, ptr %22, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %24 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %25 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 5 }, ptr %24, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %26 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %27 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %26, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %23, ptr %27, align 8 - %28 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %26, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %25, ptr %28, align 8 - %29 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %26, 0 - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %29, i64 2, 1 - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %30, i64 2, 2 - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %31) - store ptr %32, ptr @"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8", align 8 - %33 = load ptr, ptr @_llgo_string, align 8 - %34 = icmp eq ptr %33, null - br i1 %34, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %35, ptr @_llgo_string, align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintEface"(%"github.com/goplus/llgo/internal/runtime.eface") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.init"() diff --git a/cl/_testrt/len/out.ll b/cl/_testrt/len/out.ll deleted file mode 100644 index 18e7470b..00000000 --- a/cl/_testrt/len/out.ll +++ /dev/null @@ -1,229 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%main.data = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice" } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@_llgo_int = linkonce global ptr null, align 8 -@_llgo_string = linkonce global ptr null, align 8 -@"map[_llgo_int]_llgo_string" = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [7 x i8] c"topbits", align 1 -@1 = private unnamed_addr constant [4 x i8] c"keys", align 1 -@2 = private unnamed_addr constant [5 x i8] c"elems", align 1 -@3 = private unnamed_addr constant [8 x i8] c"overflow", align 1 -@4 = private unnamed_addr constant [4 x i8] c"main", align 1 -@5 = private unnamed_addr constant [5 x i8] c"hello", align 1 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 56) - %3 = getelementptr inbounds %main.data, ptr %2, i32 0, i32 0 - %4 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %3, align 8 - %5 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %4, 1 - %6 = getelementptr inbounds %main.data, ptr %2, i32 0, i32 1 - %7 = load ptr, ptr %6, align 8 - %8 = call i64 @"github.com/goplus/llgo/internal/runtime.ChanLen"(ptr %7) - %9 = getelementptr inbounds %main.data, ptr %2, i32 0, i32 2 - %10 = load ptr, ptr %9, align 8 - %11 = call i64 @"github.com/goplus/llgo/internal/runtime.MapLen"(ptr %10) - %12 = getelementptr inbounds %main.data, ptr %2, i32 0, i32 3 - %13 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %12, align 8 - %14 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %13, 1 - %15 = getelementptr inbounds %main.data, ptr %2, i32 0, i32 1 - %16 = load ptr, ptr %15, align 8 - %17 = call i64 @"github.com/goplus/llgo/internal/runtime.ChanCap"(ptr %16) - %18 = getelementptr inbounds %main.data, ptr %2, i32 0, i32 3 - %19 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %18, align 8 - %20 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %19, 2 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %5) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %8) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %11) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %14) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %17) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %20) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %21 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 56) - %22 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 0 - %23 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 1 - %24 = call ptr @"github.com/goplus/llgo/internal/runtime.NewChan"(i64 8, i64 2) - %25 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 2 - %26 = load ptr, ptr @_llgo_int, align 8 - %27 = load ptr, ptr @_llgo_string, align 8 - %28 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %29 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %28, i64 1) - %30 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %31 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store i64 1, ptr %31, align 4 - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %30, ptr %29, ptr %31) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 5 }, ptr %32, align 8 - %33 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 3 - %34 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) - %35 = getelementptr inbounds i64, ptr %34, i64 0 - store i64 1, ptr %35, align 4 - %36 = getelementptr inbounds i64, ptr %34, i64 1 - store i64 2, ptr %36, align 4 - %37 = getelementptr inbounds i64, ptr %34, i64 2 - store i64 3, ptr %37, align 4 - %38 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %34, 0 - %39 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %38, i64 3, 1 - %40 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %39, i64 3, 2 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 5 }, ptr %22, align 8 - store ptr %24, ptr %23, align 8 - store ptr %29, ptr %25, align 8 - store %"github.com/goplus/llgo/internal/runtime.Slice" %40, ptr %33, align 8 - %41 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 0 - %42 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %41, align 8 - %43 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %42, 1 - %44 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 1 - %45 = load ptr, ptr %44, align 8 - %46 = call i64 @"github.com/goplus/llgo/internal/runtime.ChanLen"(ptr %45) - %47 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 2 - %48 = load ptr, ptr %47, align 8 - %49 = call i64 @"github.com/goplus/llgo/internal/runtime.MapLen"(ptr %48) - %50 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 3 - %51 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %50, align 8 - %52 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %51, 1 - %53 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 1 - %54 = load ptr, ptr %53, align 8 - %55 = call i64 @"github.com/goplus/llgo/internal/runtime.ChanCap"(ptr %54) - %56 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 3 - %57 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %56, align 8 - %58 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %57, 2 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %43) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %46) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %49) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %52) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %55) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %58) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare i64 @"github.com/goplus/llgo/internal/runtime.ChanLen"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/runtime.MapLen"(ptr) - -declare i64 @"github.com/goplus/llgo/internal/runtime.ChanCap"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewChan"(i64, i64) - -define void @"main.init$after"() { -_llgo_0: - %0 = load ptr, ptr @_llgo_int, align 8 - %1 = icmp eq ptr %0, null - br i1 %1, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %2, ptr @_llgo_int, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @_llgo_string, align 8 - %4 = icmp eq ptr %3, null - br i1 %4, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %5, ptr @_llgo_string, align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %6 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %7 = icmp eq ptr %6, null - br i1 %7, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %10 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %10) - %12 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 7 }, ptr %11, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %13 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %13) - %15 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, ptr %14, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %16 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %16) - %18 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 5 }, ptr %17, i64 72, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %19 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %20 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 8 }, ptr %19, i64 200, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %21 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %22 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %21, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %12, ptr %22, align 8 - %23 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %21, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %15, ptr %23, align 8 - %24 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %21, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %18, ptr %24, align 8 - %25 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %21, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %20, ptr %25, align 8 - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %21, 0 - %27 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %26, i64 4, 1 - %28 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %27, i64 4, 2 - %29 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, i64 208, %"github.com/goplus/llgo/internal/runtime.Slice" %28) - %30 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %8, ptr %9, ptr %29, i64 4) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %30) - store ptr %30, ptr @"map[_llgo_int]_llgo_string", align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr, ptr, ptr, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr, ptr, ptr) diff --git a/cl/_testrt/linkname/out.ll b/cl/_testrt/linkname/out.ll deleted file mode 100644 index 620d6110..00000000 --- a/cl/_testrt/linkname/out.ll +++ /dev/null @@ -1,65 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%main.m = type { %"github.com/goplus/llgo/internal/runtime.String" } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [2 x i8] c"a\00", align 1 -@1 = private unnamed_addr constant [2 x i8] c"b\00", align 1 -@2 = private unnamed_addr constant [2 x i8] c"c\00", align 1 -@3 = private unnamed_addr constant [2 x i8] c"d\00", align 1 -@4 = private unnamed_addr constant [2 x i8] c"1\00", align 1 -@5 = private unnamed_addr constant [2 x i8] c"2\00", align 1 -@6 = private unnamed_addr constant [2 x i8] c"3\00", align 1 -@7 = private unnamed_addr constant [2 x i8] c"4\00", align 1 -@8 = private unnamed_addr constant [5 x i8] c"hello", align 1 - -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/cl/internal/linktarget.m.info"(%main.m) - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"github.com/goplus/llgo/cl/internal/linktarget.init"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - call void @"github.com/goplus/llgo/cl/internal/linktarget.F"(ptr @0, ptr @1, ptr @2, ptr @3) - call void @"github.com/goplus/llgo/cl/internal/linktarget.F"(ptr @4, ptr @5, ptr @6, ptr @7) - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - call void @"github.com/goplus/llgo/cl/internal/linktarget.(*m).setInfo"(ptr %2, %"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 5 }) - %3 = load %main.m, ptr %2, align 8 - %4 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/cl/internal/linktarget.m.info"(%main.m %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %4) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -declare void @"github.com/goplus/llgo/cl/internal/linktarget.F"(ptr, ptr, ptr, ptr) - -declare void @"github.com/goplus/llgo/cl/internal/linktarget.(*m).setInfo"(ptr, %"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/cl/internal/linktarget.init"() - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) diff --git a/cl/_testrt/makemap/out.ll b/cl/_testrt/makemap/out.ll deleted file mode 100644 index fac1e3c0..00000000 --- a/cl/_testrt/makemap/out.ll +++ /dev/null @@ -1,1335 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%main.N = type { i8, i8 } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@_llgo_int = linkonce global ptr null, align 8 -@_llgo_string = linkonce global ptr null, align 8 -@"map[_llgo_int]_llgo_string" = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [7 x i8] c"topbits", align 1 -@1 = private unnamed_addr constant [4 x i8] c"keys", align 1 -@2 = private unnamed_addr constant [5 x i8] c"elems", align 1 -@3 = private unnamed_addr constant [8 x i8] c"overflow", align 1 -@4 = private unnamed_addr constant [4 x i8] c"main", align 1 -@5 = private unnamed_addr constant [5 x i8] c"hello", align 1 -@6 = private unnamed_addr constant [5 x i8] c"world", align 1 -@7 = private unnamed_addr constant [4 x i8] c"llgo", align 1 -@8 = private unnamed_addr constant [1 x i8] c":", align 1 -@"map[_llgo_string]_llgo_int" = linkonce global ptr null, align 8 -@9 = private unnamed_addr constant [2 x i8] c"go", align 1 -@10 = private unnamed_addr constant [7 x i8] c"bad key", align 1 -@11 = private unnamed_addr constant [7 x i8] c"bad len", align 1 -@_llgo_any = linkonce global ptr null, align 8 -@"map[_llgo_any]_llgo_int" = linkonce global ptr null, align 8 -@_llgo_main.N1 = linkonce global ptr null, align 8 -@12 = private unnamed_addr constant [2 x i8] c"N1", align 1 -@"[1]_llgo_int" = linkonce global ptr null, align 8 -@13 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 -@_llgo_main.K = linkonce global ptr null, align 8 -@14 = private unnamed_addr constant [1 x i8] c"K", align 1 -@_llgo_main.N = linkonce global ptr null, align 8 -@15 = private unnamed_addr constant [1 x i8] c"N", align 1 -@_llgo_int8 = linkonce global ptr null, align 8 -@"main.struct$e65EDK9vxC36Nz3YTgO1ulssLlNH03Bva_WWaCjH-4A" = linkonce global ptr null, align 8 -@16 = private unnamed_addr constant [2 x i8] c"n1", align 1 -@17 = private unnamed_addr constant [2 x i8] c"n2", align 1 -@"[1]_llgo_main.N" = linkonce global ptr null, align 8 -@_llgo_main.K2 = linkonce global ptr null, align 8 -@18 = private unnamed_addr constant [2 x i8] c"K2", align 1 -@"*_llgo_main.N" = linkonce global ptr null, align 8 -@"[1]*_llgo_main.N" = linkonce global ptr null, align 8 -@"chan _llgo_int" = linkonce global ptr null, align 8 -@19 = private unnamed_addr constant [4 x i8] c"chan", align 1 -@"map[chan _llgo_int]_llgo_int" = linkonce global ptr null, align 8 -@_llgo_main.M = linkonce global ptr null, align 8 -@20 = private unnamed_addr constant [1 x i8] c"M", align 1 -@"map[_llgo_main.N]_llgo_string" = linkonce global ptr null, align 8 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - call void @main.make1() - call void @main.make2() - call void @main.make3() - call void @main.make4() - call void @main.make5() - call void @main.make6() - call void @main.make7() - ret i32 0 -} - -define void @main.make1() { -_llgo_0: - %0 = load ptr, ptr @_llgo_int, align 8 - %1 = load ptr, ptr @_llgo_string, align 8 - %2 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %2, i64 0) - %4 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store i64 1, ptr %5, align 4 - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %4, ptr %3, ptr %5) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 5 }, ptr %6, align 8 - %7 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store i64 2, ptr %8, align 4 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %7, ptr %3, ptr %8) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 5 }, ptr %9, align 8 - %10 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store i64 3, ptr %11, align 4 - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %10, ptr %3, ptr %11) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 4 }, ptr %12, align 8 - %13 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store i64 1, ptr %14, align 4 - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAccess1"(ptr %13, ptr %3, ptr %14) - %16 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %15, align 8 - %17 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %18 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store i64 2, ptr %18, align 4 - %19 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAccess1"(ptr %17, ptr %3, ptr %18) - %20 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %19, align 8 - %21 = call i64 @"github.com/goplus/llgo/internal/runtime.MapLen"(ptr %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %16) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %20) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %21) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %22 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %23 = call ptr @"github.com/goplus/llgo/internal/runtime.NewMapIter"(ptr %22, ptr %3) - br label %_llgo_1 - -_llgo_1: ; preds = %_llgo_2, %_llgo_0 - %24 = call { i1, ptr, ptr } @"github.com/goplus/llgo/internal/runtime.MapIterNext"(ptr %23) - %25 = extractvalue { i1, ptr, ptr } %24, 0 - br i1 %25, label %_llgo_11, label %_llgo_12 - -_llgo_2: ; preds = %_llgo_13 - %26 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %88, 1 - %27 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %88, 2 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %26) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 1 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %27) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - br label %_llgo_1 - -_llgo_3: ; preds = %_llgo_13 - %28 = call i64 @"github.com/goplus/llgo/internal/runtime.MapLen"(ptr %3) - %29 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 - %30 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %29, i64 %28) - %31 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.NewMapIter"(ptr %31, ptr %3) - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_5, %_llgo_3 - %33 = call { i1, ptr, ptr } @"github.com/goplus/llgo/internal/runtime.MapIterNext"(ptr %32) - %34 = extractvalue { i1, ptr, ptr } %33, 0 - br i1 %34, label %_llgo_14, label %_llgo_15 - -_llgo_5: ; preds = %_llgo_16 - %35 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %96, 1 - %36 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %96, 2 - %37 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 - %38 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" %36, ptr %38, align 8 - %39 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %37, ptr %30, ptr %38) - store i64 %35, ptr %39, align 4 - br label %_llgo_4 - -_llgo_6: ; preds = %_llgo_16 - %40 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 - %41 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 4 }, ptr %41, align 8 - %42 = call { ptr, i1 } @"github.com/goplus/llgo/internal/runtime.MapAccess2"(ptr %40, ptr %30, ptr %41) - %43 = extractvalue { ptr, i1 } %42, 0 - %44 = load i64, ptr %43, align 4 - %45 = extractvalue { ptr, i1 } %42, 1 - %46 = insertvalue { i64, i1 } undef, i64 %44, 0 - %47 = insertvalue { i64, i1 } %46, i1 %45, 1 - %48 = extractvalue { i64, i1 } %47, 0 - %49 = extractvalue { i64, i1 } %47, 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 4 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %48) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %49) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %50 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 - %51 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 2 }, ptr %51, align 8 - %52 = call { ptr, i1 } @"github.com/goplus/llgo/internal/runtime.MapAccess2"(ptr %50, ptr %30, ptr %51) - %53 = extractvalue { ptr, i1 } %52, 0 - %54 = load i64, ptr %53, align 4 - %55 = extractvalue { ptr, i1 } %52, 1 - %56 = insertvalue { i64, i1 } undef, i64 %54, 0 - %57 = insertvalue { i64, i1 } %56, i1 %55, 1 - %58 = extractvalue { i64, i1 } %57, 0 - %59 = extractvalue { i64, i1 } %57, 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 2 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %58) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %59) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %60 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 - %61 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 4 }, ptr %61, align 8 - call void @"github.com/goplus/llgo/internal/runtime.MapDelete"(ptr %60, ptr %30, ptr %61) - %62 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 - %63 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 4 }, ptr %63, align 8 - %64 = call { ptr, i1 } @"github.com/goplus/llgo/internal/runtime.MapAccess2"(ptr %62, ptr %30, ptr %63) - %65 = extractvalue { ptr, i1 } %64, 0 - %66 = load i64, ptr %65, align 4 - %67 = extractvalue { ptr, i1 } %64, 1 - %68 = insertvalue { i64, i1 } undef, i64 %66, 0 - %69 = insertvalue { i64, i1 } %68, i1 %67, 1 - %70 = extractvalue { i64, i1 } %69, 0 - %71 = extractvalue { i64, i1 } %69, 1 - br i1 %71, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - %72 = load ptr, ptr @_llgo_string, align 8 - %73 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @10, i64 7 }, ptr %73, align 8 - %74 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %72, 0 - %75 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %74, ptr %73, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %75) - unreachable - -_llgo_8: ; preds = %_llgo_6 - %76 = call i64 @"github.com/goplus/llgo/internal/runtime.MapLen"(ptr %30) - %77 = icmp ne i64 %76, 2 - br i1 %77, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - %78 = load ptr, ptr @_llgo_string, align 8 - %79 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 7 }, ptr %79, align 8 - %80 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %78, 0 - %81 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %80, ptr %79, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %81) - unreachable - -_llgo_10: ; preds = %_llgo_8 - ret void - -_llgo_11: ; preds = %_llgo_1 - %82 = extractvalue { i1, ptr, ptr } %24, 1 - %83 = extractvalue { i1, ptr, ptr } %24, 2 - %84 = load i64, ptr %82, align 4 - %85 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %83, align 8 - %86 = insertvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } { i1 true, i64 undef, %"github.com/goplus/llgo/internal/runtime.String" undef }, i64 %84, 1 - %87 = insertvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %86, %"github.com/goplus/llgo/internal/runtime.String" %85, 2 - br label %_llgo_13 - -_llgo_12: ; preds = %_llgo_1 - br label %_llgo_13 - -_llgo_13: ; preds = %_llgo_12, %_llgo_11 - %88 = phi { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } [ %87, %_llgo_11 ], [ zeroinitializer, %_llgo_12 ] - %89 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %88, 0 - br i1 %89, label %_llgo_2, label %_llgo_3 - -_llgo_14: ; preds = %_llgo_4 - %90 = extractvalue { i1, ptr, ptr } %33, 1 - %91 = extractvalue { i1, ptr, ptr } %33, 2 - %92 = load i64, ptr %90, align 4 - %93 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %91, align 8 - %94 = insertvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } { i1 true, i64 undef, %"github.com/goplus/llgo/internal/runtime.String" undef }, i64 %92, 1 - %95 = insertvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %94, %"github.com/goplus/llgo/internal/runtime.String" %93, 2 - br label %_llgo_16 - -_llgo_15: ; preds = %_llgo_4 - br label %_llgo_16 - -_llgo_16: ; preds = %_llgo_15, %_llgo_14 - %96 = phi { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } [ %95, %_llgo_14 ], [ zeroinitializer, %_llgo_15 ] - %97 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %96, 0 - br i1 %97, label %_llgo_5, label %_llgo_6 -} - -define void @main.make2() { -_llgo_0: - %0 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %0, i64 0) - %2 = call i64 @"github.com/goplus/llgo/internal/runtime.MapLen"(ptr %1) - %3 = icmp eq ptr %1, null - %4 = icmp ne ptr %1, null - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %1) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %2) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %4) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %5 = call i64 @"github.com/goplus/llgo/internal/runtime.MapLen"(ptr null) - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr null) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %5) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 true) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 false) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %6 = load ptr, ptr @_llgo_any, align 8 - %7 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %7, i64 0) - %9 = alloca [1 x i64], align 8 - call void @llvm.memset(ptr %9, i8 0, i64 8, i1 false) - %10 = getelementptr inbounds i64, ptr %9, i64 0 - store i64 1, ptr %10, align 4 - %11 = load [1 x i64], ptr %9, align 4 - %12 = load ptr, ptr @_llgo_main.N1, align 8 - %13 = extractvalue [1 x i64] %11, 0 - %14 = inttoptr i64 %13 to ptr - %15 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %12, 0 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %15, ptr %14, 1 - %17 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 - %18 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.eface" %16, ptr %18, align 8 - %19 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %17, ptr %8, ptr %18) - store i64 100, ptr %19, align 4 - %20 = alloca [1 x i64], align 8 - call void @llvm.memset(ptr %20, i8 0, i64 8, i1 false) - %21 = getelementptr inbounds i64, ptr %20, i64 0 - store i64 2, ptr %21, align 4 - %22 = load [1 x i64], ptr %20, align 4 - %23 = load ptr, ptr @_llgo_main.N1, align 8 - %24 = extractvalue [1 x i64] %22, 0 - %25 = inttoptr i64 %24 to ptr - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %23, 0 - %27 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %26, ptr %25, 1 - %28 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 - %29 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.eface" %27, ptr %29, align 8 - %30 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %28, ptr %8, ptr %29) - store i64 200, ptr %30, align 4 - %31 = alloca [1 x i64], align 8 - call void @llvm.memset(ptr %31, i8 0, i64 8, i1 false) - %32 = getelementptr inbounds i64, ptr %31, i64 0 - store i64 3, ptr %32, align 4 - %33 = load [1 x i64], ptr %31, align 4 - %34 = load ptr, ptr @_llgo_main.N1, align 8 - %35 = extractvalue [1 x i64] %33, 0 - %36 = inttoptr i64 %35 to ptr - %37 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %34, 0 - %38 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %37, ptr %36, 1 - %39 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 - %40 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.eface" %38, ptr %40, align 8 - %41 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %39, ptr %8, ptr %40) - store i64 300, ptr %41, align 4 - %42 = alloca [1 x i64], align 8 - call void @llvm.memset(ptr %42, i8 0, i64 8, i1 false) - %43 = getelementptr inbounds i64, ptr %42, i64 0 - store i64 2, ptr %43, align 4 - %44 = load [1 x i64], ptr %42, align 4 - %45 = load ptr, ptr @_llgo_main.N1, align 8 - %46 = extractvalue [1 x i64] %44, 0 - %47 = inttoptr i64 %46 to ptr - %48 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %45, 0 - %49 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %48, ptr %47, 1 - %50 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 - %51 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.eface" %49, ptr %51, align 8 - %52 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %50, ptr %8, ptr %51) - store i64 -200, ptr %52, align 4 - %53 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 - %54 = call ptr @"github.com/goplus/llgo/internal/runtime.NewMapIter"(ptr %53, ptr %8) - br label %_llgo_1 - -_llgo_1: ; preds = %_llgo_7, %_llgo_0 - %55 = call { i1, ptr, ptr } @"github.com/goplus/llgo/internal/runtime.MapIterNext"(ptr %54) - %56 = extractvalue { i1, ptr, ptr } %55, 0 - br i1 %56, label %_llgo_4, label %_llgo_5 - -_llgo_2: ; preds = %_llgo_6 - %57 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %68, 1 - %58 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %68, 2 - %59 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %57, 0 - %60 = load ptr, ptr @_llgo_main.N1, align 8 - %61 = icmp eq ptr %59, %60 - br i1 %61, label %_llgo_7, label %_llgo_8 - -_llgo_3: ; preds = %_llgo_6 - ret void - -_llgo_4: ; preds = %_llgo_1 - %62 = extractvalue { i1, ptr, ptr } %55, 1 - %63 = extractvalue { i1, ptr, ptr } %55, 2 - %64 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %62, align 8 - %65 = load i64, ptr %63, align 4 - %66 = insertvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } { i1 true, %"github.com/goplus/llgo/internal/runtime.eface" undef, i64 undef }, %"github.com/goplus/llgo/internal/runtime.eface" %64, 1 - %67 = insertvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %66, i64 %65, 2 - br label %_llgo_6 - -_llgo_5: ; preds = %_llgo_1 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %68 = phi { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } [ %67, %_llgo_4 ], [ zeroinitializer, %_llgo_5 ] - %69 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %68, 0 - br i1 %69, label %_llgo_2, label %_llgo_3 - -_llgo_7: ; preds = %_llgo_2 - %70 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %57, 1 - %71 = ptrtoint ptr %70 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %71) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %58) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - br label %_llgo_1 - -_llgo_8: ; preds = %_llgo_2 - %72 = load ptr, ptr @_llgo_string, align 8 - %73 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @13, i64 21 }, ptr %73, align 8 - %74 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %72, 0 - %75 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %74, ptr %73, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %75) - unreachable -} - -define void @main.make3() { -_llgo_0: - %0 = alloca [1 x %main.N], align 8 - call void @llvm.memset(ptr %0, i8 0, i64 2, i1 false) - %1 = getelementptr inbounds %main.N, ptr %0, i64 0 - %2 = getelementptr inbounds %main.N, ptr %1, i32 0, i32 0 - %3 = getelementptr inbounds %main.N, ptr %1, i32 0, i32 1 - store i8 1, ptr %2, align 1 - store i8 2, ptr %3, align 1 - %4 = load [1 x %main.N], ptr %0, align 1 - %5 = load ptr, ptr @_llgo_main.K, align 8 - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 2) - store [1 x %main.N] %4, ptr %6, align 1 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %5, 0 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %7, ptr %6, 1 - %9 = alloca [1 x %main.N], align 8 - call void @llvm.memset(ptr %9, i8 0, i64 2, i1 false) - %10 = getelementptr inbounds %main.N, ptr %9, i64 0 - %11 = getelementptr inbounds %main.N, ptr %10, i32 0, i32 0 - %12 = getelementptr inbounds %main.N, ptr %10, i32 0, i32 1 - store i8 1, ptr %11, align 1 - store i8 2, ptr %12, align 1 - %13 = load [1 x %main.N], ptr %9, align 1 - %14 = load ptr, ptr @_llgo_main.K, align 8 - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 2) - store [1 x %main.N] %13, ptr %15, align 1 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %14, 0 - %17 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %16, ptr %15, 1 - %18 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %8, %"github.com/goplus/llgo/internal/runtime.eface" %17) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %18) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %19 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 - %20 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %19, i64 0) - %21 = alloca [1 x %main.N], align 8 - call void @llvm.memset(ptr %21, i8 0, i64 2, i1 false) - %22 = getelementptr inbounds %main.N, ptr %21, i64 0 - %23 = getelementptr inbounds %main.N, ptr %22, i32 0, i32 0 - %24 = getelementptr inbounds %main.N, ptr %22, i32 0, i32 1 - store i8 1, ptr %23, align 1 - store i8 2, ptr %24, align 1 - %25 = load [1 x %main.N], ptr %21, align 1 - %26 = load ptr, ptr @_llgo_main.K, align 8 - %27 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 2) - store [1 x %main.N] %25, ptr %27, align 1 - %28 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %26, 0 - %29 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %28, ptr %27, 1 - %30 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 - %31 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.eface" %29, ptr %31, align 8 - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %30, ptr %20, ptr %31) - store i64 100, ptr %32, align 4 - %33 = alloca [1 x %main.N], align 8 - call void @llvm.memset(ptr %33, i8 0, i64 2, i1 false) - %34 = getelementptr inbounds %main.N, ptr %33, i64 0 - %35 = getelementptr inbounds %main.N, ptr %34, i32 0, i32 0 - %36 = getelementptr inbounds %main.N, ptr %34, i32 0, i32 1 - store i8 3, ptr %35, align 1 - store i8 4, ptr %36, align 1 - %37 = load [1 x %main.N], ptr %33, align 1 - %38 = load ptr, ptr @_llgo_main.K, align 8 - %39 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 2) - store [1 x %main.N] %37, ptr %39, align 1 - %40 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %38, 0 - %41 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %40, ptr %39, 1 - %42 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 - %43 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.eface" %41, ptr %43, align 8 - %44 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %42, ptr %20, ptr %43) - store i64 200, ptr %44, align 4 - %45 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 - %46 = call ptr @"github.com/goplus/llgo/internal/runtime.NewMapIter"(ptr %45, ptr %20) - br label %_llgo_1 - -_llgo_1: ; preds = %_llgo_7, %_llgo_0 - %47 = call { i1, ptr, ptr } @"github.com/goplus/llgo/internal/runtime.MapIterNext"(ptr %46) - %48 = extractvalue { i1, ptr, ptr } %47, 0 - br i1 %48, label %_llgo_4, label %_llgo_5 - -_llgo_2: ; preds = %_llgo_6 - %49 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %60, 1 - %50 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %60, 2 - %51 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %49, 0 - %52 = load ptr, ptr @_llgo_main.K, align 8 - %53 = icmp eq ptr %51, %52 - br i1 %53, label %_llgo_7, label %_llgo_8 - -_llgo_3: ; preds = %_llgo_6 - ret void - -_llgo_4: ; preds = %_llgo_1 - %54 = extractvalue { i1, ptr, ptr } %47, 1 - %55 = extractvalue { i1, ptr, ptr } %47, 2 - %56 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %54, align 8 - %57 = load i64, ptr %55, align 4 - %58 = insertvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } { i1 true, %"github.com/goplus/llgo/internal/runtime.eface" undef, i64 undef }, %"github.com/goplus/llgo/internal/runtime.eface" %56, 1 - %59 = insertvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %58, i64 %57, 2 - br label %_llgo_6 - -_llgo_5: ; preds = %_llgo_1 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %60 = phi { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } [ %59, %_llgo_4 ], [ zeroinitializer, %_llgo_5 ] - %61 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %60, 0 - br i1 %61, label %_llgo_2, label %_llgo_3 - -_llgo_7: ; preds = %_llgo_2 - %62 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %49, 1 - %63 = load [1 x %main.N], ptr %62, align 1 - %64 = alloca [1 x %main.N], align 8 - call void @llvm.memset(ptr %64, i8 0, i64 2, i1 false) - store [1 x %main.N] %63, ptr %64, align 1 - %65 = getelementptr inbounds %main.N, ptr %64, i64 0 - %66 = load %main.N, ptr %65, align 1 - %67 = extractvalue %main.N %66, 0 - %68 = sext i8 %67 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %68) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %50) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - br label %_llgo_1 - -_llgo_8: ; preds = %_llgo_2 - %69 = load ptr, ptr @_llgo_string, align 8 - %70 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @13, i64 21 }, ptr %70, align 8 - %71 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %69, 0 - %72 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %71, ptr %70, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %72) - unreachable -} - -define void @main.make4() { -_llgo_0: - %0 = alloca [1 x ptr], align 8 - call void @llvm.memset(ptr %0, i8 0, i64 8, i1 false) - %1 = getelementptr inbounds ptr, ptr %0, i64 0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 2) - %3 = getelementptr inbounds %main.N, ptr %2, i32 0, i32 0 - %4 = getelementptr inbounds %main.N, ptr %2, i32 0, i32 1 - store i8 1, ptr %3, align 1 - store i8 2, ptr %4, align 1 - store ptr %2, ptr %1, align 8 - %5 = load [1 x ptr], ptr %0, align 8 - %6 = load ptr, ptr @_llgo_main.K2, align 8 - %7 = extractvalue [1 x ptr] %5, 0 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %6, 0 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %8, ptr %7, 1 - %10 = alloca [1 x ptr], align 8 - call void @llvm.memset(ptr %10, i8 0, i64 8, i1 false) - %11 = getelementptr inbounds ptr, ptr %10, i64 0 - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 2) - %13 = getelementptr inbounds %main.N, ptr %12, i32 0, i32 0 - %14 = getelementptr inbounds %main.N, ptr %12, i32 0, i32 1 - store i8 1, ptr %13, align 1 - store i8 2, ptr %14, align 1 - store ptr %12, ptr %11, align 8 - %15 = load [1 x ptr], ptr %10, align 8 - %16 = load ptr, ptr @_llgo_main.K2, align 8 - %17 = extractvalue [1 x ptr] %15, 0 - %18 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %16, 0 - %19 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %18, ptr %17, 1 - %20 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %9, %"github.com/goplus/llgo/internal/runtime.eface" %19) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %20) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %21 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 - %22 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %21, i64 0) - %23 = alloca [1 x ptr], align 8 - call void @llvm.memset(ptr %23, i8 0, i64 8, i1 false) - %24 = getelementptr inbounds ptr, ptr %23, i64 0 - %25 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 2) - %26 = getelementptr inbounds %main.N, ptr %25, i32 0, i32 0 - %27 = getelementptr inbounds %main.N, ptr %25, i32 0, i32 1 - store i8 1, ptr %26, align 1 - store i8 2, ptr %27, align 1 - store ptr %25, ptr %24, align 8 - %28 = load [1 x ptr], ptr %23, align 8 - %29 = load ptr, ptr @_llgo_main.K2, align 8 - %30 = extractvalue [1 x ptr] %28, 0 - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %29, 0 - %32 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %31, ptr %30, 1 - %33 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 - %34 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.eface" %32, ptr %34, align 8 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %33, ptr %22, ptr %34) - store i64 100, ptr %35, align 4 - %36 = alloca [1 x ptr], align 8 - call void @llvm.memset(ptr %36, i8 0, i64 8, i1 false) - %37 = getelementptr inbounds ptr, ptr %36, i64 0 - %38 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 2) - %39 = getelementptr inbounds %main.N, ptr %38, i32 0, i32 0 - %40 = getelementptr inbounds %main.N, ptr %38, i32 0, i32 1 - store i8 3, ptr %39, align 1 - store i8 4, ptr %40, align 1 - store ptr %38, ptr %37, align 8 - %41 = load [1 x ptr], ptr %36, align 8 - %42 = load ptr, ptr @_llgo_main.K2, align 8 - %43 = extractvalue [1 x ptr] %41, 0 - %44 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %42, 0 - %45 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %44, ptr %43, 1 - %46 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 - %47 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.eface" %45, ptr %47, align 8 - %48 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %46, ptr %22, ptr %47) - store i64 200, ptr %48, align 4 - %49 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 - %50 = call ptr @"github.com/goplus/llgo/internal/runtime.NewMapIter"(ptr %49, ptr %22) - br label %_llgo_1 - -_llgo_1: ; preds = %_llgo_7, %_llgo_0 - %51 = call { i1, ptr, ptr } @"github.com/goplus/llgo/internal/runtime.MapIterNext"(ptr %50) - %52 = extractvalue { i1, ptr, ptr } %51, 0 - br i1 %52, label %_llgo_4, label %_llgo_5 - -_llgo_2: ; preds = %_llgo_6 - %53 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %64, 1 - %54 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %64, 2 - %55 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %53, 0 - %56 = load ptr, ptr @_llgo_main.K2, align 8 - %57 = icmp eq ptr %55, %56 - br i1 %57, label %_llgo_7, label %_llgo_8 - -_llgo_3: ; preds = %_llgo_6 - ret void - -_llgo_4: ; preds = %_llgo_1 - %58 = extractvalue { i1, ptr, ptr } %51, 1 - %59 = extractvalue { i1, ptr, ptr } %51, 2 - %60 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %58, align 8 - %61 = load i64, ptr %59, align 4 - %62 = insertvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } { i1 true, %"github.com/goplus/llgo/internal/runtime.eface" undef, i64 undef }, %"github.com/goplus/llgo/internal/runtime.eface" %60, 1 - %63 = insertvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %62, i64 %61, 2 - br label %_llgo_6 - -_llgo_5: ; preds = %_llgo_1 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %64 = phi { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } [ %63, %_llgo_4 ], [ zeroinitializer, %_llgo_5 ] - %65 = extractvalue { i1, %"github.com/goplus/llgo/internal/runtime.eface", i64 } %64, 0 - br i1 %65, label %_llgo_2, label %_llgo_3 - -_llgo_7: ; preds = %_llgo_2 - %66 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %53, 1 - %67 = getelementptr inbounds %main.N, ptr %66, i32 0, i32 0 - %68 = load i8, ptr %67, align 1 - %69 = sext i8 %68 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %69) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %54) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - br label %_llgo_1 - -_llgo_8: ; preds = %_llgo_2 - %70 = load ptr, ptr @_llgo_string, align 8 - %71 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @13, i64 21 }, ptr %71, align 8 - %72 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %70, 0 - %73 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %72, ptr %71, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %73) - unreachable -} - -define void @main.make5() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewChan"(i64 8, i64 0) - %1 = load ptr, ptr @"chan _llgo_int", align 8 - %2 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %1, 0 - %3 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %2, ptr %0, 1 - %4 = load ptr, ptr @"chan _llgo_int", align 8 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %5, ptr %0, 1 - %7 = call i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface" %3, %"github.com/goplus/llgo/internal/runtime.eface" %6) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %7) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %8 = load ptr, ptr @"chan _llgo_int", align 8 - %9 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 - %10 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %9, i64 0) - %11 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store ptr %0, ptr %12, align 8 - %13 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %11, ptr %10, ptr %12) - store i64 100, ptr %13, align 4 - %14 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store ptr %0, ptr %15, align 8 - %16 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %14, ptr %10, ptr %15) - store i64 200, ptr %16, align 4 - %17 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 - %18 = call ptr @"github.com/goplus/llgo/internal/runtime.NewMapIter"(ptr %17, ptr %10) - br label %_llgo_1 - -_llgo_1: ; preds = %_llgo_2, %_llgo_0 - %19 = call { i1, ptr, ptr } @"github.com/goplus/llgo/internal/runtime.MapIterNext"(ptr %18) - %20 = extractvalue { i1, ptr, ptr } %19, 0 - br i1 %20, label %_llgo_4, label %_llgo_5 - -_llgo_2: ; preds = %_llgo_6 - %21 = extractvalue { i1, ptr, i64 } %29, 1 - %22 = extractvalue { i1, ptr, i64 } %29, 2 - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %21) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %22) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - br label %_llgo_1 - -_llgo_3: ; preds = %_llgo_6 - ret void - -_llgo_4: ; preds = %_llgo_1 - %23 = extractvalue { i1, ptr, ptr } %19, 1 - %24 = extractvalue { i1, ptr, ptr } %19, 2 - %25 = load ptr, ptr %23, align 8 - %26 = load i64, ptr %24, align 4 - %27 = insertvalue { i1, ptr, i64 } { i1 true, ptr undef, i64 undef }, ptr %25, 1 - %28 = insertvalue { i1, ptr, i64 } %27, i64 %26, 2 - br label %_llgo_6 - -_llgo_5: ; preds = %_llgo_1 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %29 = phi { i1, ptr, i64 } [ %28, %_llgo_4 ], [ zeroinitializer, %_llgo_5 ] - %30 = extractvalue { i1, ptr, i64 } %29, 0 - br i1 %30, label %_llgo_2, label %_llgo_3 -} - -define void @main.make6() { -_llgo_0: - %0 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %0, i64 0) - %2 = load ptr, ptr @_llgo_main.M, align 8 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store i64 1, ptr %3, align 4 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %2, ptr %1, ptr %3) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 5 }, ptr %4, align 8 - %5 = load ptr, ptr @_llgo_main.M, align 8 - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.NewMapIter"(ptr %5, ptr %1) - br label %_llgo_1 - -_llgo_1: ; preds = %_llgo_2, %_llgo_0 - %7 = call { i1, ptr, ptr } @"github.com/goplus/llgo/internal/runtime.MapIterNext"(ptr %6) - %8 = extractvalue { i1, ptr, ptr } %7, 0 - br i1 %8, label %_llgo_4, label %_llgo_5 - -_llgo_2: ; preds = %_llgo_6 - %9 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %17, 1 - %10 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %17, 2 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %9) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %10) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - br label %_llgo_1 - -_llgo_3: ; preds = %_llgo_6 - ret void - -_llgo_4: ; preds = %_llgo_1 - %11 = extractvalue { i1, ptr, ptr } %7, 1 - %12 = extractvalue { i1, ptr, ptr } %7, 2 - %13 = load i64, ptr %11, align 4 - %14 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %12, align 8 - %15 = insertvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } { i1 true, i64 undef, %"github.com/goplus/llgo/internal/runtime.String" undef }, i64 %13, 1 - %16 = insertvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %15, %"github.com/goplus/llgo/internal/runtime.String" %14, 2 - br label %_llgo_6 - -_llgo_5: ; preds = %_llgo_1 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %17 = phi { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } [ %16, %_llgo_4 ], [ zeroinitializer, %_llgo_5 ] - %18 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %17, 0 - br i1 %18, label %_llgo_2, label %_llgo_3 -} - -define void @main.make7() { -_llgo_0: - %0 = load ptr, ptr @_llgo_main.N, align 8 - %1 = load ptr, ptr @"map[_llgo_main.N]_llgo_string", align 8 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %1, i64 2) - %3 = load ptr, ptr @"map[_llgo_main.N]_llgo_string", align 8 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store i64 1, ptr %4, align 4 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %3, ptr %2, ptr %4) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 5 }, ptr %5, align 8 - %6 = load ptr, ptr @"map[_llgo_main.N]_llgo_string", align 8 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store i64 2, ptr %7, align 4 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %6, ptr %2, ptr %7) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 5 }, ptr %8, align 8 - %9 = load ptr, ptr @"map[_llgo_main.N]_llgo_string", align 8 - %10 = call ptr @"github.com/goplus/llgo/internal/runtime.NewMapIter"(ptr %9, ptr %2) - br label %_llgo_1 - -_llgo_1: ; preds = %_llgo_2, %_llgo_0 - %11 = call { i1, ptr, ptr } @"github.com/goplus/llgo/internal/runtime.MapIterNext"(ptr %10) - %12 = extractvalue { i1, ptr, ptr } %11, 0 - br i1 %12, label %_llgo_4, label %_llgo_5 - -_llgo_2: ; preds = %_llgo_6 - %13 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %25, 1 - %14 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %25, 2 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %13) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %14) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - br label %_llgo_1 - -_llgo_3: ; preds = %_llgo_6 - %15 = load ptr, ptr @"map[_llgo_main.N]_llgo_string", align 8 - %16 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store i64 1, ptr %16, align 4 - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAccess1"(ptr %15, ptr %2, ptr %16) - %18 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %17, align 8 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %18) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void - -_llgo_4: ; preds = %_llgo_1 - %19 = extractvalue { i1, ptr, ptr } %11, 1 - %20 = extractvalue { i1, ptr, ptr } %11, 2 - %21 = load i64, ptr %19, align 4 - %22 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %20, align 8 - %23 = insertvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } { i1 true, i64 undef, %"github.com/goplus/llgo/internal/runtime.String" undef }, i64 %21, 1 - %24 = insertvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %23, %"github.com/goplus/llgo/internal/runtime.String" %22, 2 - br label %_llgo_6 - -_llgo_5: ; preds = %_llgo_1 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %25 = phi { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } [ %24, %_llgo_4 ], [ zeroinitializer, %_llgo_5 ] - %26 = extractvalue { i1, i64, %"github.com/goplus/llgo/internal/runtime.String" } %25, 0 - br i1 %26, label %_llgo_2, label %_llgo_3 -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -define void @"main.init$after"() { -_llgo_0: - %0 = load ptr, ptr @_llgo_int, align 8 - %1 = icmp eq ptr %0, null - br i1 %1, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %2, ptr @_llgo_int, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @_llgo_string, align 8 - %4 = icmp eq ptr %3, null - br i1 %4, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %5, ptr @_llgo_string, align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %6 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - %7 = icmp eq ptr %6, null - br i1 %7, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %10 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %10) - %12 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 7 }, ptr %11, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %13 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %13) - %15 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, ptr %14, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %16 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %16) - %18 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 5 }, ptr %17, i64 72, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %19 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %20 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 8 }, ptr %19, i64 200, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %21 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %22 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %21, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %12, ptr %22, align 8 - %23 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %21, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %15, ptr %23, align 8 - %24 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %21, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %18, ptr %24, align 8 - %25 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %21, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %20, ptr %25, align 8 - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %21, 0 - %27 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %26, i64 4, 1 - %28 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %27, i64 4, 2 - %29 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, i64 208, %"github.com/goplus/llgo/internal/runtime.Slice" %28) - %30 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %8, ptr %9, ptr %29, i64 4) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %30) - store ptr %30, ptr @"map[_llgo_int]_llgo_string", align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %31 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 - %32 = icmp eq ptr %31, null - br i1 %32, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - %33 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %34 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %36 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %35) - %37 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 7 }, ptr %36, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %38 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %39 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %38) - %40 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, ptr %39, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %41 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %42 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %41) - %43 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 5 }, ptr %42, i64 136, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %44 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %45 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 8 }, ptr %44, i64 200, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %46 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %47 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %46, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %37, ptr %47, align 8 - %48 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %46, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %40, ptr %48, align 8 - %49 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %46, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %43, ptr %49, align 8 - %50 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %46, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %45, ptr %50, align 8 - %51 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %46, 0 - %52 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %51, i64 4, 1 - %53 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %52, i64 4, 2 - %54 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, i64 208, %"github.com/goplus/llgo/internal/runtime.Slice" %53) - %55 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %33, ptr %34, ptr %54, i64 12) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %55) - store ptr %55, ptr @"map[_llgo_string]_llgo_int", align 8 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - %56 = load ptr, ptr @_llgo_any, align 8 - %57 = icmp eq ptr %56, null - br i1 %57, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - %58 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %59 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %58, 0 - %60 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %59, i64 0, 1 - %61 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %60, i64 0, 2 - %62 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %61) - store ptr %62, ptr @_llgo_any, align 8 - br label %_llgo_10 - -_llgo_10: ; preds = %_llgo_9, %_llgo_8 - %63 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 - %64 = icmp eq ptr %63, null - br i1 %64, label %_llgo_11, label %_llgo_12 - -_llgo_11: ; preds = %_llgo_10 - %65 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %66 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %65, 0 - %67 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %66, i64 0, 1 - %68 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %67, i64 0, 2 - %69 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %68) - %70 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %71 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %72 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %71) - %73 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 7 }, ptr %72, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %74 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %75 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %74, 0 - %76 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %75, i64 0, 1 - %77 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %76, i64 0, 2 - %78 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %77) - %79 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %78) - %80 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, ptr %79, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %81 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %82 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %81) - %83 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 5 }, ptr %82, i64 136, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %84 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %85 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 8 }, ptr %84, i64 200, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %86 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %87 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %86, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %73, ptr %87, align 8 - %88 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %86, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %80, ptr %88, align 8 - %89 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %86, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %83, ptr %89, align 8 - %90 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %86, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %85, ptr %90, align 8 - %91 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %86, 0 - %92 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %91, i64 4, 1 - %93 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %92, i64 4, 2 - %94 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, i64 208, %"github.com/goplus/llgo/internal/runtime.Slice" %93) - %95 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %69, ptr %70, ptr %94, i64 24) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %95) - store ptr %95, ptr @"map[_llgo_any]_llgo_int", align 8 - br label %_llgo_12 - -_llgo_12: ; preds = %_llgo_11, %_llgo_10 - %96 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @12, i64 2 }, i64 17, i64 8, i64 0, i64 0) - %97 = load ptr, ptr @_llgo_main.N1, align 8 - %98 = icmp eq ptr %97, null - br i1 %98, label %_llgo_13, label %_llgo_14 - -_llgo_13: ; preds = %_llgo_12 - store ptr %96, ptr @_llgo_main.N1, align 8 - br label %_llgo_14 - -_llgo_14: ; preds = %_llgo_13, %_llgo_12 - %99 = load ptr, ptr @"[1]_llgo_int", align 8 - %100 = icmp eq ptr %99, null - br i1 %100, label %_llgo_15, label %_llgo_16 - -_llgo_15: ; preds = %_llgo_14 - %101 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %102 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 1, ptr %101) - store ptr %102, ptr @"[1]_llgo_int", align 8 - br label %_llgo_16 - -_llgo_16: ; preds = %_llgo_15, %_llgo_14 - %103 = load ptr, ptr @"[1]_llgo_int", align 8 - br i1 %98, label %_llgo_17, label %_llgo_18 - -_llgo_17: ; preds = %_llgo_16 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %96, ptr %103, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - br label %_llgo_18 - -_llgo_18: ; preds = %_llgo_17, %_llgo_16 - %104 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @14, i64 1 }, i64 17, i64 2, i64 0, i64 0) - %105 = load ptr, ptr @_llgo_main.K, align 8 - %106 = icmp eq ptr %105, null - br i1 %106, label %_llgo_19, label %_llgo_20 - -_llgo_19: ; preds = %_llgo_18 - store ptr %104, ptr @_llgo_main.K, align 8 - br label %_llgo_20 - -_llgo_20: ; preds = %_llgo_19, %_llgo_18 - %107 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @15, i64 1 }, i64 25, i64 2, i64 0, i64 0) - %108 = load ptr, ptr @_llgo_main.N, align 8 - %109 = icmp eq ptr %108, null - br i1 %109, label %_llgo_21, label %_llgo_22 - -_llgo_21: ; preds = %_llgo_20 - store ptr %107, ptr @_llgo_main.N, align 8 - br label %_llgo_22 - -_llgo_22: ; preds = %_llgo_21, %_llgo_20 - %110 = load ptr, ptr @_llgo_int8, align 8 - %111 = icmp eq ptr %110, null - br i1 %111, label %_llgo_23, label %_llgo_24 - -_llgo_23: ; preds = %_llgo_22 - %112 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) - store ptr %112, ptr @_llgo_int8, align 8 - br label %_llgo_24 - -_llgo_24: ; preds = %_llgo_23, %_llgo_22 - %113 = load ptr, ptr @_llgo_int8, align 8 - %114 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) - %115 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @16, i64 2 }, ptr %114, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %116 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) - %117 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @17, i64 2 }, ptr %116, i64 1, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %118 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %119 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %118, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %115, ptr %119, align 8 - %120 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %118, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %117, ptr %120, align 8 - %121 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %118, 0 - %122 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %121, i64 2, 1 - %123 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %122, i64 2, 2 - %124 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, i64 2, %"github.com/goplus/llgo/internal/runtime.Slice" %123) - store ptr %124, ptr @"main.struct$e65EDK9vxC36Nz3YTgO1ulssLlNH03Bva_WWaCjH-4A", align 8 - %125 = load ptr, ptr @"main.struct$e65EDK9vxC36Nz3YTgO1ulssLlNH03Bva_WWaCjH-4A", align 8 - br i1 %109, label %_llgo_25, label %_llgo_26 - -_llgo_25: ; preds = %_llgo_24 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %107, ptr %125, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - br label %_llgo_26 - -_llgo_26: ; preds = %_llgo_25, %_llgo_24 - %126 = load ptr, ptr @_llgo_main.N, align 8 - %127 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @15, i64 1 }, i64 25, i64 2, i64 0, i64 0) - %128 = load ptr, ptr @"[1]_llgo_main.N", align 8 - %129 = icmp eq ptr %128, null - br i1 %129, label %_llgo_27, label %_llgo_28 - -_llgo_27: ; preds = %_llgo_26 - %130 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 1, ptr %127) - store ptr %130, ptr @"[1]_llgo_main.N", align 8 - br label %_llgo_28 - -_llgo_28: ; preds = %_llgo_27, %_llgo_26 - %131 = load ptr, ptr @"[1]_llgo_main.N", align 8 - br i1 %106, label %_llgo_29, label %_llgo_30 - -_llgo_29: ; preds = %_llgo_28 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %104, ptr %131, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - br label %_llgo_30 - -_llgo_30: ; preds = %_llgo_29, %_llgo_28 - %132 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @18, i64 2 }, i64 17, i64 8, i64 0, i64 0) - %133 = load ptr, ptr @_llgo_main.K2, align 8 - %134 = icmp eq ptr %133, null - br i1 %134, label %_llgo_31, label %_llgo_32 - -_llgo_31: ; preds = %_llgo_30 - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %132) - store ptr %132, ptr @_llgo_main.K2, align 8 - br label %_llgo_32 - -_llgo_32: ; preds = %_llgo_31, %_llgo_30 - %135 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @15, i64 1 }, i64 25, i64 2, i64 0, i64 0) - %136 = load ptr, ptr @"*_llgo_main.N", align 8 - %137 = icmp eq ptr %136, null - br i1 %137, label %_llgo_33, label %_llgo_34 - -_llgo_33: ; preds = %_llgo_32 - %138 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %135) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %138) - store ptr %138, ptr @"*_llgo_main.N", align 8 - br label %_llgo_34 - -_llgo_34: ; preds = %_llgo_33, %_llgo_32 - %139 = load ptr, ptr @"*_llgo_main.N", align 8 - %140 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @15, i64 1 }, i64 25, i64 2, i64 0, i64 0) - %141 = load ptr, ptr @"[1]*_llgo_main.N", align 8 - %142 = icmp eq ptr %141, null - br i1 %142, label %_llgo_35, label %_llgo_36 - -_llgo_35: ; preds = %_llgo_34 - %143 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %140) - %144 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 1, ptr %143) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %144) - store ptr %144, ptr @"[1]*_llgo_main.N", align 8 - br label %_llgo_36 - -_llgo_36: ; preds = %_llgo_35, %_llgo_34 - %145 = load ptr, ptr @"[1]*_llgo_main.N", align 8 - br i1 %134, label %_llgo_37, label %_llgo_38 - -_llgo_37: ; preds = %_llgo_36 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %132, ptr %145, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - br label %_llgo_38 - -_llgo_38: ; preds = %_llgo_37, %_llgo_36 - %146 = load ptr, ptr @"chan _llgo_int", align 8 - %147 = icmp eq ptr %146, null - br i1 %147, label %_llgo_39, label %_llgo_40 - -_llgo_39: ; preds = %_llgo_38 - %148 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %149 = call ptr @"github.com/goplus/llgo/internal/runtime.ChanOf"(i64 3, %"github.com/goplus/llgo/internal/runtime.String" { ptr @19, i64 4 }, ptr %148) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %149) - store ptr %149, ptr @"chan _llgo_int", align 8 - br label %_llgo_40 - -_llgo_40: ; preds = %_llgo_39, %_llgo_38 - %150 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 - %151 = icmp eq ptr %150, null - br i1 %151, label %_llgo_41, label %_llgo_42 - -_llgo_41: ; preds = %_llgo_40 - %152 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %153 = call ptr @"github.com/goplus/llgo/internal/runtime.ChanOf"(i64 3, %"github.com/goplus/llgo/internal/runtime.String" { ptr @19, i64 4 }, ptr %152) - %154 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %155 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %156 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %155) - %157 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 7 }, ptr %156, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %158 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %159 = call ptr @"github.com/goplus/llgo/internal/runtime.ChanOf"(i64 3, %"github.com/goplus/llgo/internal/runtime.String" { ptr @19, i64 4 }, ptr %158) - %160 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %159) - %161 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, ptr %160, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %162 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %163 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %162) - %164 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 5 }, ptr %163, i64 72, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %165 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %166 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 8 }, ptr %165, i64 136, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %167 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %168 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %167, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %157, ptr %168, align 8 - %169 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %167, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %161, ptr %169, align 8 - %170 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %167, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %164, ptr %170, align 8 - %171 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %167, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %166, ptr %171, align 8 - %172 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %167, 0 - %173 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %172, i64 4, 1 - %174 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %173, i64 4, 2 - %175 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, i64 144, %"github.com/goplus/llgo/internal/runtime.Slice" %174) - %176 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %153, ptr %154, ptr %175, i64 4) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %176) - store ptr %176, ptr @"map[chan _llgo_int]_llgo_int", align 8 - br label %_llgo_42 - -_llgo_42: ; preds = %_llgo_41, %_llgo_40 - %177 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @20, i64 1 }, i64 21, i64 8, i64 0, i64 0) - %178 = load ptr, ptr @_llgo_main.M, align 8 - %179 = icmp eq ptr %178, null - br i1 %179, label %_llgo_43, label %_llgo_44 - -_llgo_43: ; preds = %_llgo_42 - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %177) - store ptr %177, ptr @_llgo_main.M, align 8 - br label %_llgo_44 - -_llgo_44: ; preds = %_llgo_43, %_llgo_42 - %180 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 - br i1 %179, label %_llgo_45, label %_llgo_46 - -_llgo_45: ; preds = %_llgo_44 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %177, ptr %180, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - br label %_llgo_46 - -_llgo_46: ; preds = %_llgo_45, %_llgo_44 - %181 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @15, i64 1 }, i64 2, i64 8, i64 0, i64 0) - %182 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @15, i64 1 }, i64 2, i64 8, i64 0, i64 0) - %183 = load ptr, ptr @"map[_llgo_main.N]_llgo_string", align 8 - %184 = icmp eq ptr %183, null - br i1 %184, label %_llgo_47, label %_llgo_48 - -_llgo_47: ; preds = %_llgo_46 - %185 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %186 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %187 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %186) - %188 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 7 }, ptr %187, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %189 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %182) - %190 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, ptr %189, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %191 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %192 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %191) - %193 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 5 }, ptr %192, i64 72, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %194 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %195 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 8 }, ptr %194, i64 200, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %196 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %197 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %196, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %188, ptr %197, align 8 - %198 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %196, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %190, ptr %198, align 8 - %199 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %196, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %193, ptr %199, align 8 - %200 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %196, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %195, ptr %200, align 8 - %201 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %196, 0 - %202 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %201, i64 4, 1 - %203 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %202, i64 4, 2 - %204 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, i64 208, %"github.com/goplus/llgo/internal/runtime.Slice" %203) - %205 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %181, ptr %185, ptr %204, i64 4) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %205) - store ptr %205, ptr @"map[_llgo_main.N]_llgo_string", align 8 - br label %_llgo_48 - -_llgo_48: ; preds = %_llgo_47, %_llgo_46 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr, ptr, ptr, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr, ptr, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MapAccess1"(ptr, ptr, ptr) - -declare i64 @"github.com/goplus/llgo/internal/runtime.MapLen"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewMapIter"(ptr, ptr) - -declare { i1, ptr, ptr } @"github.com/goplus/llgo/internal/runtime.MapIterNext"(ptr) - -declare { ptr, i1 } @"github.com/goplus/llgo/internal/runtime.MapAccess2"(ptr, ptr, ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1) - -declare void @"github.com/goplus/llgo/internal/runtime.MapDelete"(ptr, ptr, ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") - -declare ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice") - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare i1 @"github.com/goplus/llgo/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/internal/runtime.eface", %"github.com/goplus/llgo/internal/runtime.eface") - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewChan"(i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.ChanOf"(i64, %"github.com/goplus/llgo/internal/runtime.String", ptr) - -attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testrt/map/out.ll b/cl/_testrt/map/out.ll deleted file mode 100644 index 8d7cf76f..00000000 --- a/cl/_testrt/map/out.ll +++ /dev/null @@ -1,136 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@_llgo_int = linkonce global ptr null, align 8 -@"map[_llgo_int]_llgo_int" = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [7 x i8] c"topbits", align 1 -@1 = private unnamed_addr constant [4 x i8] c"keys", align 1 -@2 = private unnamed_addr constant [5 x i8] c"elems", align 1 -@3 = private unnamed_addr constant [8 x i8] c"overflow", align 1 -@4 = private unnamed_addr constant [4 x i8] c"main", align 1 -@5 = private unnamed_addr constant [10 x i8] c"Hello %d\0A\00", align 1 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = load ptr, ptr @_llgo_int, align 8 - %3 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %3, i64 2) - %5 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store i64 23, ptr %6, align 4 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %5, ptr %4, ptr %6) - store i64 100, ptr %7, align 4 - %8 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store i64 7, ptr %9, align 4 - %10 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %8, ptr %4, ptr %9) - store i64 29, ptr %10, align 4 - %11 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - store i64 23, ptr %12, align 4 - %13 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAccess1"(ptr %11, ptr %4, ptr %12) - %14 = load i64, ptr %13, align 4 - %15 = call i32 (ptr, ...) @printf(ptr @5, i64 %14) - ret i32 0 -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -define void @"main.init$after"() { -_llgo_0: - %0 = load ptr, ptr @_llgo_int, align 8 - %1 = icmp eq ptr %0, null - br i1 %1, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %2, ptr @_llgo_int, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 - %4 = icmp eq ptr %3, null - br i1 %4, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %7) - %9 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 7 }, ptr %8, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %10 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %10) - %12 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, ptr %11, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %13 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %13) - %15 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 5 }, ptr %14, i64 72, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %16 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) - %17 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 8 }, ptr %16, i64 136, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %18 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %19 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %18, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %9, ptr %19, align 8 - %20 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %18, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %12, ptr %20, align 8 - %21 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %18, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %15, ptr %21, align 8 - %22 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %18, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %17, ptr %22, align 8 - %23 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %18, 0 - %24 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %23, i64 4, 1 - %25 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %24, i64 4, 2 - %26 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 4 }, i64 144, %"github.com/goplus/llgo/internal/runtime.Slice" %25) - %27 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %5, ptr %6, ptr %26, i64 4) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %27) - store ptr %27, ptr @"map[_llgo_int]_llgo_int", align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr, ptr, ptr, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr, ptr, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MapAccess1"(ptr, ptr, ptr) - -declare i32 @printf(ptr, ...) diff --git a/cl/_testrt/tpabi/out.ll b/cl/_testrt/tpabi/out.ll deleted file mode 100644 index bc5237ae..00000000 --- a/cl/_testrt/tpabi/out.ll +++ /dev/null @@ -1,333 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"main.T[string,int]" = type { %"github.com/goplus/llgo/internal/runtime.String", i64 } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } -%"github.com/goplus/llgo/internal/abi.Imethod" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [1 x i8] c"a", align 1 -@"_llgo_main.T[string,int]" = linkonce global ptr null, align 8 -@1 = private unnamed_addr constant [4 x i8] c"main", align 1 -@2 = private unnamed_addr constant [1 x i8] c"T", align 1 -@_llgo_string = linkonce global ptr null, align 8 -@_llgo_int = linkonce global ptr null, align 8 -@"main.struct$A2OTYqQyUOqOQ-i_F5iXeAKWtxeWGEuyeN7HCfULCDk" = linkonce global ptr null, align 8 -@3 = private unnamed_addr constant [1 x i8] c"m", align 1 -@4 = private unnamed_addr constant [1 x i8] c"n", align 1 -@5 = private unnamed_addr constant [4 x i8] c"Demo", align 1 -@"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 -@6 = private unnamed_addr constant [4 x i8] c"Info", align 1 -@7 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 -@8 = private unnamed_addr constant [5 x i8] c"hello", align 1 -@"*_llgo_main.T[string,int]" = linkonce global ptr null, align 8 -@"_llgo_iface$BP0p_lUsEd-IbbtJVukGmgrdQkqzcoYzSiwgUvgFvUs" = linkonce global ptr null, align 8 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = alloca %"main.T[string,int]", align 8 - call void @llvm.memset(ptr %2, i8 0, i64 24, i1 false) - %3 = getelementptr inbounds %"main.T[string,int]", ptr %2, i32 0, i32 0 - %4 = getelementptr inbounds %"main.T[string,int]", ptr %2, i32 0, i32 1 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 1 }, ptr %3, align 8 - store i64 1, ptr %4, align 4 - %5 = load %"main.T[string,int]", ptr %2, align 8 - %6 = load ptr, ptr @"_llgo_main.T[string,int]", align 8 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - store %"main.T[string,int]" %5, ptr %7, align 8 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %6, 0 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %8, ptr %7, 1 - %10 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %9, 0 - %11 = load ptr, ptr @"_llgo_main.T[string,int]", align 8 - %12 = icmp eq ptr %10, %11 - br i1 %12, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %13 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %9, 1 - %14 = load %"main.T[string,int]", ptr %13, align 8 - %15 = extractvalue %"main.T[string,int]" %14, 0 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %15) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %16 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) - %17 = getelementptr inbounds %"main.T[string,int]", ptr %16, i32 0, i32 0 - %18 = getelementptr inbounds %"main.T[string,int]", ptr %16, i32 0, i32 1 - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 5 }, ptr %17, align 8 - store i64 100, ptr %18, align 4 - %19 = load ptr, ptr @"*_llgo_main.T[string,int]", align 8 - %20 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %21 = load ptr, ptr @"_llgo_iface$BP0p_lUsEd-IbbtJVukGmgrdQkqzcoYzSiwgUvgFvUs", align 8 - %22 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %21, ptr %19) - %23 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %22, 0 - %24 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %23, ptr %16, 1 - %25 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %24) - %26 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %24, 0 - %27 = getelementptr ptr, ptr %26, i64 3 - %28 = load ptr, ptr %27, align 8 - %29 = insertvalue { ptr, ptr } undef, ptr %28, 0 - %30 = insertvalue { ptr, ptr } %29, ptr %25, 1 - %31 = extractvalue { ptr, ptr } %30, 1 - %32 = extractvalue { ptr, ptr } %30, 0 - call void %32(ptr %31) - %33 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 32) - %34 = getelementptr inbounds i64, ptr %33, i64 0 - %35 = getelementptr inbounds i64, ptr %33, i64 1 - %36 = getelementptr inbounds i64, ptr %33, i64 2 - %37 = getelementptr inbounds i64, ptr %33, i64 3 - store i64 1, ptr %34, align 4 - store i64 2, ptr %35, align 4 - store i64 3, ptr %36, align 4 - store i64 4, ptr %37, align 4 - %38 = getelementptr [4 x i64], ptr %33, i64 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %38) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %39 = getelementptr [4 x i64], ptr %33, i64 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr %39) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 - -_llgo_2: ; preds = %_llgo_0 - %40 = load ptr, ptr @_llgo_string, align 8 - %41 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 21 }, ptr %41, align 8 - %42 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %40, 0 - %43 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %42, ptr %41, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %43) - unreachable -} - -define linkonce void @"main.T[string,int].Info"(%"main.T[string,int]" %0) { -_llgo_0: - %1 = alloca %"main.T[string,int]", align 8 - call void @llvm.memset(ptr %1, i8 0, i64 24, i1 false) - store %"main.T[string,int]" %0, ptr %1, align 8 - %2 = getelementptr inbounds %"main.T[string,int]", ptr %1, i32 0, i32 0 - %3 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %2, align 8 - %4 = getelementptr inbounds %"main.T[string,int]", ptr %1, i32 0, i32 1 - %5 = load i64, ptr %4, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %5) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -define linkonce void @"main.(*T[string,int]).Demo"(ptr %0) { -_llgo_0: - %1 = getelementptr inbounds %"main.T[string,int]", ptr %0, i32 0, i32 0 - %2 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %1, align 8 - %3 = getelementptr inbounds %"main.T[string,int]", ptr %0, i32 0, i32 1 - %4 = load i64, ptr %3, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %2) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %4) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -define void @"main.(*T[string,int]).Info"(ptr %0) { -_llgo_0: - %1 = load %"main.T[string,int]", ptr %0, align 8 - call void @"main.T[string,int].Info"(%"main.T[string,int]" %1) - ret void -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 - -define void @"main.init$after"() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 1 }, i64 25, i64 24, i64 1, i64 2) - %1 = load ptr, ptr @"_llgo_main.T[string,int]", align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - store ptr %0, ptr @"_llgo_main.T[string,int]", align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @_llgo_string, align 8 - %4 = icmp eq ptr %3, null - br i1 %4, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %5, ptr @_llgo_string, align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %6 = load ptr, ptr @_llgo_string, align 8 - %7 = load ptr, ptr @_llgo_int, align 8 - %8 = icmp eq ptr %7, null - br i1 %8, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %9, ptr @_llgo_int, align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %10 = load ptr, ptr @_llgo_int, align 8 - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %12 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 1 }, ptr %11, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %13 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %14 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 1 }, ptr %13, i64 16, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %16 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %15, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %12, ptr %16, align 8 - %17 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %15, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %14, ptr %17, align 8 - %18 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %15, 0 - %19 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %18, i64 2, 1 - %20 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %19, i64 2, 2 - %21 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, i64 24, %"github.com/goplus/llgo/internal/runtime.Slice" %20) - store ptr %21, ptr @"main.struct$A2OTYqQyUOqOQ-i_F5iXeAKWtxeWGEuyeN7HCfULCDk", align 8 - %22 = load ptr, ptr @"main.struct$A2OTYqQyUOqOQ-i_F5iXeAKWtxeWGEuyeN7HCfULCDk", align 8 - br i1 %2, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - %23 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %24 = icmp eq ptr %23, null - br i1 %24, label %_llgo_9, label %_llgo_10 - -_llgo_8: ; preds = %_llgo_10, %_llgo_6 - %25 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 1 }, i64 25, i64 24, i64 1, i64 2) - %26 = load ptr, ptr @"*_llgo_main.T[string,int]", align 8 - %27 = icmp eq ptr %26, null - br i1 %27, label %_llgo_11, label %_llgo_12 - -_llgo_9: ; preds = %_llgo_7 - %28 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %29 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %28, 0 - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %29, i64 0, 1 - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %30, i64 0, 2 - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %33 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %32, 0 - %34 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %33, i64 0, 1 - %35 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %34, i64 0, 2 - %36 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %31, %"github.com/goplus/llgo/internal/runtime.Slice" %35, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %36) - store ptr %36, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - br label %_llgo_10 - -_llgo_10: ; preds = %_llgo_9, %_llgo_7 - %37 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %38 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %37, 1 - %39 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %38, ptr @"main.(*T[string,int]).Demo", 2 - %40 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %39, ptr @"main.(*T[string,int]).Demo", 3 - %41 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %42 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %41, 1 - %43 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %42, ptr @"main.(*T[string,int]).Info", 2 - %44 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %43, ptr @"main.(*T[string,int]).Info", 3 - %45 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %41, 1 - %46 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %45, ptr @"main.(*T[string,int]).Info", 2 - %47 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %46, ptr @"main.T[string,int].Info", 3 - %48 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %49 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %48, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %47, ptr %49, align 8 - %50 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %48, 0 - %51 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %50, i64 1, 1 - %52 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %51, i64 1, 2 - %53 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 80) - %54 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %53, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %40, ptr %54, align 8 - %55 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %53, i64 1 - store %"github.com/goplus/llgo/internal/abi.Method" %44, ptr %55, align 8 - %56 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %53, 0 - %57 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %56, i64 2, 1 - %58 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %57, i64 2, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, ptr %22, %"github.com/goplus/llgo/internal/runtime.Slice" %52, %"github.com/goplus/llgo/internal/runtime.Slice" %58) - br label %_llgo_8 - -_llgo_11: ; preds = %_llgo_8 - %59 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %25) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %59) - store ptr %59, ptr @"*_llgo_main.T[string,int]", align 8 - br label %_llgo_12 - -_llgo_12: ; preds = %_llgo_11, %_llgo_8 - %60 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 - %61 = load ptr, ptr @"_llgo_iface$BP0p_lUsEd-IbbtJVukGmgrdQkqzcoYzSiwgUvgFvUs", align 8 - %62 = icmp eq ptr %61, null - br i1 %62, label %_llgo_13, label %_llgo_14 - -_llgo_13: ; preds = %_llgo_12 - %63 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 4 }, ptr undef }, ptr %60, 1 - %64 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %65 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %64, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %63, ptr %65, align 8 - %66 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %64, 0 - %67 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %66, i64 1, 1 - %68 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %67, i64 1, 2 - %69 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %68) - store ptr %69, ptr @"_llgo_iface$BP0p_lUsEd-IbbtJVukGmgrdQkqzcoYzSiwgUvgFvUs", align 8 - br label %_llgo_14 - -_llgo_14: ; preds = %_llgo_13, %_llgo_12 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintPointer"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) - -attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testrt/tpfunc/out.ll b/cl/_testrt/tpfunc/out.ll deleted file mode 100644 index 99044681..00000000 --- a/cl/_testrt/tpfunc/out.ll +++ /dev/null @@ -1,72 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 16) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 8) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 8) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -define void @"main.main$1"(ptr %0) { -_llgo_0: - %1 = load i64, ptr %0, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %1) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -define void @"main.main$2"(ptr %0) { -_llgo_0: - %1 = load i64, ptr %0, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %1) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -define void @"main.main$3"(ptr %0) { -_llgo_0: - %1 = load i64, ptr %0, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %1) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -define linkonce void @"__llgo_stub.main.main$1"(ptr %0, ptr %1) { -_llgo_0: - tail call void @"main.main$1"(ptr %1) - ret void -} - -declare void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) diff --git a/cl/_testrt/tpmap/out.ll b/cl/_testrt/tpmap/out.ll deleted file mode 100644 index 58ccc9c8..00000000 --- a/cl/_testrt/tpmap/out.ll +++ /dev/null @@ -1,372 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%main.cacheKey = type { i64, %main.T2, %"main.T3[any]", ptr, i64 } -%main.T2 = type { i64 } -%"main.T3[any]" = type { %"github.com/goplus/llgo/internal/runtime.eface" } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@_llgo_main.cacheKey = linkonce global ptr null, align 8 -@0 = private unnamed_addr constant [4 x i8] c"main", align 1 -@1 = private unnamed_addr constant [8 x i8] c"cacheKey", align 1 -@_llgo_main.T1 = linkonce global ptr null, align 8 -@2 = private unnamed_addr constant [2 x i8] c"T1", align 1 -@_llgo_int = linkonce global ptr null, align 8 -@_llgo_main.T2 = linkonce global ptr null, align 8 -@3 = private unnamed_addr constant [2 x i8] c"T2", align 1 -@"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88" = linkonce global ptr null, align 8 -@4 = private unnamed_addr constant [1 x i8] c"v", align 1 -@"_llgo_main.T3[any]" = linkonce global ptr null, align 8 -@5 = private unnamed_addr constant [2 x i8] c"T3", align 1 -@_llgo_any = linkonce global ptr null, align 8 -@"main.struct$op7q0963ur0ih9ul6OteH-C75UVydPxwKOVpX1hUjzo" = linkonce global ptr null, align 8 -@"*_llgo_int" = linkonce global ptr null, align 8 -@_llgo_uintptr = linkonce global ptr null, align 8 -@"main.struct$ZLgMjv1XBA1L4yXCpdouRvQF2okeuHQ-YWVTE34gq4I" = linkonce global ptr null, align 8 -@6 = private unnamed_addr constant [2 x i8] c"t1", align 1 -@7 = private unnamed_addr constant [2 x i8] c"t2", align 1 -@8 = private unnamed_addr constant [2 x i8] c"t3", align 1 -@9 = private unnamed_addr constant [2 x i8] c"t4", align 1 -@10 = private unnamed_addr constant [2 x i8] c"t5", align 1 -@_llgo_string = linkonce global ptr null, align 8 -@"map[_llgo_main.cacheKey]_llgo_string" = linkonce global ptr null, align 8 -@11 = private unnamed_addr constant [7 x i8] c"topbits", align 1 -@12 = private unnamed_addr constant [4 x i8] c"keys", align 1 -@13 = private unnamed_addr constant [5 x i8] c"elems", align 1 -@14 = private unnamed_addr constant [8 x i8] c"overflow", align 1 -@15 = private unnamed_addr constant [5 x i8] c"world", align 1 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = load ptr, ptr @_llgo_main.cacheKey, align 8 - %3 = load ptr, ptr @_llgo_string, align 8 - %4 = load ptr, ptr @"map[_llgo_main.cacheKey]_llgo_string", align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr %4, i64 0) - %6 = alloca %main.cacheKey, align 8 - call void @llvm.memset(ptr %6, i8 0, i64 48, i1 false) - %7 = getelementptr inbounds %main.cacheKey, ptr %6, i32 0, i32 0 - %8 = getelementptr inbounds %main.cacheKey, ptr %6, i32 0, i32 1 - %9 = getelementptr inbounds %main.T2, ptr %8, i32 0, i32 0 - %10 = getelementptr inbounds %main.cacheKey, ptr %6, i32 0, i32 2 - %11 = getelementptr inbounds %"main.T3[any]", ptr %10, i32 0, i32 0 - %12 = getelementptr inbounds %main.cacheKey, ptr %6, i32 0, i32 3 - %13 = getelementptr inbounds %main.cacheKey, ptr %6, i32 0, i32 4 - store i64 0, ptr %7, align 4 - store i64 0, ptr %9, align 4 - %14 = load ptr, ptr @_llgo_int, align 8 - %15 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %14, 0 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %15, ptr null, 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %16, ptr %11, align 8 - store ptr null, ptr %12, align 8 - store i64 0, ptr %13, align 4 - %17 = load %main.cacheKey, ptr %6, align 8 - %18 = load ptr, ptr @"map[_llgo_main.cacheKey]_llgo_string", align 8 - %19 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - store %main.cacheKey %17, ptr %19, align 8 - %20 = call ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr %18, ptr %5, ptr %19) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @15, i64 5 }, ptr %20, align 8 - %21 = alloca %main.cacheKey, align 8 - call void @llvm.memset(ptr %21, i8 0, i64 48, i1 false) - %22 = getelementptr inbounds %main.cacheKey, ptr %21, i32 0, i32 0 - %23 = getelementptr inbounds %main.cacheKey, ptr %21, i32 0, i32 1 - %24 = getelementptr inbounds %main.T2, ptr %23, i32 0, i32 0 - %25 = getelementptr inbounds %main.cacheKey, ptr %21, i32 0, i32 2 - %26 = getelementptr inbounds %"main.T3[any]", ptr %25, i32 0, i32 0 - %27 = getelementptr inbounds %main.cacheKey, ptr %21, i32 0, i32 3 - %28 = getelementptr inbounds %main.cacheKey, ptr %21, i32 0, i32 4 - store i64 0, ptr %22, align 4 - store i64 0, ptr %24, align 4 - %29 = load ptr, ptr @_llgo_int, align 8 - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %29, 0 - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %30, ptr null, 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %31, ptr %26, align 8 - store ptr null, ptr %27, align 8 - store i64 0, ptr %28, align 4 - %32 = load %main.cacheKey, ptr %21, align 8 - %33 = load ptr, ptr @"map[_llgo_main.cacheKey]_llgo_string", align 8 - %34 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 48) - store %main.cacheKey %32, ptr %34, align 8 - %35 = call { ptr, i1 } @"github.com/goplus/llgo/internal/runtime.MapAccess2"(ptr %33, ptr %5, ptr %34) - %36 = extractvalue { ptr, i1 } %35, 0 - %37 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %36, align 8 - %38 = extractvalue { ptr, i1 } %35, 1 - %39 = insertvalue { %"github.com/goplus/llgo/internal/runtime.String", i1 } undef, %"github.com/goplus/llgo/internal/runtime.String" %37, 0 - %40 = insertvalue { %"github.com/goplus/llgo/internal/runtime.String", i1 } %39, i1 %38, 1 - %41 = extractvalue { %"github.com/goplus/llgo/internal/runtime.String", i1 } %40, 0 - %42 = extractvalue { %"github.com/goplus/llgo/internal/runtime.String", i1 } %40, 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %41) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %42) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -define void @"main.init$after"() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 8 }, i64 25, i64 48, i64 0, i64 0) - store ptr %0, ptr @_llgo_main.cacheKey, align 8 - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 2 }, i64 2, i64 8, i64 0, i64 0) - %2 = load ptr, ptr @_llgo_main.T1, align 8 - %3 = icmp eq ptr %2, null - br i1 %3, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - store ptr %1, ptr @_llgo_main.T1, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %4 = load ptr, ptr @_llgo_int, align 8 - %5 = icmp eq ptr %4, null - br i1 %5, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %6, ptr @_llgo_int, align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %7 = load ptr, ptr @_llgo_int, align 8 - br i1 %3, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %1, ptr %7, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %8 = load ptr, ptr @_llgo_main.T1, align 8 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 2 }, i64 25, i64 8, i64 0, i64 0) - %10 = load ptr, ptr @_llgo_main.T2, align 8 - %11 = icmp eq ptr %10, null - br i1 %11, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - store ptr %9, ptr @_llgo_main.T2, align 8 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %13 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 1 }, ptr %12, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %15 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %14, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %13, ptr %15, align 8 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %14, 0 - %17 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %16, i64 1, 1 - %18 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %17, i64 1, 2 - %19 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %18) - store ptr %19, ptr @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8 - %20 = load ptr, ptr @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8 - br i1 %11, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %9, ptr %20, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - br label %_llgo_10 - -_llgo_10: ; preds = %_llgo_9, %_llgo_8 - %21 = load ptr, ptr @_llgo_main.T2, align 8 - %22 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 2 }, i64 25, i64 16, i64 0, i64 0) - %23 = load ptr, ptr @"_llgo_main.T3[any]", align 8 - %24 = icmp eq ptr %23, null - br i1 %24, label %_llgo_11, label %_llgo_12 - -_llgo_11: ; preds = %_llgo_10 - store ptr %22, ptr @"_llgo_main.T3[any]", align 8 - br label %_llgo_12 - -_llgo_12: ; preds = %_llgo_11, %_llgo_10 - %25 = load ptr, ptr @_llgo_any, align 8 - %26 = icmp eq ptr %25, null - br i1 %26, label %_llgo_13, label %_llgo_14 - -_llgo_13: ; preds = %_llgo_12 - %27 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %28 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %27, 0 - %29 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %28, i64 0, 1 - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %29, i64 0, 2 - %31 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %30) - store ptr %31, ptr @_llgo_any, align 8 - br label %_llgo_14 - -_llgo_14: ; preds = %_llgo_13, %_llgo_12 - %32 = load ptr, ptr @_llgo_any, align 8 - %33 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %34 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %33, 0 - %35 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %34, i64 0, 1 - %36 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %35, i64 0, 2 - %37 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %36) - %38 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 1 }, ptr %37, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %39 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %40 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %39, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %38, ptr %40, align 8 - %41 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %39, 0 - %42 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %41, i64 1, 1 - %43 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %42, i64 1, 2 - %44 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %43) - store ptr %44, ptr @"main.struct$op7q0963ur0ih9ul6OteH-C75UVydPxwKOVpX1hUjzo", align 8 - %45 = load ptr, ptr @"main.struct$op7q0963ur0ih9ul6OteH-C75UVydPxwKOVpX1hUjzo", align 8 - br i1 %24, label %_llgo_15, label %_llgo_16 - -_llgo_15: ; preds = %_llgo_14 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %22, ptr %45, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - br label %_llgo_16 - -_llgo_16: ; preds = %_llgo_15, %_llgo_14 - %46 = load ptr, ptr @"_llgo_main.T3[any]", align 8 - %47 = load ptr, ptr @"*_llgo_int", align 8 - %48 = icmp eq ptr %47, null - br i1 %48, label %_llgo_17, label %_llgo_18 - -_llgo_17: ; preds = %_llgo_16 - %49 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %50 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %49) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %50) - store ptr %50, ptr @"*_llgo_int", align 8 - br label %_llgo_18 - -_llgo_18: ; preds = %_llgo_17, %_llgo_16 - %51 = load ptr, ptr @"*_llgo_int", align 8 - %52 = load ptr, ptr @_llgo_uintptr, align 8 - %53 = icmp eq ptr %52, null - br i1 %53, label %_llgo_19, label %_llgo_20 - -_llgo_19: ; preds = %_llgo_18 - %54 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) - store ptr %54, ptr @_llgo_uintptr, align 8 - br label %_llgo_20 - -_llgo_20: ; preds = %_llgo_19, %_llgo_18 - %55 = load ptr, ptr @_llgo_uintptr, align 8 - %56 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 2 }, i64 2, i64 8, i64 0, i64 0) - %57 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 2 }, i64 25, i64 8, i64 0, i64 0) - %58 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 2 }, i64 25, i64 16, i64 0, i64 0) - %59 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 2 }, ptr %56, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %60 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 2 }, ptr %57, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %61 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 2 }, ptr %58, i64 16, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %62 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %63 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %62) - %64 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 2 }, ptr %63, i64 32, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %65 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) - %66 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @10, i64 2 }, ptr %65, i64 40, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %67 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 280) - %68 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %67, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %59, ptr %68, align 8 - %69 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %67, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %60, ptr %69, align 8 - %70 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %67, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %61, ptr %70, align 8 - %71 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %67, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %64, ptr %71, align 8 - %72 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %67, i64 4 - store %"github.com/goplus/llgo/internal/abi.StructField" %66, ptr %72, align 8 - %73 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %67, 0 - %74 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %73, i64 5, 1 - %75 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %74, i64 5, 2 - %76 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 48, %"github.com/goplus/llgo/internal/runtime.Slice" %75) - store ptr %76, ptr @"main.struct$ZLgMjv1XBA1L4yXCpdouRvQF2okeuHQ-YWVTE34gq4I", align 8 - %77 = load ptr, ptr @"main.struct$ZLgMjv1XBA1L4yXCpdouRvQF2okeuHQ-YWVTE34gq4I", align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, ptr %77, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - %78 = load ptr, ptr @_llgo_string, align 8 - %79 = icmp eq ptr %78, null - br i1 %79, label %_llgo_21, label %_llgo_22 - -_llgo_21: ; preds = %_llgo_20 - %80 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %80, ptr @_llgo_string, align 8 - br label %_llgo_22 - -_llgo_22: ; preds = %_llgo_21, %_llgo_20 - %81 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 8 }, i64 25, i64 48, i64 0, i64 0) - %82 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 8 }, i64 25, i64 48, i64 0, i64 0) - %83 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %84 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) - %85 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %84) - %86 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 7 }, ptr %85, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %87 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %82) - %88 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @12, i64 4 }, ptr %87, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %89 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - %90 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 8, ptr %89) - %91 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @13, i64 5 }, ptr %90, i64 392, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %92 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %93 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @14, i64 8 }, ptr %92, i64 520, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %94 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 224) - %95 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %94, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %86, ptr %95, align 8 - %96 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %94, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %88, ptr %96, align 8 - %97 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %94, i64 2 - store %"github.com/goplus/llgo/internal/abi.StructField" %91, ptr %97, align 8 - %98 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %94, i64 3 - store %"github.com/goplus/llgo/internal/abi.StructField" %93, ptr %98, align 8 - %99 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %94, 0 - %100 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %99, i64 4, 1 - %101 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %100, i64 4, 2 - %102 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, i64 528, %"github.com/goplus/llgo/internal/runtime.Slice" %101) - %103 = call ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr %81, ptr %83, ptr %102, i64 24) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %103) - store ptr %103, ptr @"map[_llgo_main.cacheKey]_llgo_string", align 8 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MapOf"(ptr, ptr, ptr, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64, ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.MakeMap"(ptr, i64) - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 - -declare ptr @"github.com/goplus/llgo/internal/runtime.MapAssign"(ptr, ptr, ptr) - -declare { ptr, i1 } @"github.com/goplus/llgo/internal/runtime.MapAccess2"(ptr, ptr, ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1) - -attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testrt/tpmethod/out.ll b/cl/_testrt/tpmethod/out.ll deleted file mode 100644 index e72b9394..00000000 --- a/cl/_testrt/tpmethod/out.ll +++ /dev/null @@ -1,514 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"main.Tuple[error]" = type { %"github.com/goplus/llgo/internal/runtime.iface" } -%"main.future[main.Tuple[error]]" = type { { ptr, ptr } } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/abi.Imethod" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } -%"github.com/goplus/llgo/internal/abi.Method" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, ptr, ptr } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [7 x i8] c"foo.txt", align 1 -@"_llgo_main.future[main.Tuple[error]]" = linkonce global ptr null, align 8 -@1 = private unnamed_addr constant [4 x i8] c"main", align 1 -@2 = private unnamed_addr constant [6 x i8] c"future", align 1 -@"_llgo_main.Tuple[error]" = linkonce global ptr null, align 8 -@3 = private unnamed_addr constant [5 x i8] c"Tuple", align 1 -@_llgo_error = linkonce global ptr null, align 8 -@4 = private unnamed_addr constant [5 x i8] c"error", align 1 -@_llgo_string = linkonce global ptr null, align 8 -@"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 -@5 = private unnamed_addr constant [5 x i8] c"Error", align 1 -@"main.struct$ddtj0teo4LtYcagzh1w6BsSZ7226uefXlqreeHsfVRo" = linkonce global ptr null, align 8 -@6 = private unnamed_addr constant [1 x i8] c"v", align 1 -@7 = private unnamed_addr constant [3 x i8] c"Get", align 1 -@"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w" = linkonce global ptr null, align 8 -@"_llgo_func$1BeCdGdxwWG-Dtl1HbNuSy2_sb8rBMTmu7zhcPPofmU" = linkonce global ptr null, align 8 -@_llgo_Pointer = linkonce global ptr null, align 8 -@"main.struct$vwhCZhgsid50r1SsT8OmKpRI0Cpljg78h5JlpD1CTR4" = linkonce global ptr null, align 8 -@8 = private unnamed_addr constant [2 x i8] c"$f", align 1 -@9 = private unnamed_addr constant [5 x i8] c"$data", align 1 -@"_llgo_func$_so3zZGPIhTQghxFcf7CCCVzSOk2lxOt7xgGKcTzc0s" = linkonce global ptr null, align 8 -@"main.struct$awGH2Wh33bS1v_s7SNAwKW27E20HcwiiPPzh9UA7QDs" = linkonce global ptr null, align 8 -@"main.struct$N1awC7qGapVTS_NFj1Q0jk6nCjATrIK-60oOEyDjabo" = linkonce global ptr null, align 8 -@10 = private unnamed_addr constant [2 x i8] c"fn", align 1 -@11 = private unnamed_addr constant [4 x i8] c"Then", align 1 -@"*_llgo_main.future[main.Tuple[error]]" = linkonce global ptr null, align 8 -@"_llgo_iface$pTofAxYfPZHsCMD5T70nrOx1gjHf9m2QCLNvEOl1py0" = linkonce global ptr null, align 8 - -define %"github.com/goplus/llgo/internal/runtime.iface" @main.ReadFile(%"github.com/goplus/llgo/internal/runtime.String" %0) { -_llgo_0: - %1 = call %"github.com/goplus/llgo/internal/runtime.iface" @"main.Async[main.Tuple[error]]"({ ptr, ptr } { ptr @"__llgo_stub.main.ReadFile$1", ptr null }) - ret %"github.com/goplus/llgo/internal/runtime.iface" %1 -} - -define void @"main.ReadFile$1"({ ptr, ptr } %0) { -_llgo_0: - %1 = alloca %"main.Tuple[error]", align 8 - call void @llvm.memset(ptr %1, i8 0, i64 16, i1 false) - %2 = getelementptr inbounds %"main.Tuple[error]", ptr %1, i32 0, i32 0 - store %"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer, ptr %2, align 8 - %3 = load %"main.Tuple[error]", ptr %1, align 8 - %4 = extractvalue { ptr, ptr } %0, 1 - %5 = extractvalue { ptr, ptr } %0, 0 - call void %5(ptr %4, %"main.Tuple[error]" %3) - ret void -} - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = call %"github.com/goplus/llgo/internal/runtime.iface" @main.ReadFile(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 7 }) - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface" %2) - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.iface" %2, 0 - %5 = getelementptr ptr, ptr %4, i64 3 - %6 = load ptr, ptr %5, align 8 - %7 = insertvalue { ptr, ptr } undef, ptr %6, 0 - %8 = insertvalue { ptr, ptr } %7, ptr %3, 1 - %9 = extractvalue { ptr, ptr } %8, 1 - %10 = extractvalue { ptr, ptr } %8, 0 - call void %10(ptr %9, { ptr, ptr } { ptr @"__llgo_stub.main.main$1", ptr null }) - ret i32 0 -} - -define void @"main.main$1"(%"main.Tuple[error]" %0) { -_llgo_0: - %1 = call %"github.com/goplus/llgo/internal/runtime.iface" @"main.Tuple[error].Get"(%"main.Tuple[error]" %0) - call void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface" %1) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret void -} - -define linkonce %"github.com/goplus/llgo/internal/runtime.iface" @"main.Tuple[error].Get"(%"main.Tuple[error]" %0) { -_llgo_0: - %1 = alloca %"main.Tuple[error]", align 8 - call void @llvm.memset(ptr %1, i8 0, i64 16, i1 false) - store %"main.Tuple[error]" %0, ptr %1, align 8 - %2 = getelementptr inbounds %"main.Tuple[error]", ptr %1, i32 0, i32 0 - %3 = load %"github.com/goplus/llgo/internal/runtime.iface", ptr %2, align 8 - ret %"github.com/goplus/llgo/internal/runtime.iface" %3 -} - -define %"github.com/goplus/llgo/internal/runtime.iface" @"main.(*Tuple[error]).Get"(ptr %0) { -_llgo_0: - %1 = load %"main.Tuple[error]", ptr %0, align 8 - %2 = call %"github.com/goplus/llgo/internal/runtime.iface" @"main.Tuple[error].Get"(%"main.Tuple[error]" %1) - ret %"github.com/goplus/llgo/internal/runtime.iface" %2 -} - -define linkonce void @"main.(*future[main.Tuple[error]]).Then"(ptr %0, { ptr, ptr } %1) { -_llgo_0: - %2 = getelementptr inbounds %"main.future[main.Tuple[error]]", ptr %0, i32 0, i32 0 - %3 = load { ptr, ptr }, ptr %2, align 8 - %4 = extractvalue { ptr, ptr } %3, 1 - %5 = extractvalue { ptr, ptr } %3, 0 - call void %5(ptr %4, { ptr, ptr } %1) - ret void -} - -define linkonce %"github.com/goplus/llgo/internal/runtime.iface" @"main.Async[main.Tuple[error]]"({ ptr, ptr } %0) { -_llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - %2 = getelementptr inbounds %"main.future[main.Tuple[error]]", ptr %1, i32 0, i32 0 - store { ptr, ptr } %0, ptr %2, align 8 - %3 = load ptr, ptr @"_llgo_main.future[main.Tuple[error]]", align 8 - %4 = load ptr, ptr @"*_llgo_main.future[main.Tuple[error]]", align 8 - %5 = load ptr, ptr @"_llgo_func$1BeCdGdxwWG-Dtl1HbNuSy2_sb8rBMTmu7zhcPPofmU", align 8 - %6 = load ptr, ptr @"main.struct$vwhCZhgsid50r1SsT8OmKpRI0Cpljg78h5JlpD1CTR4", align 8 - %7 = load ptr, ptr @"_llgo_func$_so3zZGPIhTQghxFcf7CCCVzSOk2lxOt7xgGKcTzc0s", align 8 - %8 = load ptr, ptr @"_llgo_iface$pTofAxYfPZHsCMD5T70nrOx1gjHf9m2QCLNvEOl1py0", align 8 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr %8, ptr %4) - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" undef, ptr %9, 0 - %11 = insertvalue %"github.com/goplus/llgo/internal/runtime.iface" %10, ptr %1, 1 - ret %"github.com/goplus/llgo/internal/runtime.iface" %11 -} - -define linkonce void @"__llgo_stub.main.ReadFile$1"(ptr %0, { ptr, ptr } %1) { -_llgo_0: - tail call void @"main.ReadFile$1"({ ptr, ptr } %1) - ret void -} - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -declare ptr @"github.com/goplus/llgo/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/internal/runtime.iface") - -define linkonce void @"__llgo_stub.main.main$1"(ptr %0, %"main.Tuple[error]" %1) { -_llgo_0: - tail call void @"main.main$1"(%"main.Tuple[error]" %1) - ret void -} - -declare void @"github.com/goplus/llgo/internal/runtime.PrintIface"(%"github.com/goplus/llgo/internal/runtime.iface") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -define void @"main.init$after"() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 6 }, i64 25, i64 24, i64 0, i64 1) - store ptr %0, ptr @"_llgo_main.future[main.Tuple[error]]", align 8 - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 5 }, i64 25, i64 16, i64 1, i64 1) - %2 = load ptr, ptr @"_llgo_main.Tuple[error]", align 8 - %3 = icmp eq ptr %2, null - br i1 %3, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - store ptr %1, ptr @"_llgo_main.Tuple[error]", align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 5 }) - %5 = load ptr, ptr @_llgo_error, align 8 - %6 = icmp eq ptr %5, null - br i1 %6, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - store ptr %4, ptr @_llgo_error, align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %7 = load ptr, ptr @_llgo_string, align 8 - %8 = icmp eq ptr %7, null - br i1 %8, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %9, ptr @_llgo_string, align 8 - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %10 = load ptr, ptr @_llgo_string, align 8 - %11 = load ptr, ptr @_llgo_string, align 8 - %12 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - %13 = icmp eq ptr %12, null - br i1 %13, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %15 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %14, 0 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %15, i64 0, 1 - %17 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %16, i64 0, 2 - %18 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %19 = getelementptr ptr, ptr %18, i64 0 - store ptr %11, ptr %19, align 8 - %20 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %18, 0 - %21 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %20, i64 1, 1 - %22 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %21, i64 1, 2 - %23 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %17, %"github.com/goplus/llgo/internal/runtime.Slice" %22, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %23) - store ptr %23, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - %24 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 - br i1 %6, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - %25 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 5 }, ptr undef }, ptr %24, 1 - %26 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %27 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %26, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %25, ptr %27, align 8 - %28 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %26, 0 - %29 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %28, i64 1, 1 - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %29, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr %4, %"github.com/goplus/llgo/internal/runtime.Slice" %30) - br label %_llgo_10 - -_llgo_10: ; preds = %_llgo_9, %_llgo_8 - %31 = load ptr, ptr @_llgo_error, align 8 - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 5 }) - %33 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 1 }, ptr %32, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %34 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %35 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %34, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %33, ptr %35, align 8 - %36 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %34, 0 - %37 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %36, i64 1, 1 - %38 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %37, i64 1, 2 - %39 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %38) - store ptr %39, ptr @"main.struct$ddtj0teo4LtYcagzh1w6BsSZ7226uefXlqreeHsfVRo", align 8 - %40 = load ptr, ptr @"main.struct$ddtj0teo4LtYcagzh1w6BsSZ7226uefXlqreeHsfVRo", align 8 - br i1 %3, label %_llgo_11, label %_llgo_12 - -_llgo_11: ; preds = %_llgo_10 - %41 = load ptr, ptr @_llgo_error, align 8 - %42 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %43 = icmp eq ptr %42, null - br i1 %43, label %_llgo_13, label %_llgo_14 - -_llgo_12: ; preds = %_llgo_14, %_llgo_10 - %44 = load ptr, ptr @"_llgo_main.Tuple[error]", align 8 - %45 = load ptr, ptr @"_llgo_main.Tuple[error]", align 8 - %46 = load ptr, ptr @"_llgo_func$1BeCdGdxwWG-Dtl1HbNuSy2_sb8rBMTmu7zhcPPofmU", align 8 - %47 = icmp eq ptr %46, null - br i1 %47, label %_llgo_15, label %_llgo_16 - -_llgo_13: ; preds = %_llgo_11 - %48 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %49 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %48, 0 - %50 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %49, i64 0, 1 - %51 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %50, i64 0, 2 - %52 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %53 = getelementptr ptr, ptr %52, i64 0 - store ptr %41, ptr %53, align 8 - %54 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %52, 0 - %55 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %54, i64 1, 1 - %56 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %55, i64 1, 2 - %57 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %51, %"github.com/goplus/llgo/internal/runtime.Slice" %56, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %57) - store ptr %57, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - br label %_llgo_14 - -_llgo_14: ; preds = %_llgo_13, %_llgo_11 - %58 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 - %59 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %58, 1 - %60 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %59, ptr @"main.(*Tuple[error]).Get", 2 - %61 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %60, ptr @"main.(*Tuple[error]).Get", 3 - %62 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %58, 1 - %63 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %62, ptr @"main.(*Tuple[error]).Get", 2 - %64 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %63, ptr @"main.Tuple[error].Get", 3 - %65 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %66 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %65, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %64, ptr %66, align 8 - %67 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %65, 0 - %68 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %67, i64 1, 1 - %69 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %68, i64 1, 2 - %70 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %71 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %70, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %61, ptr %71, align 8 - %72 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %70, 0 - %73 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %72, i64 1, 1 - %74 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %73, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %1, ptr %40, %"github.com/goplus/llgo/internal/runtime.Slice" %69, %"github.com/goplus/llgo/internal/runtime.Slice" %74) - br label %_llgo_12 - -_llgo_15: ; preds = %_llgo_12 - %75 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %76 = getelementptr ptr, ptr %75, i64 0 - store ptr %45, ptr %76, align 8 - %77 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %75, 0 - %78 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %77, i64 1, 1 - %79 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %78, i64 1, 2 - %80 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %81 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %80, 0 - %82 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %81, i64 0, 1 - %83 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %82, i64 0, 2 - %84 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %79, %"github.com/goplus/llgo/internal/runtime.Slice" %83, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %84) - store ptr %84, ptr @"_llgo_func$1BeCdGdxwWG-Dtl1HbNuSy2_sb8rBMTmu7zhcPPofmU", align 8 - br label %_llgo_16 - -_llgo_16: ; preds = %_llgo_15, %_llgo_12 - %85 = load ptr, ptr @"_llgo_func$1BeCdGdxwWG-Dtl1HbNuSy2_sb8rBMTmu7zhcPPofmU", align 8 - %86 = load ptr, ptr @_llgo_Pointer, align 8 - %87 = icmp eq ptr %86, null - br i1 %87, label %_llgo_17, label %_llgo_18 - -_llgo_17: ; preds = %_llgo_16 - %88 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %88) - store ptr %88, ptr @_llgo_Pointer, align 8 - br label %_llgo_18 - -_llgo_18: ; preds = %_llgo_17, %_llgo_16 - %89 = load ptr, ptr @_llgo_Pointer, align 8 - %90 = load ptr, ptr @"_llgo_main.Tuple[error]", align 8 - %91 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %92 = getelementptr ptr, ptr %91, i64 0 - store ptr %90, ptr %92, align 8 - %93 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %91, 0 - %94 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %93, i64 1, 1 - %95 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %94, i64 1, 2 - %96 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %97 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %96, 0 - %98 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %97, i64 0, 1 - %99 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %98, i64 0, 2 - %100 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %95, %"github.com/goplus/llgo/internal/runtime.Slice" %99, i1 false) - %101 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 2 }, ptr %100, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %102 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %103 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 5 }, ptr %102, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %104 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %105 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %104, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %101, ptr %105, align 8 - %106 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %104, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %103, ptr %106, align 8 - %107 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %104, 0 - %108 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %107, i64 2, 1 - %109 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %108, i64 2, 2 - %110 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %109) - store ptr %110, ptr @"main.struct$vwhCZhgsid50r1SsT8OmKpRI0Cpljg78h5JlpD1CTR4", align 8 - %111 = load ptr, ptr @"main.struct$vwhCZhgsid50r1SsT8OmKpRI0Cpljg78h5JlpD1CTR4", align 8 - %112 = load ptr, ptr @"main.struct$vwhCZhgsid50r1SsT8OmKpRI0Cpljg78h5JlpD1CTR4", align 8 - %113 = load ptr, ptr @"_llgo_func$_so3zZGPIhTQghxFcf7CCCVzSOk2lxOt7xgGKcTzc0s", align 8 - %114 = icmp eq ptr %113, null - br i1 %114, label %_llgo_19, label %_llgo_20 - -_llgo_19: ; preds = %_llgo_18 - %115 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %116 = getelementptr ptr, ptr %115, i64 0 - store ptr %112, ptr %116, align 8 - %117 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %115, 0 - %118 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %117, i64 1, 1 - %119 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %118, i64 1, 2 - %120 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %121 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %120, 0 - %122 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %121, i64 0, 1 - %123 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %122, i64 0, 2 - %124 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %119, %"github.com/goplus/llgo/internal/runtime.Slice" %123, i1 false) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %124) - store ptr %124, ptr @"_llgo_func$_so3zZGPIhTQghxFcf7CCCVzSOk2lxOt7xgGKcTzc0s", align 8 - br label %_llgo_20 - -_llgo_20: ; preds = %_llgo_19, %_llgo_18 - %125 = load ptr, ptr @"_llgo_func$_so3zZGPIhTQghxFcf7CCCVzSOk2lxOt7xgGKcTzc0s", align 8 - %126 = load ptr, ptr @"main.struct$vwhCZhgsid50r1SsT8OmKpRI0Cpljg78h5JlpD1CTR4", align 8 - %127 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %128 = getelementptr ptr, ptr %127, i64 0 - store ptr %126, ptr %128, align 8 - %129 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %127, 0 - %130 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %129, i64 1, 1 - %131 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %130, i64 1, 2 - %132 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %133 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %132, 0 - %134 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %133, i64 0, 1 - %135 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %134, i64 0, 2 - %136 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %131, %"github.com/goplus/llgo/internal/runtime.Slice" %135, i1 false) - %137 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 2 }, ptr %136, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %138 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %139 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 5 }, ptr %138, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %140 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %141 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %140, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %137, ptr %141, align 8 - %142 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %140, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %139, ptr %142, align 8 - %143 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %140, 0 - %144 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %143, i64 2, 1 - %145 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %144, i64 2, 2 - %146 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %145) - store ptr %146, ptr @"main.struct$awGH2Wh33bS1v_s7SNAwKW27E20HcwiiPPzh9UA7QDs", align 8 - %147 = load ptr, ptr @"main.struct$awGH2Wh33bS1v_s7SNAwKW27E20HcwiiPPzh9UA7QDs", align 8 - %148 = load ptr, ptr @"main.struct$vwhCZhgsid50r1SsT8OmKpRI0Cpljg78h5JlpD1CTR4", align 8 - %149 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) - %150 = getelementptr ptr, ptr %149, i64 0 - store ptr %148, ptr %150, align 8 - %151 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %149, 0 - %152 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %151, i64 1, 1 - %153 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %152, i64 1, 2 - %154 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 0) - %155 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %154, 0 - %156 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %155, i64 0, 1 - %157 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %156, i64 0, 2 - %158 = call ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice" %153, %"github.com/goplus/llgo/internal/runtime.Slice" %157, i1 false) - %159 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 2 }, ptr %158, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %160 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 58) - %161 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 5 }, ptr %160, i64 8, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %162 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 112) - %163 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %162, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %159, ptr %163, align 8 - %164 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %162, i64 1 - store %"github.com/goplus/llgo/internal/abi.StructField" %161, ptr %164, align 8 - %165 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %162, 0 - %166 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %165, i64 2, 1 - %167 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %166, i64 2, 2 - %168 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %167) - %169 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @10, i64 2 }, ptr %168, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %170 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %171 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %170, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %169, ptr %171, align 8 - %172 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %170, 0 - %173 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %172, i64 1, 1 - %174 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %173, i64 1, 2 - %175 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, i64 16, %"github.com/goplus/llgo/internal/runtime.Slice" %174) - store ptr %175, ptr @"main.struct$N1awC7qGapVTS_NFj1Q0jk6nCjATrIK-60oOEyDjabo", align 8 - %176 = load ptr, ptr @"main.struct$N1awC7qGapVTS_NFj1Q0jk6nCjATrIK-60oOEyDjabo", align 8 - %177 = load ptr, ptr @"_llgo_func$1BeCdGdxwWG-Dtl1HbNuSy2_sb8rBMTmu7zhcPPofmU", align 8 - %178 = load ptr, ptr @"main.struct$vwhCZhgsid50r1SsT8OmKpRI0Cpljg78h5JlpD1CTR4", align 8 - %179 = load ptr, ptr @"_llgo_func$_so3zZGPIhTQghxFcf7CCCVzSOk2lxOt7xgGKcTzc0s", align 8 - %180 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %179, 1 - %181 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %180, ptr @"main.(*future[main.Tuple[error]]).Then", 2 - %182 = insertvalue %"github.com/goplus/llgo/internal/abi.Method" %181, ptr @"main.(*future[main.Tuple[error]]).Then", 3 - %183 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 40) - %184 = getelementptr %"github.com/goplus/llgo/internal/abi.Method", ptr %183, i64 0 - store %"github.com/goplus/llgo/internal/abi.Method" %182, ptr %184, align 8 - %185 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %183, 0 - %186 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %185, i64 1, 1 - %187 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %186, i64 1, 2 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, ptr %176, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/internal/runtime.Slice" %187) - %188 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 6 }, i64 25, i64 24, i64 0, i64 1) - %189 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %188) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %189) - store ptr %189, ptr @"*_llgo_main.future[main.Tuple[error]]", align 8 - %190 = load ptr, ptr @"_llgo_func$_so3zZGPIhTQghxFcf7CCCVzSOk2lxOt7xgGKcTzc0s", align 8 - %191 = load ptr, ptr @"_llgo_iface$pTofAxYfPZHsCMD5T70nrOx1gjHf9m2QCLNvEOl1py0", align 8 - %192 = icmp eq ptr %191, null - br i1 %192, label %_llgo_21, label %_llgo_22 - -_llgo_21: ; preds = %_llgo_20 - %193 = insertvalue %"github.com/goplus/llgo/internal/abi.Imethod" { %"github.com/goplus/llgo/internal/runtime.String" { ptr @11, i64 4 }, ptr undef }, ptr %190, 1 - %194 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 24) - %195 = getelementptr %"github.com/goplus/llgo/internal/abi.Imethod", ptr %194, i64 0 - store %"github.com/goplus/llgo/internal/abi.Imethod" %193, ptr %195, align 8 - %196 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %194, 0 - %197 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %196, i64 1, 1 - %198 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %197, i64 1, 2 - %199 = call ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/internal/runtime.Slice" %198) - store ptr %199, ptr @"_llgo_iface$pTofAxYfPZHsCMD5T70nrOx1gjHf9m2QCLNvEOl1py0", align 8 - br label %_llgo_22 - -_llgo_22: ; preds = %_llgo_21, %_llgo_20 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String") - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Func"(%"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice", i1) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamedInterface"(ptr, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") - -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Interface"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewItab"(ptr, ptr) - -attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testrt/typed/out.ll b/cl/_testrt/typed/out.ll deleted file mode 100644 index d8e714c8..00000000 --- a/cl/_testrt/typed/out.ll +++ /dev/null @@ -1,234 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [5 x i8] c"hello", align 1 -@_llgo_main.T = linkonce global ptr null, align 8 -@1 = private unnamed_addr constant [4 x i8] c"main", align 1 -@2 = private unnamed_addr constant [1 x i8] c"T", align 1 -@_llgo_string = linkonce global ptr null, align 8 -@3 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 -@_llgo_main.A = linkonce global ptr null, align 8 -@4 = private unnamed_addr constant [1 x i8] c"A", align 1 -@_llgo_int = linkonce global ptr null, align 8 -@"[2]_llgo_int" = linkonce global ptr null, align 8 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - %2 = load ptr, ptr @_llgo_main.T, align 8 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %3, align 8 - %4 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %2, 0 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %4, ptr %3, 1 - %6 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %5, 0 - %7 = load ptr, ptr @_llgo_main.T, align 8 - %8 = icmp eq ptr %6, %7 - br i1 %8, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %9 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %5, 1 - %10 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %9, align 8 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %10) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %11 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %5, 0 - %12 = load ptr, ptr @_llgo_string, align 8 - %13 = icmp eq ptr %11, %12 - br i1 %13, label %_llgo_3, label %_llgo_4 - -_llgo_2: ; preds = %_llgo_0 - %14 = load ptr, ptr @_llgo_string, align 8 - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 21 }, ptr %15, align 8 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %14, 0 - %17 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %16, ptr %15, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %17) - unreachable - -_llgo_3: ; preds = %_llgo_1 - %18 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %5, 1 - %19 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %18, align 8 - %20 = insertvalue { %"github.com/goplus/llgo/internal/runtime.String", i1 } undef, %"github.com/goplus/llgo/internal/runtime.String" %19, 0 - %21 = insertvalue { %"github.com/goplus/llgo/internal/runtime.String", i1 } %20, i1 true, 1 - br label %_llgo_5 - -_llgo_4: ; preds = %_llgo_1 - br label %_llgo_5 - -_llgo_5: ; preds = %_llgo_4, %_llgo_3 - %22 = phi { %"github.com/goplus/llgo/internal/runtime.String", i1 } [ %21, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] - %23 = extractvalue { %"github.com/goplus/llgo/internal/runtime.String", i1 } %22, 0 - %24 = extractvalue { %"github.com/goplus/llgo/internal/runtime.String", i1 } %22, 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %23) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %24) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %25 = alloca [2 x i64], align 8 - call void @llvm.memset(ptr %25, i8 0, i64 16, i1 false) - %26 = getelementptr inbounds i64, ptr %25, i64 0 - %27 = getelementptr inbounds i64, ptr %25, i64 1 - store i64 1, ptr %26, align 4 - store i64 2, ptr %27, align 4 - %28 = load [2 x i64], ptr %25, align 4 - %29 = load ptr, ptr @_llgo_main.A, align 8 - %30 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store [2 x i64] %28, ptr %30, align 4 - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %29, 0 - %32 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %31, ptr %30, 1 - %33 = alloca [2 x i64], align 8 - call void @llvm.memset(ptr %33, i8 0, i64 16, i1 false) - %34 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %32, 0 - %35 = load ptr, ptr @_llgo_main.A, align 8 - %36 = icmp eq ptr %34, %35 - br i1 %36, label %_llgo_6, label %_llgo_7 - -_llgo_6: ; preds = %_llgo_5 - %37 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %32, 1 - %38 = load [2 x i64], ptr %37, align 4 - %39 = insertvalue { [2 x i64], i1 } undef, [2 x i64] %38, 0 - %40 = insertvalue { [2 x i64], i1 } %39, i1 true, 1 - br label %_llgo_8 - -_llgo_7: ; preds = %_llgo_5 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - %41 = phi { [2 x i64], i1 } [ %40, %_llgo_6 ], [ zeroinitializer, %_llgo_7 ] - %42 = extractvalue { [2 x i64], i1 } %41, 0 - store [2 x i64] %42, ptr %33, align 4 - %43 = extractvalue { [2 x i64], i1 } %41, 1 - %44 = getelementptr inbounds i64, ptr %33, i64 0 - %45 = load i64, ptr %44, align 4 - %46 = getelementptr inbounds i64, ptr %33, i64 1 - %47 = load i64, ptr %46, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %45) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %47) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %43) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - ret i32 0 -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -define void @"main.init$after"() { -_llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 1 }, i64 24, i64 16, i64 0, i64 0) - %1 = load ptr, ptr @_llgo_main.T, align 8 - %2 = icmp eq ptr %1, null - br i1 %2, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - store ptr %0, ptr @_llgo_main.T, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = load ptr, ptr @_llgo_string, align 8 - %4 = icmp eq ptr %3, null - br i1 %4, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %5, ptr @_llgo_string, align 8 - br label %_llgo_4 - -_llgo_4: ; preds = %_llgo_3, %_llgo_2 - %6 = load ptr, ptr @_llgo_string, align 8 - br i1 %2, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, ptr %6, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - br label %_llgo_6 - -_llgo_6: ; preds = %_llgo_5, %_llgo_4 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 1 }, i64 17, i64 16, i64 0, i64 0) - %8 = load ptr, ptr @_llgo_main.A, align 8 - %9 = icmp eq ptr %8, null - br i1 %9, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - store ptr %7, ptr @_llgo_main.A, align 8 - br label %_llgo_8 - -_llgo_8: ; preds = %_llgo_7, %_llgo_6 - %10 = load ptr, ptr @_llgo_int, align 8 - %11 = icmp eq ptr %10, null - br i1 %11, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - store ptr %12, ptr @_llgo_int, align 8 - br label %_llgo_10 - -_llgo_10: ; preds = %_llgo_9, %_llgo_8 - %13 = load ptr, ptr @_llgo_int, align 8 - %14 = load ptr, ptr @"[2]_llgo_int", align 8 - %15 = icmp eq ptr %14, null - br i1 %15, label %_llgo_11, label %_llgo_12 - -_llgo_11: ; preds = %_llgo_10 - %16 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64 2, ptr %16) - store ptr %17, ptr @"[2]_llgo_int", align 8 - br label %_llgo_12 - -_llgo_12: ; preds = %_llgo_11, %_llgo_10 - %18 = load ptr, ptr @"[2]_llgo_int", align 8 - br i1 %9, label %_llgo_13, label %_llgo_14 - -_llgo_13: ; preds = %_llgo_12 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %7, ptr %18, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) - br label %_llgo_14 - -_llgo_14: ; preds = %_llgo_13, %_llgo_12 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") - -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1) - -; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 - -declare ptr @"github.com/goplus/llgo/internal/runtime.ArrayOf"(i64, ptr) - -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) - -attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testrt/unsafe/out.ll b/cl/_testrt/unsafe/out.ll deleted file mode 100644 index dc2d02bb..00000000 --- a/cl/_testrt/unsafe/out.ll +++ /dev/null @@ -1,289 +0,0 @@ -; ModuleID = 'main' -source_filename = "main" - -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } - -@"main.init$guard" = global i1 false, align 1 -@__llgo_argc = global i32 0, align 4 -@__llgo_argv = global ptr null, align 8 -@0 = private unnamed_addr constant [5 x i8] c"error", align 1 -@_llgo_string = linkonce global ptr null, align 8 -@1 = private unnamed_addr constant [4 x i8] c"abc\00", align 1 -@2 = private unnamed_addr constant [3 x i8] c"abc", align 1 - -define void @main.init() { -_llgo_0: - %0 = load i1, ptr @"main.init$guard", align 1 - br i1 %0, label %_llgo_2, label %_llgo_1 - -_llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"main.init$guard", align 1 - call void @"main.init$after"() - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -define i32 @main(i32 %0, ptr %1) { -_llgo_0: - store i32 %0, ptr @__llgo_argc, align 4 - store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() - call void @main.init() - br i1 false, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %2 = load ptr, ptr @_llgo_string, align 8 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %3, align 8 - %4 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %2, 0 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %4, ptr %3, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %5) - unreachable - -_llgo_2: ; preds = %_llgo_0 - br i1 false, label %_llgo_3, label %_llgo_4 - -_llgo_3: ; preds = %_llgo_2 - %6 = load ptr, ptr @_llgo_string, align 8 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %7, align 8 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %6, 0 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %8, ptr %7, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %9) - unreachable - -_llgo_4: ; preds = %_llgo_2 - br i1 false, label %_llgo_5, label %_llgo_6 - -_llgo_5: ; preds = %_llgo_4 - %10 = load ptr, ptr @_llgo_string, align 8 - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %11, align 8 - %12 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %10, 0 - %13 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %12, ptr %11, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %13) - unreachable - -_llgo_6: ; preds = %_llgo_4 - br i1 false, label %_llgo_7, label %_llgo_8 - -_llgo_7: ; preds = %_llgo_6 - %14 = load ptr, ptr @_llgo_string, align 8 - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %15, align 8 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %14, 0 - %17 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %16, ptr %15, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %17) - unreachable - -_llgo_8: ; preds = %_llgo_6 - br i1 false, label %_llgo_9, label %_llgo_10 - -_llgo_9: ; preds = %_llgo_8 - %18 = load ptr, ptr @_llgo_string, align 8 - %19 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %19, align 8 - %20 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %18, 0 - %21 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %20, ptr %19, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %21) - unreachable - -_llgo_10: ; preds = %_llgo_8 - br i1 false, label %_llgo_11, label %_llgo_12 - -_llgo_11: ; preds = %_llgo_10 - %22 = load ptr, ptr @_llgo_string, align 8 - %23 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %23, align 8 - %24 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %22, 0 - %25 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %24, ptr %23, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %25) - unreachable - -_llgo_12: ; preds = %_llgo_10 - br i1 false, label %_llgo_13, label %_llgo_14 - -_llgo_13: ; preds = %_llgo_12 - %26 = load ptr, ptr @_llgo_string, align 8 - %27 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %27, align 8 - %28 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %26, 0 - %29 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %28, ptr %27, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %29) - unreachable - -_llgo_14: ; preds = %_llgo_12 - br i1 false, label %_llgo_15, label %_llgo_16 - -_llgo_15: ; preds = %_llgo_14 - %30 = load ptr, ptr @_llgo_string, align 8 - %31 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %31, align 8 - %32 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %30, 0 - %33 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %32, ptr %31, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %33) - unreachable - -_llgo_16: ; preds = %_llgo_14 - br i1 false, label %_llgo_17, label %_llgo_18 - -_llgo_17: ; preds = %_llgo_16 - %34 = load ptr, ptr @_llgo_string, align 8 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %35, align 8 - %36 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %34, 0 - %37 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %36, ptr %35, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %37) - unreachable - -_llgo_18: ; preds = %_llgo_16 - br i1 false, label %_llgo_19, label %_llgo_20 - -_llgo_19: ; preds = %_llgo_18 - %38 = load ptr, ptr @_llgo_string, align 8 - %39 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %39, align 8 - %40 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %38, 0 - %41 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %40, ptr %39, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %41) - unreachable - -_llgo_20: ; preds = %_llgo_18 - %42 = call i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 3 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 3 }) - %43 = xor i1 %42, true - br i1 %43, label %_llgo_21, label %_llgo_22 - -_llgo_21: ; preds = %_llgo_20 - %44 = load ptr, ptr @_llgo_string, align 8 - %45 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %45, align 8 - %46 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %44, 0 - %47 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %46, ptr %45, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %47) - unreachable - -_llgo_22: ; preds = %_llgo_20 - %48 = load i8, ptr @1, align 1 - %49 = icmp ne i8 %48, 97 - br i1 %49, label %_llgo_23, label %_llgo_26 - -_llgo_23: ; preds = %_llgo_25, %_llgo_26, %_llgo_22 - %50 = load ptr, ptr @_llgo_string, align 8 - %51 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %51, align 8 - %52 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %50, 0 - %53 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %52, ptr %51, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %53) - unreachable - -_llgo_24: ; preds = %_llgo_25 - %54 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - %55 = getelementptr inbounds i64, ptr %54, i64 0 - %56 = getelementptr inbounds i64, ptr %54, i64 1 - store i64 1, ptr %55, align 4 - store i64 2, ptr %56, align 4 - %57 = getelementptr inbounds i64, ptr %54, i64 0 - %58 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %57, 0 - %59 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %58, i64 2, 1 - %60 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %59, i64 2, 2 - %61 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %60, 0 - %62 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %60, 1 - %63 = icmp sge i64 0, %62 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %63) - %64 = getelementptr inbounds i64, ptr %61, i64 0 - %65 = load i64, ptr %64, align 4 - %66 = icmp ne i64 %65, 1 - br i1 %66, label %_llgo_27, label %_llgo_29 - -_llgo_25: ; preds = %_llgo_26 - %67 = load i8, ptr getelementptr inbounds (i8, ptr @1, i64 2), align 1 - %68 = icmp ne i8 %67, 99 - br i1 %68, label %_llgo_23, label %_llgo_24 - -_llgo_26: ; preds = %_llgo_22 - %69 = load i8, ptr getelementptr inbounds (i8, ptr @1, i64 1), align 1 - %70 = icmp ne i8 %69, 98 - br i1 %70, label %_llgo_23, label %_llgo_25 - -_llgo_27: ; preds = %_llgo_29, %_llgo_24 - %71 = load ptr, ptr @_llgo_string, align 8 - %72 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %72, align 8 - %73 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %71, 0 - %74 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %73, ptr %72, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %74) - unreachable - -_llgo_28: ; preds = %_llgo_29 - %75 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %60, 0 - %76 = load i64, ptr %75, align 4 - %77 = icmp ne i64 %76, 1 - br i1 %77, label %_llgo_30, label %_llgo_31 - -_llgo_29: ; preds = %_llgo_24 - %78 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %60, 0 - %79 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %60, 1 - %80 = icmp sge i64 1, %79 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %80) - %81 = getelementptr inbounds i64, ptr %78, i64 1 - %82 = load i64, ptr %81, align 4 - %83 = icmp ne i64 %82, 2 - br i1 %83, label %_llgo_27, label %_llgo_28 - -_llgo_30: ; preds = %_llgo_28 - %84 = load ptr, ptr @_llgo_string, align 8 - %85 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %85, align 8 - %86 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %84, 0 - %87 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %86, ptr %85, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %87) - unreachable - -_llgo_31: ; preds = %_llgo_28 - br i1 icmp ne (i64 ptrtoint (ptr getelementptr (i8, ptr null, i64 1) to i64), i64 1), label %_llgo_32, label %_llgo_33 - -_llgo_32: ; preds = %_llgo_31 - %88 = load ptr, ptr @_llgo_string, align 8 - %89 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %89, align 8 - %90 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %88, 0 - %91 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %90, ptr %89, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %91) - unreachable - -_llgo_33: ; preds = %_llgo_31 - ret i32 0 -} - -declare void @"github.com/goplus/llgo/internal/runtime.init"() - -define void @"main.init$after"() { -_llgo_0: - %0 = load ptr, ptr @_llgo_string, align 8 - %1 = icmp eq ptr %0, null - br i1 %1, label %_llgo_1, label %_llgo_2 - -_llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) - store ptr %2, ptr @_llgo_string, align 8 - br label %_llgo_2 - -_llgo_2: ; preds = %_llgo_1, %_llgo_0 - ret void -} - -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") - -declare i1 @"github.com/goplus/llgo/internal/runtime.StringEqual"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String") - -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) - -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) diff --git a/_lldb/README.md b/compiler/_lldb/README.md similarity index 100% rename from _lldb/README.md rename to compiler/_lldb/README.md diff --git a/_lldb/common.sh b/compiler/_lldb/common.sh similarity index 62% rename from _lldb/common.sh rename to compiler/_lldb/common.sh index f1376e21..4925255a 100644 --- a/_lldb/common.sh +++ b/compiler/_lldb/common.sh @@ -31,10 +31,24 @@ $LLDB_PATH --version export LLDB_PATH # Default package path -export DEFAULT_PACKAGE_PATH="./cl/_testdata/debug" +export DEFAULT_PACKAGE_PATH="./_lldb/lldbtest" # Function to build the project build_project() { - local package_path="$1" - LLGO_DEBUG=1 go run ./cmd/llgo build -o "${package_path}/debug.out" "${package_path}" + # package_path parameter is kept for backward compatibility + local current_dir + current_dir=$(pwd) || return + + if ! cd "${DEFAULT_PACKAGE_PATH}"; then + echo "Failed to change directory to ${DEFAULT_PACKAGE_PATH}" >&2 + return 1 + fi + + LLGO_DEBUG=1 llgo build -o "debug.out" . || { + local ret=$? + cd "$current_dir" || return + return $ret + } + + cd "$current_dir" || return } diff --git a/compiler/_lldb/lldbtest/go.mod b/compiler/_lldb/lldbtest/go.mod new file mode 100644 index 00000000..782d5bc7 --- /dev/null +++ b/compiler/_lldb/lldbtest/go.mod @@ -0,0 +1,3 @@ +module lldbtest + +go 1.20 diff --git a/cl/_testdata/debug/in.go b/compiler/_lldb/lldbtest/main.go similarity index 93% rename from cl/_testdata/debug/in.go rename to compiler/_lldb/lldbtest/main.go index 5840a92e..ffc188b5 100644 --- a/cl/_testdata/debug/in.go +++ b/compiler/_lldb/lldbtest/main.go @@ -73,9 +73,9 @@ func FuncWithAllTypeStructParam(s StructWithAllTypeFields) { // s.c128: complex128{real = 15, imag = 16} // s.slice: []int{21, 22, 23} // s.arr: [3]int{24, 25, 26} - // s.arr2: [3]github.com/goplus/llgo/cl/_testdata/debug.E{{i = 27}, {i = 28}, {i = 29}} + // s.arr2: [3]lldbtest.E{{i = 27}, {i = 28}, {i = 29}} // s.s: "hello" - // s.e: github.com/goplus/llgo/cl/_testdata/debug.E{i = 30} + // s.e: lldbtest.E{i = 30} // s.pad1: 100 // s.pad2: 200 s.i8 = '\b' @@ -128,7 +128,7 @@ func FuncWithAllTypeParams( // f64: 12 // slice: []int{21, 22, 23} // arr: [3]int{24, 25, 26} - // arr2: [3]github.com/goplus/llgo/cl/_testdata/debug.E{{i = 27}, {i = 28}, {i = 29}} + // arr2: [3]lldbtest.E{{i = 27}, {i = 28}, {i = 29}} // slice[0]: 21 // slice[1]: 22 // slice[2]: 23 @@ -138,7 +138,7 @@ func FuncWithAllTypeParams( // arr2[0].i: 27 // arr2[1].i: 28 // arr2[2].i: 29 - // e: github.com/goplus/llgo/cl/_testdata/debug.E{i = 30} + // e: lldbtest.E{i = 30} // Expected(skip): // i8: '\b' @@ -207,9 +207,9 @@ func FuncWithAllTypeParams( // c64: complex64{real = 21, imag = 22} // c128: complex128{real = 23, imag = 24} // slice: []int{31, 32, 33} - // arr2: [3]github.com/goplus/llgo/cl/_testdata/debug.E{{i = 37}, {i = 38}, {i = 39}} + // arr2: [3]lldbtest.E{{i = 37}, {i = 38}, {i = 39}} // s: "world" - // e: github.com/goplus/llgo/cl/_testdata/debug.E{i = 40} + // e: lldbtest.E{i = 40} // Expected(skip): // arr: [3]int{34, 35, 36} @@ -512,9 +512,9 @@ func main() { // s.c128: complex128{real = 15, imag = 16} // s.slice: []int{21, 22, 23} // s.arr: [3]int{24, 25, 26} - // s.arr2: [3]github.com/goplus/llgo/cl/_testdata/debug.E{{i = 27}, {i = 28}, {i = 29}} + // s.arr2: [3]lldbtest.E{{i = 27}, {i = 28}, {i = 29}} // s.s: "hello" - // s.e: github.com/goplus/llgo/cl/_testdata/debug.E{i = 30} + // s.e: lldbtest.E{i = 30} // s.pf.i16: 100 // *(s.pf).i16: 100 // *(s.pi): 100 diff --git a/_lldb/llgo_plugin.py b/compiler/_lldb/llgo_plugin.py similarity index 100% rename from _lldb/llgo_plugin.py rename to compiler/_lldb/llgo_plugin.py diff --git a/_lldb/runlldb.sh b/compiler/_lldb/runlldb.sh similarity index 100% rename from _lldb/runlldb.sh rename to compiler/_lldb/runlldb.sh diff --git a/_lldb/runtest.sh b/compiler/_lldb/runtest.sh similarity index 81% rename from _lldb/runtest.sh rename to compiler/_lldb/runtest.sh index 6d73cbb8..6d6834c2 100755 --- a/_lldb/runtest.sh +++ b/compiler/_lldb/runtest.sh @@ -42,19 +42,19 @@ result_file="/tmp/lldb_exit_code" # Prepare LLDB commands lldb_commands=( - "command script import _lldb/llgo_plugin.py" - "command script import _lldb/test.py" - "script test.run_tests_with_result('${package_path}/debug.out', ['${package_path}/in.go'], $verbose, $interactive, $plugin_path, '$result_file')" + "command script import ../llgo_plugin.py" + "command script import ../test.py" + "script test.run_tests_with_result('./debug.out', ['main.go'], $verbose, $interactive, $plugin_path, '$result_file')" "quit" ) -# Run LLDB with prepared commands +# Run LLDB with prepared commands lldb_command_string="" for cmd in "${lldb_commands[@]}"; do lldb_command_string+=" -o \"$cmd\"" done - +cd "$package_path" # Run LLDB with the test script eval "$LLDB_PATH $lldb_command_string" diff --git a/_lldb/test.py b/compiler/_lldb/test.py similarity index 100% rename from _lldb/test.py rename to compiler/_lldb/test.py diff --git a/chore/_deprecated/ar/ar.go b/compiler/chore/_deprecated/ar/ar.go similarity index 100% rename from chore/_deprecated/ar/ar.go rename to compiler/chore/_deprecated/ar/ar.go diff --git a/chore/_deprecated/clang/parser/pages.go b/compiler/chore/_deprecated/clang/parser/pages.go similarity index 100% rename from chore/_deprecated/clang/parser/pages.go rename to compiler/chore/_deprecated/clang/parser/pages.go diff --git a/chore/_deprecated/clang/parser/parse.go b/compiler/chore/_deprecated/clang/parser/parse.go similarity index 100% rename from chore/_deprecated/clang/parser/parse.go rename to compiler/chore/_deprecated/clang/parser/parse.go diff --git a/chore/_deprecated/clangast/clangast.go b/compiler/chore/_deprecated/clangast/clangast.go similarity index 100% rename from chore/_deprecated/clangast/clangast.go rename to compiler/chore/_deprecated/clangast/clangast.go diff --git a/chore/_deprecated/go.mod b/compiler/chore/_deprecated/go.mod similarity index 100% rename from chore/_deprecated/go.mod rename to compiler/chore/_deprecated/go.mod diff --git a/chore/_deprecated/go.sum b/compiler/chore/_deprecated/go.sum similarity index 100% rename from chore/_deprecated/go.sum rename to compiler/chore/_deprecated/go.sum diff --git a/chore/ardump/ardump.go b/compiler/chore/ardump/ardump.go similarity index 100% rename from chore/ardump/ardump.go rename to compiler/chore/ardump/ardump.go diff --git a/chore/clangpp/clangpp.go b/compiler/chore/clangpp/clangpp.go similarity index 100% rename from chore/clangpp/clangpp.go rename to compiler/chore/clangpp/clangpp.go diff --git a/chore/dylibdeps/dylibdeps.go b/compiler/chore/dylibdeps/dylibdeps.go similarity index 100% rename from chore/dylibdeps/dylibdeps.go rename to compiler/chore/dylibdeps/dylibdeps.go diff --git a/chore/gentests/gentests.go b/compiler/chore/gentests/gentests.go similarity index 96% rename from chore/gentests/gentests.go rename to compiler/chore/gentests/gentests.go index 6cd06ba5..617209e9 100644 --- a/chore/gentests/gentests.go +++ b/compiler/chore/gentests/gentests.go @@ -21,7 +21,7 @@ import ( "os" "strings" - "github.com/goplus/llgo/internal/llgen" + "github.com/goplus/llgo/compiler/internal/llgen" "github.com/goplus/mod" ) diff --git a/chore/llgen/llgen.go b/compiler/chore/llgen/llgen.go similarity index 94% rename from chore/llgen/llgen.go rename to compiler/chore/llgen/llgen.go index 50e9a89e..d7090a1b 100644 --- a/chore/llgen/llgen.go +++ b/compiler/chore/llgen/llgen.go @@ -21,7 +21,7 @@ import ( "fmt" "os" - "github.com/goplus/llgo/internal/llgen" + "github.com/goplus/llgo/compiler/internal/llgen" ) func main() { diff --git a/chore/llpyg/llpyg.go b/compiler/chore/llpyg/llpyg.go similarity index 98% rename from chore/llpyg/llpyg.go rename to compiler/chore/llpyg/llpyg.go index fc97ba1b..bdeaa0b6 100644 --- a/chore/llpyg/llpyg.go +++ b/compiler/chore/llpyg/llpyg.go @@ -29,8 +29,8 @@ import ( "strings" "github.com/goplus/gogen" - "github.com/goplus/llgo/chore/llpyg/pysig" - "github.com/goplus/llgo/ssa" + "github.com/goplus/llgo/compiler/chore/llpyg/pysig" + "github.com/goplus/llgo/compiler/ssa" ) type symbol struct { diff --git a/chore/llpyg/pysig/parse.go b/compiler/chore/llpyg/pysig/parse.go similarity index 100% rename from chore/llpyg/pysig/parse.go rename to compiler/chore/llpyg/pysig/parse.go diff --git a/chore/llpyg/pysig/parse_test.go b/compiler/chore/llpyg/pysig/parse_test.go similarity index 100% rename from chore/llpyg/pysig/parse_test.go rename to compiler/chore/llpyg/pysig/parse_test.go diff --git a/chore/llvmtargets/llvm_targets.go b/compiler/chore/llvmtargets/llvm_targets.go similarity index 100% rename from chore/llvmtargets/llvm_targets.go rename to compiler/chore/llvmtargets/llvm_targets.go diff --git a/chore/nmdump/nmdump.go b/compiler/chore/nmdump/nmdump.go similarity index 100% rename from chore/nmdump/nmdump.go rename to compiler/chore/nmdump/nmdump.go diff --git a/chore/nmindex/nmindex.go b/compiler/chore/nmindex/nmindex.go similarity index 100% rename from chore/nmindex/nmindex.go rename to compiler/chore/nmindex/nmindex.go diff --git a/chore/ssadump/ssadump.go b/compiler/chore/ssadump/ssadump.go similarity index 100% rename from chore/ssadump/ssadump.go rename to compiler/chore/ssadump/ssadump.go diff --git a/cl/_testdata/apkg/in.go b/compiler/cl/_testdata/apkg/in.go similarity index 100% rename from cl/_testdata/apkg/in.go rename to compiler/cl/_testdata/apkg/in.go diff --git a/compiler/cl/_testdata/apkg/out.ll b/compiler/cl/_testdata/apkg/out.ll new file mode 100644 index 00000000..22bfb3db --- /dev/null +++ b/compiler/cl/_testdata/apkg/out.ll @@ -0,0 +1,29 @@ +; ModuleID = 'github.com/goplus/llgo/compiler/cl/_testdata/apkg' +source_filename = "github.com/goplus/llgo/compiler/cl/_testdata/apkg" + +@"github.com/goplus/llgo/compiler/cl/_testdata/apkg.init$guard" = global i1 false, align 1 + +define double @"github.com/goplus/llgo/compiler/cl/_testdata/apkg.Max"(double %0, double %1) { +_llgo_0: + %2 = fcmp ogt double %0, %1 + br i1 %2, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + ret double %0 + +_llgo_2: ; preds = %_llgo_0 + ret double %1 +} + +define void @"github.com/goplus/llgo/compiler/cl/_testdata/apkg.init"() { +_llgo_0: + %0 = load i1, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/apkg.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/apkg.init$guard", align 1 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} diff --git a/cl/_testdata/debug/flags.txt b/compiler/cl/_testdata/debug/flags.txt similarity index 100% rename from cl/_testdata/debug/flags.txt rename to compiler/cl/_testdata/debug/flags.txt diff --git a/compiler/cl/_testdata/debug/in.go b/compiler/cl/_testdata/debug/in.go new file mode 100644 index 00000000..dc3e07dd --- /dev/null +++ b/compiler/cl/_testdata/debug/in.go @@ -0,0 +1,569 @@ +package main + +import "errors" + +type Base struct { + name string +} + +type E struct { + // Base + i int +} +type StructWithAllTypeFields struct { + i8 int8 + i16 int16 + i32 int32 + i64 int64 + i int + u8 uint8 + u16 uint16 + u32 uint32 + u64 uint64 + u uint + f32 float32 + f64 float64 + b bool + c64 complex64 + c128 complex128 + slice []int + arr [3]int + arr2 [3]E + s string + e E + pf *StructWithAllTypeFields // resursive + pi *int + intr Interface + m map[string]uint64 + c chan int + err error + fn func(string) (int, error) + pad1 int + pad2 int +} + +type Interface interface { + Foo(a []int, b string) int +} + +type Struct struct{} + +func (s *Struct) Foo(a []int, b string) int { + return 1 +} + +func FuncWithAllTypeStructParam(s StructWithAllTypeFields) { + println(&s) + // Expected: + // all variables: s + // s.i8: '\x01' + // s.i16: 2 + // s.i32: 3 + // s.i64: 4 + // s.i: 5 + // s.u8: '\x06' + // s.u16: 7 + // s.u32: 8 + // s.u64: 9 + // s.u: 10 + // s.f32: 11 + // s.f64: 12 + // s.b: true + // s.c64: complex64{real = 13, imag = 14} + // s.c128: complex128{real = 15, imag = 16} + // s.slice: []int{21, 22, 23} + // s.arr: [3]int{24, 25, 26} + // s.arr2: [3]github.com/goplus/llgo/compiler/cl/_testdata/debug.E{{i = 27}, {i = 28}, {i = 29}} + // s.s: "hello" + // s.e: github.com/goplus/llgo/compiler/cl/_testdata/debug.E{i = 30} + // s.pad1: 100 + // s.pad2: 200 + s.i8 = '\b' + // Expected: + // s.i8: '\b' + // s.i16: 2 + println(len(s.s), s.i8) +} + +// Params is a function with all types of parameters. +func FuncWithAllTypeParams( + i8 int8, + i16 int16, + i32 int32, + i64 int64, + i int, + u8 uint8, + u16 uint16, + u32 uint32, + u64 uint64, + u uint, + f32 float32, + f64 float64, + b bool, + c64 complex64, + c128 complex128, + slice []int, + arr [3]int, + arr2 [3]E, + s string, + e E, + f StructWithAllTypeFields, + pf *StructWithAllTypeFields, + pi *int, + intr Interface, + m map[string]uint64, + c chan int, + err error, + fn func(string) (int, error), +) (int, error) { + // Expected: + // all variables: i8 i16 i32 i64 i u8 u16 u32 u64 u f32 f64 b c64 c128 slice arr arr2 s e f pf pi intr m c err fn + // i32: 3 + // i64: 4 + // i: 5 + // u32: 8 + // u64: 9 + // u: 10 + // f32: 11 + // f64: 12 + // slice: []int{21, 22, 23} + // arr: [3]int{24, 25, 26} + // arr2: [3]github.com/goplus/llgo/compiler/cl/_testdata/debug.E{{i = 27}, {i = 28}, {i = 29}} + // slice[0]: 21 + // slice[1]: 22 + // slice[2]: 23 + // arr[0]: 24 + // arr[1]: 25 + // arr[2]: 26 + // arr2[0].i: 27 + // arr2[1].i: 28 + // arr2[2].i: 29 + // e: github.com/goplus/llgo/compiler/cl/_testdata/debug.E{i = 30} + + // Expected(skip): + // i8: '\b' + // i16: 2 + // u8: '\x06' + // u16: 7 + // b: true + println( + i8, i16, i32, i64, i, u8, u16, u32, u64, u, + f32, f64, b, + c64, c128, + slice, arr[0:], + s, + &e, + &f, pf, pi, intr, m, + c, + err, + fn, + ) + i8 = 9 + i16 = 10 + i32 = 11 + i64 = 12 + i = 13 + u8 = 14 + u16 = 15 + u32 = 16 + u64 = 17 + u = 18 + f32 = 19 + f64 = 20 + b = false + c64 = 21 + 22i + c128 = 23 + 24i + slice = []int{31, 32, 33} + arr = [3]int{34, 35, 36} + arr2 = [3]E{{i: 37}, {i: 38}, {i: 39}} + s = "world" + e = E{i: 40} + + println(i8, i16, i32, i64, i, u8, u16, u32, u64, u, + f32, f64, b, + c64, c128, + slice, arr[0:], &arr2, + s, + &e, + &f, pf, pi, intr, m, + c, + err, + fn, + ) + // Expected: + // i8: '\t' + // i16: 10 + // i32: 11 + // i64: 12 + // i: 13 + // u8: '\x0e' + // u16: 15 + // u32: 16 + // u64: 17 + // u: 18 + // f32: 19 + // f64: 20 + // b: false + // c64: complex64{real = 21, imag = 22} + // c128: complex128{real = 23, imag = 24} + // slice: []int{31, 32, 33} + // arr2: [3]github.com/goplus/llgo/compiler/cl/_testdata/debug.E{{i = 37}, {i = 38}, {i = 39}} + // s: "world" + // e: github.com/goplus/llgo/compiler/cl/_testdata/debug.E{i = 40} + + // Expected(skip): + // arr: [3]int{34, 35, 36} + return 1, errors.New("some error") +} + +type TinyStruct struct { + I int +} + +type SmallStruct struct { + I int + J int +} + +type MidStruct struct { + I int + J int + K int +} + +type BigStruct struct { + I int + J int + K int + L int + M int + N int + O int + P int + Q int + R int +} + +func FuncStructParams(t TinyStruct, s SmallStruct, m MidStruct, b BigStruct) { + // println(&t, &s, &m, &b) + // Expected: + // all variables: t s m b + // t.I: 1 + // s.I: 2 + // s.J: 3 + // m.I: 4 + // m.J: 5 + // m.K: 6 + // b.I: 7 + // b.J: 8 + // b.K: 9 + // b.L: 10 + // b.M: 11 + // b.N: 12 + // b.O: 13 + // b.P: 14 + // b.Q: 15 + // b.R: 16 + println(t.I, s.I, s.J, m.I, m.J, m.K, b.I, b.J, b.K, b.L, b.M, b.N, b.O, b.P, b.Q, b.R) + t.I = 10 + s.I = 20 + s.J = 21 + m.I = 40 + m.J = 41 + m.K = 42 + b.I = 70 + b.J = 71 + b.K = 72 + b.L = 73 + b.M = 74 + b.N = 75 + b.O = 76 + b.P = 77 + b.Q = 78 + b.R = 79 + // Expected: + // all variables: t s m b + // t.I: 10 + // s.I: 20 + // s.J: 21 + // m.I: 40 + // m.J: 41 + // m.K: 42 + // b.I: 70 + // b.J: 71 + // b.K: 72 + // b.L: 73 + // b.M: 74 + // b.N: 75 + // b.O: 76 + // b.P: 77 + // b.Q: 78 + // b.R: 79 + println("done") +} + +func FuncStructPtrParams(t *TinyStruct, s *SmallStruct, m *MidStruct, b *BigStruct) { + // Expected: + // all variables: t s m b + // t.I: 1 + // s.I: 2 + // s.J: 3 + // m.I: 4 + // m.J: 5 + // m.K: 6 + // b.I: 7 + // b.J: 8 + // b.K: 9 + // b.L: 10 + // b.M: 11 + // b.N: 12 + // b.O: 13 + // b.P: 14 + // b.Q: 15 + // b.R: 16 + println(t, s, m, b) + t.I = 10 + s.I = 20 + s.J = 21 + m.I = 40 + m.J = 41 + m.K = 42 + b.I = 70 + b.J = 71 + b.K = 72 + b.L = 73 + b.M = 74 + b.N = 75 + b.O = 76 + b.P = 77 + b.Q = 78 + b.R = 79 + // Expected: + // all variables: t s m b + // t.I: 10 + // s.I: 20 + // s.J: 21 + // m.I: 40 + // m.J: 41 + // m.K: 42 + // b.I: 70 + // b.J: 71 + // b.K: 72 + // b.L: 73 + // b.M: 74 + // b.N: 75 + // b.O: 76 + // b.P: 77 + // b.Q: 78 + // b.R: 79 + println(t.I, s.I, s.J, m.I, m.J, m.K, b.I, b.J, b.K, b.L, b.M, b.N, b.O, b.P, b.Q, b.R) + println("done") +} + +func ScopeIf(branch int) { + a := 1 + // Expected: + // all variables: a branch + // a: 1 + if branch == 1 { + b := 2 + c := 3 + // Expected: + // all variables: a b c branch + // a: 1 + // b: 2 + // c: 3 + // branch: 1 + println(a, b, c) + } else { + c := 3 + d := 4 + // Expected: + // all variables: a c d branch + // a: 1 + // c: 3 + // d: 4 + // branch: 0 + println(a, c, d) + } + // Expected: + // all variables: a branch + // a: 1 + println("a:", a) +} + +func ScopeFor() { + a := 1 + for i := 0; i < 10; i++ { + switch i { + case 0: + println("i is 0") + // Expected: + // all variables: i a + // i: 0 + // a: 1 + println("i:", i) + case 1: + println("i is 1") + // Expected: + // all variables: i a + // i: 1 + // a: 1 + println("i:", i) + default: + println("i is", i) + } + } + println("a:", a) +} + +func ScopeSwitch(i int) { + a := 0 + switch i { + case 1: + b := 1 + println("i is 1") + // Expected: + // all variables: i a b + // i: 1 + // a: 0 + // b: 1 + println("i:", i, "a:", a, "b:", b) + case 2: + c := 2 + println("i is 2") + // Expected: + // all variables: i a c + // i: 2 + // a: 0 + // c: 2 + println("i:", i, "a:", a, "c:", c) + default: + d := 3 + println("i is", i) + // Expected: + // all variables: i a d + // i: 3 + // a: 0 + // d: 3 + println("i:", i, "a:", a, "d:", d) + } + // Expected: + // all variables: a i + // a: 0 + println("a:", a) +} + +func main() { + FuncStructParams(TinyStruct{I: 1}, SmallStruct{I: 2, J: 3}, MidStruct{I: 4, J: 5, K: 6}, BigStruct{I: 7, J: 8, K: 9, L: 10, M: 11, N: 12, O: 13, P: 14, Q: 15, R: 16}) + FuncStructPtrParams(&TinyStruct{I: 1}, &SmallStruct{I: 2, J: 3}, &MidStruct{I: 4, J: 5, K: 6}, &BigStruct{I: 7, J: 8, K: 9, L: 10, M: 11, N: 12, O: 13, P: 14, Q: 15, R: 16}) + i := 100 + s := StructWithAllTypeFields{ + i8: 1, + i16: 2, + i32: 3, + i64: 4, + i: 5, + u8: 6, + u16: 7, + u32: 8, + u64: 9, + u: 10, + f32: 11, + f64: 12, + b: true, + c64: 13 + 14i, + c128: 15 + 16i, + slice: []int{21, 22, 23}, + arr: [3]int{24, 25, 26}, + arr2: [3]E{{i: 27}, {i: 28}, {i: 29}}, + s: "hello", + e: E{i: 30}, + pf: &StructWithAllTypeFields{i16: 100}, + pi: &i, + intr: &Struct{}, + m: map[string]uint64{"a": 31, "b": 32}, + c: make(chan int), + err: errors.New("Test error"), + fn: func(s string) (int, error) { + println("fn:", s) + i = 201 + return 1, errors.New("fn error") + }, + pad1: 100, + pad2: 200, + } + // Expected: + // all variables: s i err + // s.i8: '\x01' + // s.i16: 2 + // s.i32: 3 + // s.i64: 4 + // s.i: 5 + // s.u8: '\x06' + // s.u16: 7 + // s.u32: 8 + // s.u64: 9 + // s.u: 10 + // s.f32: 11 + // s.f64: 12 + // s.b: true + // s.c64: complex64{real = 13, imag = 14} + // s.c128: complex128{real = 15, imag = 16} + // s.slice: []int{21, 22, 23} + // s.arr: [3]int{24, 25, 26} + // s.arr2: [3]github.com/goplus/llgo/compiler/cl/_testdata/debug.E{{i = 27}, {i = 28}, {i = 29}} + // s.s: "hello" + // s.e: github.com/goplus/llgo/compiler/cl/_testdata/debug.E{i = 30} + // s.pf.i16: 100 + // *(s.pf).i16: 100 + // *(s.pi): 100 + globalStructPtr = &s + globalStruct = s + println("globalInt:", globalInt) + // Expected(skip): + // all variables: globalInt globalStruct globalStructPtr s i err + println("s:", &s) + FuncWithAllTypeStructParam(s) + println("called function with struct") + i, err := FuncWithAllTypeParams( + s.i8, s.i16, s.i32, s.i64, s.i, s.u8, s.u16, s.u32, s.u64, s.u, + s.f32, s.f64, s.b, + s.c64, s.c128, + s.slice, s.arr, s.arr2, + s.s, + s.e, s, + s.pf, s.pi, + s.intr, + s.m, + s.c, + s.err, + s.fn, + ) + println(i, err) + ScopeIf(1) + ScopeIf(0) + ScopeFor() + ScopeSwitch(1) + ScopeSwitch(2) + ScopeSwitch(3) + println(globalStructPtr) + println(&globalStruct) + s.i8 = 0x12 + println(s.i8) + // Expected: + // all variables: s i err + // s.i8: '\x12' + + // Expected(skip): + // globalStruct.i8: '\x01' + println((*globalStructPtr).i8) + println("done") + println("") + println(&s, &globalStruct, globalStructPtr.i16, globalStructPtr) + globalStructPtr = nil +} + +var globalInt int = 301 +var globalStruct StructWithAllTypeFields +var globalStructPtr *StructWithAllTypeFields diff --git a/cl/_testdata/debug/out.ll b/compiler/cl/_testdata/debug/out.ll similarity index 100% rename from cl/_testdata/debug/out.ll rename to compiler/cl/_testdata/debug/out.ll diff --git a/cl/_testdata/fncall/in.go b/compiler/cl/_testdata/fncall/in.go similarity index 100% rename from cl/_testdata/fncall/in.go rename to compiler/cl/_testdata/fncall/in.go diff --git a/cl/_testdata/fncall/out.ll b/compiler/cl/_testdata/fncall/out.ll similarity index 87% rename from cl/_testdata/fncall/out.ll rename to compiler/cl/_testdata/fncall/out.ll index a432973a..1b0ec249 100644 --- a/cl/_testdata/fncall/out.ll +++ b/compiler/cl/_testdata/fncall/out.ll @@ -22,7 +22,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call i64 @main.max(i64 1, i64 2) ret i32 0 @@ -40,4 +40,4 @@ _llgo_2: ; preds = %_llgo_0 ret i64 %1 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() diff --git a/cl/internal/foo/foo.go b/compiler/cl/_testdata/foo/foo.go similarity index 100% rename from cl/internal/foo/foo.go rename to compiler/cl/_testdata/foo/foo.go diff --git a/compiler/cl/_testdata/foo/out.ll b/compiler/cl/_testdata/foo/out.ll new file mode 100644 index 00000000..a71b56e3 --- /dev/null +++ b/compiler/cl/_testdata/foo/out.ll @@ -0,0 +1,151 @@ +; ModuleID = 'github.com/goplus/llgo/compiler/cl/_testdata/foo' +source_filename = "github.com/goplus/llgo/compiler/cl/_testdata/foo" + +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo" = type { ptr, float } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } + +@"github.com/goplus/llgo/compiler/cl/_testdata/foo.init$guard" = global i1 false, align 1 +@_llgo_int = linkonce global ptr null, align 8 +@"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk" = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [1 x i8] c"V", align 1 +@1 = private unnamed_addr constant [48 x i8] c"github.com/goplus/llgo/compiler/cl/_testdata/foo", align 1 +@"github.com/goplus/llgo/compiler/cl/_testdata/foo.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88" = linkonce global ptr null, align 8 +@2 = private unnamed_addr constant [1 x i8] c"v", align 1 +@3 = private unnamed_addr constant [4 x i8] c"load", align 1 + +define %"github.com/goplus/llgo/runtime/internal/runtime.eface" @"github.com/goplus/llgo/compiler/cl/_testdata/foo.Bar"() { +_llgo_0: + %0 = alloca { i64 }, align 8 + call void @llvm.memset(ptr %0, i8 0, i64 8, i1 false) + %1 = getelementptr inbounds { i64 }, ptr %0, i32 0, i32 0 + store i64 1, ptr %1, align 4 + %2 = load { i64 }, ptr %0, align 4 + %3 = load ptr, ptr @_llgo_int, align 8 + %4 = load ptr, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8 + %5 = extractvalue { i64 } %2, 0 + %6 = inttoptr i64 %5 to ptr + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %7, ptr %6, 1 + ret %"github.com/goplus/llgo/runtime/internal/runtime.eface" %8 +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.eface" @"github.com/goplus/llgo/compiler/cl/_testdata/foo.F"() { +_llgo_0: + %0 = alloca { i64 }, align 8 + call void @llvm.memset(ptr %0, i8 0, i64 8, i1 false) + %1 = getelementptr inbounds { i64 }, ptr %0, i32 0, i32 0 + store i64 1, ptr %1, align 4 + %2 = load { i64 }, ptr %0, align 4 + %3 = load ptr, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8 + %4 = extractvalue { i64 } %2, 0 + %5 = inttoptr i64 %4 to ptr + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %3, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + ret %"github.com/goplus/llgo/runtime/internal/runtime.eface" %7 +} + +define ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo.Pb"(%"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo" %0) { +_llgo_0: + %1 = alloca %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", align 8 + call void @llvm.memset(ptr %1, i8 0, i64 16, i1 false) + store %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo" %0, ptr %1, align 8 + %2 = getelementptr inbounds %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", ptr %1, i32 0, i32 0 + %3 = load ptr, ptr %2, align 8 + ret ptr %3 +} + +define ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Foo).Pb"(ptr %0) { +_llgo_0: + %1 = load %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", ptr %0, align 8 + %2 = call ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo.Pb"(%"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo" %1) + ret ptr %2 +} + +define void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Game).Load"(ptr %0) { +_llgo_0: + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Game).initGame"(ptr %0) { +_llgo_0: + ret void +} + +define void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.init"() { +_llgo_0: + %0 = load i1, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.init$guard", align 1 + call void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 + +define void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.init$after"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_int, align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %2, ptr @_llgo_int, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %6 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 1 }, ptr %5, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %8 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %7, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %6, ptr %8, align 8 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %7, 0 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, i64 1, 1 + %11 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %10, i64 1, 2 + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 48 }, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %11) + store ptr %12, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %13 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %14 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 1 }, ptr %13, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %15 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %16 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %15, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %14, ptr %16, align 8 + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %15, 0 + %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %17, i64 1, 1 + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %18, i64 1, 2 + %20 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 48 }, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %19) + store ptr %20, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testdata/importpkg/in.go b/compiler/cl/_testdata/importpkg/in.go similarity index 66% rename from cl/_testdata/importpkg/in.go rename to compiler/cl/_testdata/importpkg/in.go index 96afbd51..60d4ad62 100644 --- a/cl/_testdata/importpkg/in.go +++ b/compiler/cl/_testdata/importpkg/in.go @@ -1,6 +1,6 @@ package main -import "github.com/goplus/llgo/cl/internal/stdio" +import "github.com/goplus/llgo/compiler/cl/_testdata/importpkg/stdio" var hello = [...]int8{'H', 'e', 'l', 'l', 'o', '\n', 0} diff --git a/cl/_testdata/importpkg/out.ll b/compiler/cl/_testdata/importpkg/out.ll similarity index 73% rename from cl/_testdata/importpkg/out.ll rename to compiler/cl/_testdata/importpkg/out.ll index 05dfeefb..8142bfc9 100644 --- a/cl/_testdata/importpkg/out.ll +++ b/compiler/cl/_testdata/importpkg/out.ll @@ -13,7 +13,7 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 store i1 true, ptr @"main.init$guard", align 1 - call void @"github.com/goplus/llgo/cl/internal/stdio.init"() + call void @"github.com/goplus/llgo/compiler/cl/_testdata/importpkg/stdio.init"() store i8 72, ptr @main.hello, align 1 store i8 101, ptr getelementptr inbounds (i8, ptr @main.hello, i64 1), align 1 store i8 108, ptr getelementptr inbounds (i8, ptr @main.hello, i64 2), align 1 @@ -31,17 +31,17 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - %2 = call i64 @"github.com/goplus/llgo/cl/internal/stdio.Max"(i64 2, i64 100) + %2 = call i64 @"github.com/goplus/llgo/compiler/cl/_testdata/importpkg/stdio.Max"(i64 2, i64 100) call void (ptr, ...) @printf(ptr @main.hello) ret i32 0 } -declare void @"github.com/goplus/llgo/cl/internal/stdio.init"() +declare void @"github.com/goplus/llgo/compiler/cl/_testdata/importpkg/stdio.init"() -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare i64 @"github.com/goplus/llgo/cl/internal/stdio.Max"(i64, i64) +declare i64 @"github.com/goplus/llgo/compiler/cl/_testdata/importpkg/stdio.Max"(i64, i64) declare void @printf(ptr, ...) diff --git a/cl/internal/stdio/printf.go b/compiler/cl/_testdata/importpkg/stdio/printf.go similarity index 100% rename from cl/internal/stdio/printf.go rename to compiler/cl/_testdata/importpkg/stdio/printf.go diff --git a/cl/_testdata/llgotag/in.go b/compiler/cl/_testdata/llgotag/in.go similarity index 100% rename from cl/_testdata/llgotag/in.go rename to compiler/cl/_testdata/llgotag/in.go diff --git a/compiler/cl/_testdata/llgotag/out.ll b/compiler/cl/_testdata/llgotag/out.ll new file mode 100644 index 00000000..ed27130e --- /dev/null +++ b/compiler/cl/_testdata/llgotag/out.ll @@ -0,0 +1,22 @@ +; ModuleID = 'github.com/goplus/llgo/compiler/cl/_testdata/llgotag' +source_filename = "github.com/goplus/llgo/compiler/cl/_testdata/llgotag" + +@"github.com/goplus/llgo/compiler/cl/_testdata/llgotag.init$guard" = global i1 false, align 1 + +define void @"github.com/goplus/llgo/compiler/cl/_testdata/llgotag.Foo"() { +_llgo_0: + ret void +} + +define void @"github.com/goplus/llgo/compiler/cl/_testdata/llgotag.init"() { +_llgo_0: + %0 = load i1, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/llgotag.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/llgotag.init$guard", align 1 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} diff --git a/cl/_testdata/method/in.go b/compiler/cl/_testdata/method/in.go similarity index 100% rename from cl/_testdata/method/in.go rename to compiler/cl/_testdata/method/in.go diff --git a/cl/_testdata/method/out.ll b/compiler/cl/_testdata/method/out.ll similarity index 93% rename from cl/_testdata/method/out.ll rename to compiler/cl/_testdata/method/out.ll index 40cd03aa..a789cd42 100644 --- a/cl/_testdata/method/out.ll +++ b/compiler/cl/_testdata/method/out.ll @@ -46,13 +46,13 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call i64 @main.T.Add(i64 1, i64 2) call void (ptr, ...) @printf(ptr @main.format, i64 %2) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare void @printf(ptr, ...) diff --git a/cl/_testdata/print/in.go b/compiler/cl/_testdata/print/in.go similarity index 100% rename from cl/_testdata/print/in.go rename to compiler/cl/_testdata/print/in.go diff --git a/cl/_testdata/print/out.ll b/compiler/cl/_testdata/print/out.ll similarity index 60% rename from cl/_testdata/print/out.ll rename to compiler/cl/_testdata/print/out.ll index 85340317..d6ed4ecd 100644 --- a/cl/_testdata/print/out.ll +++ b/compiler/cl/_testdata/print/out.ll @@ -1,11 +1,11 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } %main.stringStruct = type { ptr, i64 } %main.slice = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } @"main.init$guard" = global i1 false, align 1 @main.minhexdigits = global i64 0, align 8 @@ -44,11 +44,11 @@ source_filename = "main" @13 = private unnamed_addr constant [1 x i8] c" ", align 1 @14 = private unnamed_addr constant [1 x i8] c"\0A", align 1 -define %"github.com/goplus/llgo/internal/runtime.Slice" @main.bytes(%"github.com/goplus/llgo/internal/runtime.String" %0) { +define %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @main.bytes(%"github.com/goplus/llgo/runtime/internal/runtime.String" %0) { _llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" %0, ptr %1, align 8 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" %0, ptr %1, align 8 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) %3 = call ptr @main.stringStructOf(ptr %1) %4 = getelementptr inbounds %main.stringStruct, ptr %3, i32 0, i32 0 %5 = load ptr, ptr %4, align 8 @@ -62,13 +62,13 @@ _llgo_0: %11 = load i64, ptr %10, align 4 %12 = getelementptr inbounds %main.slice, ptr %2, i32 0, i32 2 store i64 %11, ptr %12, align 4 - %13 = load %"github.com/goplus/llgo/internal/runtime.Slice", ptr %2, align 8 - ret %"github.com/goplus/llgo/internal/runtime.Slice" %13 + %13 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %2, align 8 + ret %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %13 } -define void @main.gwrite(%"github.com/goplus/llgo/internal/runtime.Slice" %0) { +define void @main.gwrite(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0) { _llgo_0: - %1 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 1 + %1 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 1 %2 = icmp eq i64 %1, 0 br i1 %2, label %_llgo_1, label %_llgo_2 @@ -76,7 +76,7 @@ _llgo_1: ; preds = %_llgo_0 ret void _llgo_2: ; preds = %_llgo_0 - %3 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 1 + %3 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 1 br label %_llgo_3 _llgo_3: ; preds = %_llgo_4, %_llgo_2 @@ -86,12 +86,12 @@ _llgo_3: ; preds = %_llgo_4, %_llgo_2 br i1 %6, label %_llgo_4, label %_llgo_5 _llgo_4: ; preds = %_llgo_3 - %7 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 0 - %8 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 1 + %7 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 0 + %8 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 1 %9 = icmp slt i64 %5, 0 %10 = icmp sge i64 %5, %8 %11 = or i1 %10, %9 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %11) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %11) %12 = getelementptr inbounds i8, ptr %7, i64 %5 %13 = load i8, ptr %12, align 1 %14 = call i32 (ptr, ...) @printf(ptr @0, i8 %13) @@ -120,9 +120,9 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - call void @main.printstring(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }) + call void @main.printstring(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }) call void @main.printnl() call void @main.printuint(i64 1024) call void @main.printnl() @@ -137,159 +137,159 @@ _llgo_0: call void @main.prinfsub(double 1.001000e+02) call void @main.printnl() %2 = load ptr, ptr @_llgo_float32, align 8 - %3 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %2, 0 - %4 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %3, ptr inttoptr (i32 1315859240 to ptr), 1 - call void @main.printany(%"github.com/goplus/llgo/internal/runtime.eface" %4) + %3 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %2, 0 + %4 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %3, ptr inttoptr (i32 1315859240 to ptr), 1 + call void @main.printany(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %4) call void @main.printnl() %5 = load ptr, ptr @_llgo_float64, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %5, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr inttoptr (i64 4746175415993761792 to ptr), 1 - call void @main.printany(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %5, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr inttoptr (i64 4746175415993761792 to ptr), 1 + call void @main.printany(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) call void @main.printnl() br i1 true, label %_llgo_3, label %_llgo_2 _llgo_1: ; preds = %_llgo_3 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 32) - %9 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %8, i64 0 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) + %9 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %8, i64 0 %10 = load ptr, ptr @_llgo_string, align 8 - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 10 }, ptr %11, align 8 - %12 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %10, 0 - %13 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %12, ptr %11, 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %13, ptr %9, align 8 - %14 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %8, i64 1 + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 10 }, ptr %11, align 8 + %12 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %10, 0 + %13 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %12, ptr %11, 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %13, ptr %9, align 8 + %14 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %8, i64 1 %15 = load ptr, ptr @_llgo_bool, align 8 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %15, 0 - %17 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %16, ptr inttoptr (i64 -1 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %17, ptr %14, align 8 - %18 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %8, 0 - %19 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %18, i64 2, 1 - %20 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %19, i64 2, 2 - call void @main.println(%"github.com/goplus/llgo/internal/runtime.Slice" %20) + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %15, 0 + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %16, ptr inttoptr (i64 -1 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %17, ptr %14, align 8 + %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %8, 0 + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %18, i64 2, 1 + %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %19, i64 2, 2 + call void @main.println(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %20) br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_3, %_llgo_0 - %21 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 48) - %22 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %21, i64 0 + %21 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 48) + %22 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %21, i64 0 %23 = load ptr, ptr @_llgo_string, align 8 - %24 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 8 }, ptr %24, align 8 - %25 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %23, 0 - %26 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %25, ptr %24, 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %26, ptr %22, align 8 - %27 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %21, i64 1 + %24 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 8 }, ptr %24, align 8 + %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %23, 0 + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %25, ptr %24, 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %26, ptr %22, align 8 + %27 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %21, i64 1 %28 = load ptr, ptr @_llgo_bool, align 8 - %29 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %28, 0 - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %29, ptr inttoptr (i64 -1 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %30, ptr %27, align 8 - %31 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %21, i64 2 + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %28, 0 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %29, ptr inttoptr (i64 -1 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %30, ptr %27, align 8 + %31 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %21, i64 2 %32 = load ptr, ptr @_llgo_bool, align 8 - %33 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %32, 0 - %34 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %33, ptr inttoptr (i64 -1 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %34, ptr %31, align 8 - %35 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %21, 0 - %36 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %35, i64 3, 1 - %37 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %36, i64 3, 2 - call void @main.println(%"github.com/goplus/llgo/internal/runtime.Slice" %37) - %38 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 256) - %39 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i64 0 + %33 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %32, 0 + %34 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %33, ptr inttoptr (i64 -1 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %34, ptr %31, align 8 + %35 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %21, 0 + %36 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %35, i64 3, 1 + %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %36, i64 3, 2 + call void @main.println(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %37) + %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 256) + %39 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %38, i64 0 %40 = load ptr, ptr @_llgo_bool, align 8 - %41 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %40, 0 - %42 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %41, ptr inttoptr (i64 -1 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %42, ptr %39, align 8 - %43 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i64 1 + %41 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %40, 0 + %42 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %41, ptr inttoptr (i64 -1 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %42, ptr %39, align 8 + %43 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %38, i64 1 %44 = load ptr, ptr @_llgo_bool, align 8 - %45 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %44, 0 - %46 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %45, ptr null, 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %46, ptr %43, align 8 - %47 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i64 2 + %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %44, 0 + %46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %45, ptr null, 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %46, ptr %43, align 8 + %47 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %38, i64 2 %48 = load ptr, ptr @_llgo_int32, align 8 - %49 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %48, 0 - %50 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %49, ptr inttoptr (i64 97 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %50, ptr %47, align 8 - %51 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i64 3 + %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %48, 0 + %50 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %49, ptr inttoptr (i64 97 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %50, ptr %47, align 8 + %51 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %38, i64 3 %52 = load ptr, ptr @_llgo_int32, align 8 - %53 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %52, 0 - %54 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %53, ptr inttoptr (i64 65 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %54, ptr %51, align 8 - %55 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i64 4 + %53 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %52, 0 + %54 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %53, ptr inttoptr (i64 65 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %54, ptr %51, align 8 + %55 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %38, i64 4 %56 = load ptr, ptr @_llgo_int32, align 8 - %57 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %56, 0 - %58 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %57, ptr inttoptr (i64 20013 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %58, ptr %55, align 8 - %59 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i64 5 + %57 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %56, 0 + %58 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %57, ptr inttoptr (i64 20013 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %58, ptr %55, align 8 + %59 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %38, i64 5 %60 = load ptr, ptr @_llgo_int8, align 8 - %61 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %60, 0 - %62 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %61, ptr inttoptr (i64 1 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %62, ptr %59, align 8 - %63 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i64 6 + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %60, 0 + %62 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %61, ptr inttoptr (i64 1 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %62, ptr %59, align 8 + %63 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %38, i64 6 %64 = load ptr, ptr @_llgo_int16, align 8 - %65 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %64, 0 - %66 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %65, ptr inttoptr (i64 2 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %66, ptr %63, align 8 - %67 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i64 7 + %65 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %64, 0 + %66 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %65, ptr inttoptr (i64 2 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %66, ptr %63, align 8 + %67 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %38, i64 7 %68 = load ptr, ptr @_llgo_int32, align 8 - %69 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %68, 0 - %70 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %69, ptr inttoptr (i64 3 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %70, ptr %67, align 8 - %71 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i64 8 + %69 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %68, 0 + %70 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %69, ptr inttoptr (i64 3 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %70, ptr %67, align 8 + %71 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %38, i64 8 %72 = load ptr, ptr @_llgo_int64, align 8 - %73 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %72, 0 - %74 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %73, ptr inttoptr (i64 4 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %74, ptr %71, align 8 - %75 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i64 9 + %73 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %72, 0 + %74 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %73, ptr inttoptr (i64 4 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %74, ptr %71, align 8 + %75 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %38, i64 9 %76 = load ptr, ptr @_llgo_int, align 8 - %77 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %76, 0 - %78 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %77, ptr inttoptr (i64 5 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %78, ptr %75, align 8 - %79 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i64 10 + %77 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %76, 0 + %78 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %77, ptr inttoptr (i64 5 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %78, ptr %75, align 8 + %79 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %38, i64 10 %80 = load ptr, ptr @_llgo_byte, align 8 - %81 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %80, 0 - %82 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %81, ptr inttoptr (i64 1 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %82, ptr %79, align 8 - %83 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i64 11 + %81 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %80, 0 + %82 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %81, ptr inttoptr (i64 1 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %82, ptr %79, align 8 + %83 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %38, i64 11 %84 = load ptr, ptr @_llgo_uint16, align 8 - %85 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %84, 0 - %86 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %85, ptr inttoptr (i64 2 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %86, ptr %83, align 8 - %87 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i64 12 + %85 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %84, 0 + %86 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %85, ptr inttoptr (i64 2 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %86, ptr %83, align 8 + %87 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %38, i64 12 %88 = load ptr, ptr @_llgo_uint32, align 8 - %89 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %88, 0 - %90 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %89, ptr inttoptr (i64 3 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %90, ptr %87, align 8 - %91 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i64 13 + %89 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %88, 0 + %90 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %89, ptr inttoptr (i64 3 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %90, ptr %87, align 8 + %91 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %38, i64 13 %92 = load ptr, ptr @_llgo_uint64, align 8 - %93 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %92, 0 - %94 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %93, ptr inttoptr (i64 4 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %94, ptr %91, align 8 - %95 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i64 14 + %93 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %92, 0 + %94 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %93, ptr inttoptr (i64 4 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %94, ptr %91, align 8 + %95 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %38, i64 14 %96 = load ptr, ptr @_llgo_uintptr, align 8 - %97 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %96, 0 - %98 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %97, ptr inttoptr (i64 5 to ptr), 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %98, ptr %95, align 8 - %99 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %38, i64 15 + %97 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %96, 0 + %98 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %97, ptr inttoptr (i64 5 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %98, ptr %95, align 8 + %99 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %38, i64 15 %100 = load ptr, ptr @_llgo_string, align 8 - %101 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, ptr %101, align 8 - %102 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %100, 0 - %103 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %102, ptr %101, 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %103, ptr %99, align 8 - %104 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %38, 0 - %105 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %104, i64 16, 1 - %106 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %105, i64 16, 2 - call void @main.println(%"github.com/goplus/llgo/internal/runtime.Slice" %106) - %107 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - %108 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %107, i64 0 + %101 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, ptr %101, align 8 + %102 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %100, 0 + %103 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %102, ptr %101, 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %103, ptr %99, align 8 + %104 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %38, 0 + %105 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %104, i64 16, 1 + %106 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %105, i64 16, 2 + call void @main.println(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %106) + %107 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + %108 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %107, i64 0 %109 = load ptr, ptr @_llgo_complex128, align 8 - %110 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) + %110 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) store { double, double } { double 1.000000e+00, double 2.000000e+00 }, ptr %110, align 8 - %111 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %109, 0 - %112 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %111, ptr %110, 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %112, ptr %108, align 8 - %113 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %107, 0 - %114 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %113, i64 1, 1 - %115 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %114, i64 1, 2 - call void @main.println(%"github.com/goplus/llgo/internal/runtime.Slice" %115) + %111 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %109, 0 + %112 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %111, ptr %110, 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %112, ptr %108, align 8 + %113 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %107, 0 + %114 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %113, i64 1, 1 + %115 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %114, i64 1, 2 + call void @main.println(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %115) ret i32 0 _llgo_3: ; preds = %_llgo_0 @@ -310,9 +310,9 @@ _llgo_0: ret void } -define void @main.printany(%"github.com/goplus/llgo/internal/runtime.eface" %0) { +define void @main.printany(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %0) { _llgo_0: - %1 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %1 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %2 = load ptr, ptr @_llgo_bool, align 8 %3 = icmp eq ptr %1, %2 br i1 %3, label %_llgo_35, label %_llgo_36 @@ -325,7 +325,7 @@ _llgo_2: ; preds = %_llgo_37 br label %_llgo_1 _llgo_3: ; preds = %_llgo_37 - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %5 = load ptr, ptr @_llgo_int, align 8 %6 = icmp eq ptr %4, %5 br i1 %6, label %_llgo_38, label %_llgo_39 @@ -335,7 +335,7 @@ _llgo_4: ; preds = %_llgo_40 br label %_llgo_1 _llgo_5: ; preds = %_llgo_40 - %7 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %7 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %8 = load ptr, ptr @_llgo_int8, align 8 %9 = icmp eq ptr %7, %8 br i1 %9, label %_llgo_41, label %_llgo_42 @@ -346,7 +346,7 @@ _llgo_6: ; preds = %_llgo_43 br label %_llgo_1 _llgo_7: ; preds = %_llgo_43 - %11 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %11 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %12 = load ptr, ptr @_llgo_int16, align 8 %13 = icmp eq ptr %11, %12 br i1 %13, label %_llgo_44, label %_llgo_45 @@ -357,7 +357,7 @@ _llgo_8: ; preds = %_llgo_46 br label %_llgo_1 _llgo_9: ; preds = %_llgo_46 - %15 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %15 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %16 = load ptr, ptr @_llgo_int32, align 8 %17 = icmp eq ptr %15, %16 br i1 %17, label %_llgo_47, label %_llgo_48 @@ -368,7 +368,7 @@ _llgo_10: ; preds = %_llgo_49 br label %_llgo_1 _llgo_11: ; preds = %_llgo_49 - %19 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %19 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %20 = load ptr, ptr @_llgo_int64, align 8 %21 = icmp eq ptr %19, %20 br i1 %21, label %_llgo_50, label %_llgo_51 @@ -378,7 +378,7 @@ _llgo_12: ; preds = %_llgo_52 br label %_llgo_1 _llgo_13: ; preds = %_llgo_52 - %22 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %22 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %23 = load ptr, ptr @_llgo_uint, align 8 %24 = icmp eq ptr %22, %23 br i1 %24, label %_llgo_53, label %_llgo_54 @@ -388,7 +388,7 @@ _llgo_14: ; preds = %_llgo_55 br label %_llgo_1 _llgo_15: ; preds = %_llgo_55 - %25 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %25 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %26 = load ptr, ptr @_llgo_byte, align 8 %27 = icmp eq ptr %25, %26 br i1 %27, label %_llgo_56, label %_llgo_57 @@ -399,7 +399,7 @@ _llgo_16: ; preds = %_llgo_58 br label %_llgo_1 _llgo_17: ; preds = %_llgo_58 - %29 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %29 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %30 = load ptr, ptr @_llgo_uint16, align 8 %31 = icmp eq ptr %29, %30 br i1 %31, label %_llgo_59, label %_llgo_60 @@ -410,7 +410,7 @@ _llgo_18: ; preds = %_llgo_61 br label %_llgo_1 _llgo_19: ; preds = %_llgo_61 - %33 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %33 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %34 = load ptr, ptr @_llgo_uint32, align 8 %35 = icmp eq ptr %33, %34 br i1 %35, label %_llgo_62, label %_llgo_63 @@ -421,7 +421,7 @@ _llgo_20: ; preds = %_llgo_64 br label %_llgo_1 _llgo_21: ; preds = %_llgo_64 - %37 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %37 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %38 = load ptr, ptr @_llgo_uint64, align 8 %39 = icmp eq ptr %37, %38 br i1 %39, label %_llgo_65, label %_llgo_66 @@ -431,7 +431,7 @@ _llgo_22: ; preds = %_llgo_67 br label %_llgo_1 _llgo_23: ; preds = %_llgo_67 - %40 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %40 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %41 = load ptr, ptr @_llgo_uintptr, align 8 %42 = icmp eq ptr %40, %41 br i1 %42, label %_llgo_68, label %_llgo_69 @@ -441,7 +441,7 @@ _llgo_24: ; preds = %_llgo_70 br label %_llgo_1 _llgo_25: ; preds = %_llgo_70 - %43 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %43 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %44 = load ptr, ptr @_llgo_float32, align 8 %45 = icmp eq ptr %43, %44 br i1 %45, label %_llgo_71, label %_llgo_72 @@ -452,7 +452,7 @@ _llgo_26: ; preds = %_llgo_73 br label %_llgo_1 _llgo_27: ; preds = %_llgo_73 - %47 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %47 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %48 = load ptr, ptr @_llgo_float64, align 8 %49 = icmp eq ptr %47, %48 br i1 %49, label %_llgo_74, label %_llgo_75 @@ -462,49 +462,49 @@ _llgo_28: ; preds = %_llgo_76 br label %_llgo_1 _llgo_29: ; preds = %_llgo_76 - %50 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %50 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %51 = load ptr, ptr @_llgo_complex64, align 8 %52 = icmp eq ptr %50, %51 br i1 %52, label %_llgo_77, label %_llgo_78 _llgo_30: ; preds = %_llgo_79 - call void @main.printstring(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 1 }) + call void @main.printstring(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 1 }) %53 = extractvalue { float, float } %178, 0 %54 = fpext float %53 to double call void @main.printfloat(double %54) %55 = extractvalue { float, float } %178, 1 %56 = fpext float %55 to double call void @main.printfloat(double %56) - call void @main.printstring(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 2 }) + call void @main.printstring(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }) br label %_llgo_1 _llgo_31: ; preds = %_llgo_79 - %57 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %57 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %58 = load ptr, ptr @_llgo_complex128, align 8 %59 = icmp eq ptr %57, %58 br i1 %59, label %_llgo_80, label %_llgo_81 _llgo_32: ; preds = %_llgo_82 - call void @main.printstring(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 1 }) + call void @main.printstring(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 1 }) %60 = extractvalue { double, double } %185, 0 call void @main.printfloat(double %60) %61 = extractvalue { double, double } %185, 1 call void @main.printfloat(double %61) - call void @main.printstring(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 2 }) + call void @main.printstring(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }) br label %_llgo_1 _llgo_33: ; preds = %_llgo_82 - %62 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %62 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %63 = load ptr, ptr @_llgo_string, align 8 %64 = icmp eq ptr %62, %63 br i1 %64, label %_llgo_83, label %_llgo_84 _llgo_34: ; preds = %_llgo_85 - call void @main.printstring(%"github.com/goplus/llgo/internal/runtime.String" %192) + call void @main.printstring(%"github.com/goplus/llgo/runtime/internal/runtime.String" %192) br label %_llgo_1 _llgo_35: ; preds = %_llgo_0 - %65 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %65 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %66 = ptrtoint ptr %65 to i64 %67 = trunc i64 %66 to i1 %68 = insertvalue { i1, i1 } undef, i1 %67, 0 @@ -521,7 +521,7 @@ _llgo_37: ; preds = %_llgo_36, %_llgo_35 br i1 %72, label %_llgo_2, label %_llgo_3 _llgo_38: ; preds = %_llgo_3 - %73 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %73 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %74 = ptrtoint ptr %73 to i64 %75 = insertvalue { i64, i1 } undef, i64 %74, 0 %76 = insertvalue { i64, i1 } %75, i1 true, 1 @@ -537,7 +537,7 @@ _llgo_40: ; preds = %_llgo_39, %_llgo_38 br i1 %79, label %_llgo_4, label %_llgo_5 _llgo_41: ; preds = %_llgo_5 - %80 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %80 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %81 = ptrtoint ptr %80 to i64 %82 = trunc i64 %81 to i8 %83 = insertvalue { i8, i1 } undef, i8 %82, 0 @@ -554,7 +554,7 @@ _llgo_43: ; preds = %_llgo_42, %_llgo_41 br i1 %87, label %_llgo_6, label %_llgo_7 _llgo_44: ; preds = %_llgo_7 - %88 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %88 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %89 = ptrtoint ptr %88 to i64 %90 = trunc i64 %89 to i16 %91 = insertvalue { i16, i1 } undef, i16 %90, 0 @@ -571,7 +571,7 @@ _llgo_46: ; preds = %_llgo_45, %_llgo_44 br i1 %95, label %_llgo_8, label %_llgo_9 _llgo_47: ; preds = %_llgo_9 - %96 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %96 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %97 = ptrtoint ptr %96 to i64 %98 = trunc i64 %97 to i32 %99 = insertvalue { i32, i1 } undef, i32 %98, 0 @@ -588,7 +588,7 @@ _llgo_49: ; preds = %_llgo_48, %_llgo_47 br i1 %103, label %_llgo_10, label %_llgo_11 _llgo_50: ; preds = %_llgo_11 - %104 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %104 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %105 = ptrtoint ptr %104 to i64 %106 = insertvalue { i64, i1 } undef, i64 %105, 0 %107 = insertvalue { i64, i1 } %106, i1 true, 1 @@ -604,7 +604,7 @@ _llgo_52: ; preds = %_llgo_51, %_llgo_50 br i1 %110, label %_llgo_12, label %_llgo_13 _llgo_53: ; preds = %_llgo_13 - %111 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %111 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %112 = ptrtoint ptr %111 to i64 %113 = insertvalue { i64, i1 } undef, i64 %112, 0 %114 = insertvalue { i64, i1 } %113, i1 true, 1 @@ -620,7 +620,7 @@ _llgo_55: ; preds = %_llgo_54, %_llgo_53 br i1 %117, label %_llgo_14, label %_llgo_15 _llgo_56: ; preds = %_llgo_15 - %118 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %118 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %119 = ptrtoint ptr %118 to i64 %120 = trunc i64 %119 to i8 %121 = insertvalue { i8, i1 } undef, i8 %120, 0 @@ -637,7 +637,7 @@ _llgo_58: ; preds = %_llgo_57, %_llgo_56 br i1 %125, label %_llgo_16, label %_llgo_17 _llgo_59: ; preds = %_llgo_17 - %126 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %126 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %127 = ptrtoint ptr %126 to i64 %128 = trunc i64 %127 to i16 %129 = insertvalue { i16, i1 } undef, i16 %128, 0 @@ -654,7 +654,7 @@ _llgo_61: ; preds = %_llgo_60, %_llgo_59 br i1 %133, label %_llgo_18, label %_llgo_19 _llgo_62: ; preds = %_llgo_19 - %134 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %134 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %135 = ptrtoint ptr %134 to i64 %136 = trunc i64 %135 to i32 %137 = insertvalue { i32, i1 } undef, i32 %136, 0 @@ -671,7 +671,7 @@ _llgo_64: ; preds = %_llgo_63, %_llgo_62 br i1 %141, label %_llgo_20, label %_llgo_21 _llgo_65: ; preds = %_llgo_21 - %142 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %142 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %143 = ptrtoint ptr %142 to i64 %144 = insertvalue { i64, i1 } undef, i64 %143, 0 %145 = insertvalue { i64, i1 } %144, i1 true, 1 @@ -687,7 +687,7 @@ _llgo_67: ; preds = %_llgo_66, %_llgo_65 br i1 %148, label %_llgo_22, label %_llgo_23 _llgo_68: ; preds = %_llgo_23 - %149 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %149 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %150 = ptrtoint ptr %149 to i64 %151 = insertvalue { i64, i1 } undef, i64 %150, 0 %152 = insertvalue { i64, i1 } %151, i1 true, 1 @@ -703,7 +703,7 @@ _llgo_70: ; preds = %_llgo_69, %_llgo_68 br i1 %155, label %_llgo_24, label %_llgo_25 _llgo_71: ; preds = %_llgo_25 - %156 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %156 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %157 = ptrtoint ptr %156 to i64 %158 = trunc i64 %157 to i32 %159 = bitcast i32 %158 to float @@ -721,7 +721,7 @@ _llgo_73: ; preds = %_llgo_72, %_llgo_71 br i1 %164, label %_llgo_26, label %_llgo_27 _llgo_74: ; preds = %_llgo_27 - %165 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %165 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %166 = ptrtoint ptr %165 to i64 %167 = bitcast i64 %166 to double %168 = insertvalue { double, i1 } undef, double %167, 0 @@ -738,7 +738,7 @@ _llgo_76: ; preds = %_llgo_75, %_llgo_74 br i1 %172, label %_llgo_28, label %_llgo_29 _llgo_77: ; preds = %_llgo_29 - %173 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %173 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %174 = load { float, float }, ptr %173, align 4 %175 = insertvalue { { float, float }, i1 } undef, { float, float } %174, 0 %176 = insertvalue { { float, float }, i1 } %175, i1 true, 1 @@ -754,7 +754,7 @@ _llgo_79: ; preds = %_llgo_78, %_llgo_77 br i1 %179, label %_llgo_30, label %_llgo_31 _llgo_80: ; preds = %_llgo_31 - %180 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %180 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %181 = load { double, double }, ptr %180, align 8 %182 = insertvalue { { double, double }, i1 } undef, { double, double } %181, 0 %183 = insertvalue { { double, double }, i1 } %182, i1 true, 1 @@ -770,19 +770,19 @@ _llgo_82: ; preds = %_llgo_81, %_llgo_80 br i1 %186, label %_llgo_32, label %_llgo_33 _llgo_83: ; preds = %_llgo_33 - %187 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 - %188 = load %"github.com/goplus/llgo/internal/runtime.String", ptr %187, align 8 - %189 = insertvalue { %"github.com/goplus/llgo/internal/runtime.String", i1 } undef, %"github.com/goplus/llgo/internal/runtime.String" %188, 0 - %190 = insertvalue { %"github.com/goplus/llgo/internal/runtime.String", i1 } %189, i1 true, 1 + %187 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 + %188 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %187, align 8 + %189 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.String" %188, 0 + %190 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } %189, i1 true, 1 br label %_llgo_85 _llgo_84: ; preds = %_llgo_33 br label %_llgo_85 _llgo_85: ; preds = %_llgo_84, %_llgo_83 - %191 = phi { %"github.com/goplus/llgo/internal/runtime.String", i1 } [ %190, %_llgo_83 ], [ zeroinitializer, %_llgo_84 ] - %192 = extractvalue { %"github.com/goplus/llgo/internal/runtime.String", i1 } %191, 0 - %193 = extractvalue { %"github.com/goplus/llgo/internal/runtime.String", i1 } %191, 1 + %191 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } [ %190, %_llgo_83 ], [ zeroinitializer, %_llgo_84 ] + %192 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } %191, 0 + %193 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } %191, 1 br i1 %193, label %_llgo_34, label %_llgo_1 } @@ -791,14 +791,14 @@ _llgo_0: br i1 %0, label %_llgo_1, label %_llgo_3 _llgo_1: ; preds = %_llgo_0 - call void @main.printstring(%"github.com/goplus/llgo/internal/runtime.String" { ptr @6, i64 4 }) + call void @main.printstring(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 4 }) br label %_llgo_2 _llgo_2: ; preds = %_llgo_3, %_llgo_1 ret void _llgo_3: ; preds = %_llgo_0 - call void @main.printstring(%"github.com/goplus/llgo/internal/runtime.String" { ptr @7, i64 5 }) + call void @main.printstring(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 5 }) br label %_llgo_2 } @@ -808,11 +808,11 @@ _llgo_0: br i1 %1, label %_llgo_1, label %_llgo_3 _llgo_1: ; preds = %_llgo_0 - call void @main.printstring(%"github.com/goplus/llgo/internal/runtime.String" { ptr @8, i64 3 }) + call void @main.printstring(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 3 }) ret void _llgo_2: ; preds = %_llgo_7 - call void @main.printstring(%"github.com/goplus/llgo/internal/runtime.String" { ptr @9, i64 4 }) + call void @main.printstring(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }) ret void _llgo_3: ; preds = %_llgo_0 @@ -821,7 +821,7 @@ _llgo_3: ; preds = %_llgo_0 br i1 %3, label %_llgo_6, label %_llgo_7 _llgo_4: ; preds = %_llgo_10 - call void @main.printstring(%"github.com/goplus/llgo/internal/runtime.String" { ptr @10, i64 4 }) + call void @main.printstring(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 4 }) ret void _llgo_5: ; preds = %_llgo_7 @@ -838,7 +838,7 @@ _llgo_7: ; preds = %_llgo_6, %_llgo_3 br i1 %7, label %_llgo_2, label %_llgo_5 _llgo_8: ; preds = %_llgo_10 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 14) + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 14) %9 = getelementptr inbounds i8, ptr %8, i64 0 store i8 43, ptr %9, align 1 %10 = fcmp oeq double %0, 0.000000e+00 @@ -857,10 +857,10 @@ _llgo_11: ; preds = %_llgo_8 %14 = fcmp olt double %13, 0.000000e+00 br i1 %14, label %_llgo_14, label %_llgo_12 -_llgo_12: ; preds = %_llgo_24, %_llgo_22, %_llgo_14, %_llgo_11 - %15 = phi double [ %0, %_llgo_11 ], [ %33, %_llgo_22 ], [ %0, %_llgo_14 ], [ %39, %_llgo_24 ] - %16 = phi i64 [ 0, %_llgo_11 ], [ %29, %_llgo_22 ], [ 0, %_llgo_14 ], [ %38, %_llgo_24 ] - br label %_llgo_27 +_llgo_12: ; preds = %_llgo_24, %_llgo_23, %_llgo_14, %_llgo_11 + %15 = phi double [ %0, %_llgo_11 ], [ %36, %_llgo_23 ], [ %0, %_llgo_14 ], [ %39, %_llgo_24 ] + %16 = phi i64 [ 0, %_llgo_11 ], [ %29, %_llgo_23 ], [ 0, %_llgo_14 ], [ %38, %_llgo_24 ] + br label %_llgo_25 _llgo_13: ; preds = %_llgo_8 %17 = fcmp olt double %0, 0.000000e+00 @@ -894,7 +894,7 @@ _llgo_18: ; preds = %_llgo_20 br label %_llgo_20 _llgo_19: ; preds = %_llgo_20 - br label %_llgo_23 + br label %_llgo_21 _llgo_20: ; preds = %_llgo_18, %_llgo_17 %28 = phi double [ %23, %_llgo_17 ], [ %27, %_llgo_18 ] @@ -902,72 +902,72 @@ _llgo_20: ; preds = %_llgo_18, %_llgo_17 %30 = fcmp olt double %28, 1.000000e+00 br i1 %30, label %_llgo_18, label %_llgo_19 -_llgo_21: ; preds = %_llgo_23 - %31 = fdiv double %35, 1.000000e+01 - %32 = add i64 %36, 1 - br label %_llgo_23 +_llgo_21: ; preds = %_llgo_22, %_llgo_19 + %31 = phi double [ 5.000000e+00, %_llgo_19 ], [ %34, %_llgo_22 ] + %32 = phi i64 [ 0, %_llgo_19 ], [ %35, %_llgo_22 ] + %33 = icmp slt i64 %32, 7 + br i1 %33, label %_llgo_22, label %_llgo_23 -_llgo_22: ; preds = %_llgo_23 - %33 = fadd double %28, %35 - %34 = fcmp oge double %33, 1.000000e+01 - br i1 %34, label %_llgo_24, label %_llgo_12 +_llgo_22: ; preds = %_llgo_21 + %34 = fdiv double %31, 1.000000e+01 + %35 = add i64 %32, 1 + br label %_llgo_21 -_llgo_23: ; preds = %_llgo_21, %_llgo_19 - %35 = phi double [ 5.000000e+00, %_llgo_19 ], [ %31, %_llgo_21 ] - %36 = phi i64 [ 0, %_llgo_19 ], [ %32, %_llgo_21 ] - %37 = icmp slt i64 %36, 7 - br i1 %37, label %_llgo_21, label %_llgo_22 +_llgo_23: ; preds = %_llgo_21 + %36 = fadd double %28, %31 + %37 = fcmp oge double %36, 1.000000e+01 + br i1 %37, label %_llgo_24, label %_llgo_12 -_llgo_24: ; preds = %_llgo_22 +_llgo_24: ; preds = %_llgo_23 %38 = add i64 %29, 1 - %39 = fdiv double %33, 1.000000e+01 + %39 = fdiv double %36, 1.000000e+01 br label %_llgo_12 -_llgo_25: ; preds = %_llgo_27 - %40 = fptosi double %59 to i64 - %41 = add i64 %60, 2 - %42 = add i64 %40, 48 - %43 = trunc i64 %42 to i8 - %44 = icmp slt i64 %41, 0 - %45 = icmp sge i64 %41, 14 - %46 = or i1 %45, %44 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %46) - %47 = getelementptr inbounds i8, ptr %8, i64 %41 - store i8 %43, ptr %47, align 1 - %48 = sitofp i64 %40 to double - %49 = fsub double %59, %48 - %50 = fmul double %49, 1.000000e+01 - %51 = add i64 %60, 1 - br label %_llgo_27 +_llgo_25: ; preds = %_llgo_26, %_llgo_12 + %40 = phi double [ %15, %_llgo_12 ], [ %53, %_llgo_26 ] + %41 = phi i64 [ 0, %_llgo_12 ], [ %54, %_llgo_26 ] + %42 = icmp slt i64 %41, 7 + br i1 %42, label %_llgo_26, label %_llgo_27 -_llgo_26: ; preds = %_llgo_27 - %52 = getelementptr inbounds i8, ptr %8, i64 2 - %53 = load i8, ptr %52, align 1 - %54 = getelementptr inbounds i8, ptr %8, i64 1 - store i8 %53, ptr %54, align 1 +_llgo_26: ; preds = %_llgo_25 + %43 = fptosi double %40 to i64 + %44 = add i64 %41, 2 + %45 = add i64 %43, 48 + %46 = trunc i64 %45 to i8 + %47 = icmp slt i64 %44, 0 + %48 = icmp sge i64 %44, 14 + %49 = or i1 %48, %47 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %49) + %50 = getelementptr inbounds i8, ptr %8, i64 %44 + store i8 %46, ptr %50, align 1 + %51 = sitofp i64 %43 to double + %52 = fsub double %40, %51 + %53 = fmul double %52, 1.000000e+01 + %54 = add i64 %41, 1 + br label %_llgo_25 + +_llgo_27: ; preds = %_llgo_25 %55 = getelementptr inbounds i8, ptr %8, i64 2 - store i8 46, ptr %55, align 1 - %56 = getelementptr inbounds i8, ptr %8, i64 9 - store i8 101, ptr %56, align 1 - %57 = getelementptr inbounds i8, ptr %8, i64 10 - store i8 43, ptr %57, align 1 - %58 = icmp slt i64 %16, 0 - br i1 %58, label %_llgo_28, label %_llgo_29 + %56 = load i8, ptr %55, align 1 + %57 = getelementptr inbounds i8, ptr %8, i64 1 + store i8 %56, ptr %57, align 1 + %58 = getelementptr inbounds i8, ptr %8, i64 2 + store i8 46, ptr %58, align 1 + %59 = getelementptr inbounds i8, ptr %8, i64 9 + store i8 101, ptr %59, align 1 + %60 = getelementptr inbounds i8, ptr %8, i64 10 + store i8 43, ptr %60, align 1 + %61 = icmp slt i64 %16, 0 + br i1 %61, label %_llgo_28, label %_llgo_29 -_llgo_27: ; preds = %_llgo_25, %_llgo_12 - %59 = phi double [ %15, %_llgo_12 ], [ %50, %_llgo_25 ] - %60 = phi i64 [ 0, %_llgo_12 ], [ %51, %_llgo_25 ] - %61 = icmp slt i64 %60, 7 - br i1 %61, label %_llgo_25, label %_llgo_26 - -_llgo_28: ; preds = %_llgo_26 +_llgo_28: ; preds = %_llgo_27 %62 = sub i64 0, %16 %63 = getelementptr inbounds i8, ptr %8, i64 10 store i8 45, ptr %63, align 1 br label %_llgo_29 -_llgo_29: ; preds = %_llgo_28, %_llgo_26 - %64 = phi i64 [ %16, %_llgo_26 ], [ %62, %_llgo_28 ] +_llgo_29: ; preds = %_llgo_28, %_llgo_27 + %64 = phi i64 [ %16, %_llgo_27 ], [ %62, %_llgo_28 ] %65 = sdiv i64 %64, 100 %66 = trunc i64 %65 to i8 %67 = add i8 %66, 48 @@ -984,28 +984,28 @@ _llgo_29: ; preds = %_llgo_28, %_llgo_26 %76 = add i8 %75, 48 %77 = getelementptr inbounds i8, ptr %8, i64 13 store i8 %76, ptr %77, align 1 - %78 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %8, 0 - %79 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %78, i64 14, 1 - %80 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %79, i64 14, 2 - call void @main.gwrite(%"github.com/goplus/llgo/internal/runtime.Slice" %80) + %78 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %8, 0 + %79 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %78, i64 14, 1 + %80 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %79, i64 14, 2 + call void @main.gwrite(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %80) ret void } define void @main.printhex(i64 %0) { _llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 100) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 100) br label %_llgo_3 _llgo_1: ; preds = %_llgo_3 %2 = urem i64 %22, 16 %3 = icmp sge i64 %2, 16 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %3) %4 = getelementptr inbounds i8, ptr @11, i64 %2 %5 = load i8, ptr %4, align 1 %6 = icmp slt i64 %23, 0 %7 = icmp sge i64 %23, 100 %8 = or i1 %7, %6 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %8) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %8) %9 = getelementptr inbounds i8, ptr %1, i64 %23 store i8 %5, ptr %9, align 1 %10 = icmp ult i64 %22, 16 @@ -1016,18 +1016,18 @@ _llgo_2: ; preds = %_llgo_5, %_llgo_3 %12 = icmp slt i64 %11, 0 %13 = icmp sge i64 %11, 100 %14 = or i1 %13, %12 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %14) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %14) %15 = getelementptr inbounds i8, ptr %1, i64 %11 store i8 120, ptr %15, align 1 %16 = sub i64 %11, 1 %17 = icmp slt i64 %16, 0 %18 = icmp sge i64 %16, 100 %19 = or i1 %18, %17 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %19) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %19) %20 = getelementptr inbounds i8, ptr %1, i64 %16 store i8 48, ptr %20, align 1 - %21 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %1, i64 1, i64 100, i64 %16, i64 100, i64 100) - call void @main.gwrite(%"github.com/goplus/llgo/internal/runtime.Slice" %21) + %21 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %1, i64 1, i64 100, i64 %16, i64 100, i64 100) + call void @main.gwrite(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %21) ret void _llgo_3: ; preds = %_llgo_4, %_llgo_0 @@ -1054,7 +1054,7 @@ _llgo_0: br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - call void @main.printstring(%"github.com/goplus/llgo/internal/runtime.String" { ptr @12, i64 1 }) + call void @main.printstring(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 1 }) %2 = sub i64 0, %0 br label %_llgo_2 @@ -1064,9 +1064,9 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 ret void } -define void @main.println(%"github.com/goplus/llgo/internal/runtime.Slice" %0) { +define void @main.println(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0) { _llgo_0: - %1 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 1 + %1 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 1 br label %_llgo_1 _llgo_1: ; preds = %_llgo_5, %_llgo_0 @@ -1076,14 +1076,14 @@ _llgo_1: ; preds = %_llgo_5, %_llgo_0 br i1 %4, label %_llgo_2, label %_llgo_3 _llgo_2: ; preds = %_llgo_1 - %5 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 0 - %6 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 1 + %5 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 0 + %6 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 1 %7 = icmp slt i64 %3, 0 %8 = icmp sge i64 %3, %6 %9 = or i1 %8, %7 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %9) - %10 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %5, i64 %3 - %11 = load %"github.com/goplus/llgo/internal/runtime.eface", ptr %10, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %9) + %10 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %5, i64 %3 + %11 = load %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %10, align 8 %12 = icmp ne i64 %3, 0 br i1 %12, label %_llgo_4, label %_llgo_5 @@ -1092,36 +1092,36 @@ _llgo_3: ; preds = %_llgo_1 ret void _llgo_4: ; preds = %_llgo_2 - call void @main.printstring(%"github.com/goplus/llgo/internal/runtime.String" { ptr @13, i64 1 }) + call void @main.printstring(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 1 }) br label %_llgo_5 _llgo_5: ; preds = %_llgo_4, %_llgo_2 - call void @main.printany(%"github.com/goplus/llgo/internal/runtime.eface" %11) + call void @main.printany(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %11) br label %_llgo_1 } define void @main.printnl() { _llgo_0: - call void @main.printstring(%"github.com/goplus/llgo/internal/runtime.String" { ptr @14, i64 1 }) + call void @main.printstring(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @14, i64 1 }) ret void } define void @main.printsp() { _llgo_0: - call void @main.printstring(%"github.com/goplus/llgo/internal/runtime.String" { ptr @13, i64 1 }) + call void @main.printstring(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 1 }) ret void } -define void @main.printstring(%"github.com/goplus/llgo/internal/runtime.String" %0) { +define void @main.printstring(%"github.com/goplus/llgo/runtime/internal/runtime.String" %0) { _llgo_0: - %1 = call %"github.com/goplus/llgo/internal/runtime.Slice" @main.bytes(%"github.com/goplus/llgo/internal/runtime.String" %0) - call void @main.gwrite(%"github.com/goplus/llgo/internal/runtime.Slice" %1) + %1 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @main.bytes(%"github.com/goplus/llgo/runtime/internal/runtime.String" %0) + call void @main.gwrite(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1) ret void } define void @main.printuint(i64 %0) { _llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 100) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 100) br label %_llgo_3 _llgo_1: ; preds = %_llgo_3 @@ -1131,15 +1131,15 @@ _llgo_1: ; preds = %_llgo_3 %5 = icmp slt i64 %12, 0 %6 = icmp sge i64 %12, 100 %7 = or i1 %6, %5 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %7) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %7) %8 = getelementptr inbounds i8, ptr %1, i64 %12 store i8 %4, ptr %8, align 1 %9 = icmp ult i64 %11, 10 br i1 %9, label %_llgo_2, label %_llgo_4 _llgo_2: ; preds = %_llgo_1, %_llgo_3 - %10 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr %1, i64 1, i64 100, i64 %12, i64 100, i64 100) - call void @main.gwrite(%"github.com/goplus/llgo/internal/runtime.Slice" %10) + %10 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %1, i64 1, i64 100, i64 %12, i64 100, i64 100) + call void @main.gwrite(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %10) ret void _llgo_3: ; preds = %_llgo_4, %_llgo_0 @@ -1173,13 +1173,13 @@ _llgo_0: ret ptr %0 } -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) declare i32 @printf(ptr, ...) -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() define void @"main.init$after"() { _llgo_0: @@ -1188,7 +1188,7 @@ _llgo_0: br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 45) store ptr %2, ptr @_llgo_float32, align 8 br label %_llgo_2 @@ -1198,7 +1198,7 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 br i1 %4, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 46) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 46) store ptr %5, ptr @_llgo_float64, align 8 br label %_llgo_4 @@ -1208,7 +1208,7 @@ _llgo_4: ; preds = %_llgo_3, %_llgo_2 br i1 %7, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) store ptr %8, ptr @_llgo_string, align 8 br label %_llgo_6 @@ -1218,7 +1218,7 @@ _llgo_6: ; preds = %_llgo_5, %_llgo_4 br i1 %10, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 33) + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 33) store ptr %11, ptr @_llgo_bool, align 8 br label %_llgo_8 @@ -1228,7 +1228,7 @@ _llgo_8: ; preds = %_llgo_7, %_llgo_6 br i1 %13, label %_llgo_9, label %_llgo_10 _llgo_9: ; preds = %_llgo_8 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 37) + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 37) store ptr %14, ptr @_llgo_int32, align 8 br label %_llgo_10 @@ -1238,7 +1238,7 @@ _llgo_10: ; preds = %_llgo_9, %_llgo_8 br i1 %16, label %_llgo_11, label %_llgo_12 _llgo_11: ; preds = %_llgo_10 - %17 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 35) store ptr %17, ptr @_llgo_int8, align 8 br label %_llgo_12 @@ -1248,7 +1248,7 @@ _llgo_12: ; preds = %_llgo_11, %_llgo_10 br i1 %19, label %_llgo_13, label %_llgo_14 _llgo_13: ; preds = %_llgo_12 - %20 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 36) + %20 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 36) store ptr %20, ptr @_llgo_int16, align 8 br label %_llgo_14 @@ -1258,7 +1258,7 @@ _llgo_14: ; preds = %_llgo_13, %_llgo_12 br i1 %22, label %_llgo_15, label %_llgo_16 _llgo_15: ; preds = %_llgo_14 - %23 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 38) + %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 38) store ptr %23, ptr @_llgo_int64, align 8 br label %_llgo_16 @@ -1268,7 +1268,7 @@ _llgo_16: ; preds = %_llgo_15, %_llgo_14 br i1 %25, label %_llgo_17, label %_llgo_18 _llgo_17: ; preds = %_llgo_16 - %26 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) store ptr %26, ptr @_llgo_int, align 8 br label %_llgo_18 @@ -1278,7 +1278,7 @@ _llgo_18: ; preds = %_llgo_17, %_llgo_16 br i1 %28, label %_llgo_19, label %_llgo_20 _llgo_19: ; preds = %_llgo_18 - %29 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 40) + %29 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) store ptr %29, ptr @_llgo_byte, align 8 br label %_llgo_20 @@ -1288,7 +1288,7 @@ _llgo_20: ; preds = %_llgo_19, %_llgo_18 br i1 %31, label %_llgo_21, label %_llgo_22 _llgo_21: ; preds = %_llgo_20 - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 41) + %32 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 41) store ptr %32, ptr @_llgo_uint16, align 8 br label %_llgo_22 @@ -1298,7 +1298,7 @@ _llgo_22: ; preds = %_llgo_21, %_llgo_20 br i1 %34, label %_llgo_23, label %_llgo_24 _llgo_23: ; preds = %_llgo_22 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 42) + %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 42) store ptr %35, ptr @_llgo_uint32, align 8 br label %_llgo_24 @@ -1308,7 +1308,7 @@ _llgo_24: ; preds = %_llgo_23, %_llgo_22 br i1 %37, label %_llgo_25, label %_llgo_26 _llgo_25: ; preds = %_llgo_24 - %38 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 43) + %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 43) store ptr %38, ptr @_llgo_uint64, align 8 br label %_llgo_26 @@ -1318,7 +1318,7 @@ _llgo_26: ; preds = %_llgo_25, %_llgo_24 br i1 %40, label %_llgo_27, label %_llgo_28 _llgo_27: ; preds = %_llgo_26 - %41 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 44) + %41 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) store ptr %41, ptr @_llgo_uintptr, align 8 br label %_llgo_28 @@ -1328,7 +1328,7 @@ _llgo_28: ; preds = %_llgo_27, %_llgo_26 br i1 %43, label %_llgo_29, label %_llgo_30 _llgo_29: ; preds = %_llgo_28 - %44 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 16) + %44 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 16) store ptr %44, ptr @_llgo_complex128, align 8 br label %_llgo_30 @@ -1338,7 +1338,7 @@ _llgo_30: ; preds = %_llgo_29, %_llgo_28 br i1 %46, label %_llgo_31, label %_llgo_32 _llgo_31: ; preds = %_llgo_30 - %47 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 39) + %47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 39) store ptr %47, ptr @_llgo_uint, align 8 br label %_llgo_32 @@ -1348,7 +1348,7 @@ _llgo_32: ; preds = %_llgo_31, %_llgo_30 br i1 %49, label %_llgo_33, label %_llgo_34 _llgo_33: ; preds = %_llgo_32 - %50 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 15) + %50 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 15) store ptr %50, ptr @_llgo_complex64, align 8 br label %_llgo_34 @@ -1356,8 +1356,8 @@ _llgo_34: ; preds = %_llgo_33, %_llgo_32 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.NewSlice3"(ptr, i64, i64, i64, i64, i64) +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr, i64, i64, i64, i64, i64) diff --git a/cl/_testdata/printf/in.go b/compiler/cl/_testdata/printf/in.go similarity index 100% rename from cl/_testdata/printf/in.go rename to compiler/cl/_testdata/printf/in.go diff --git a/cl/_testdata/printf/out.ll b/compiler/cl/_testdata/printf/out.ll similarity index 90% rename from cl/_testdata/printf/out.ll rename to compiler/cl/_testdata/printf/out.ll index 1271af05..a1d05cf6 100644 --- a/cl/_testdata/printf/out.ll +++ b/compiler/cl/_testdata/printf/out.ll @@ -30,12 +30,12 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() call void (ptr, ...) @printf(ptr @main.hello) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare void @printf(ptr, ...) diff --git a/cl/_testdata/printval/in.go b/compiler/cl/_testdata/printval/in.go similarity index 100% rename from cl/_testdata/printval/in.go rename to compiler/cl/_testdata/printval/in.go diff --git a/cl/_testdata/printval/out.ll b/compiler/cl/_testdata/printval/out.ll similarity index 91% rename from cl/_testdata/printval/out.ll rename to compiler/cl/_testdata/printval/out.ll index a9a9199c..156a2980 100644 --- a/cl/_testdata/printval/out.ll +++ b/compiler/cl/_testdata/printval/out.ll @@ -33,12 +33,12 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() call void (ptr, ...) @printf(ptr @main.format, i64 100) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare void @printf(ptr, ...) diff --git a/cl/_testdata/ptrmthd/in.go b/compiler/cl/_testdata/ptrmthd/in.go similarity index 100% rename from cl/_testdata/ptrmthd/in.go rename to compiler/cl/_testdata/ptrmthd/in.go diff --git a/cl/_testdata/ptrmthd/out.ll b/compiler/cl/_testdata/ptrmthd/out.ll similarity index 92% rename from cl/_testdata/ptrmthd/out.ll rename to compiler/cl/_testdata/ptrmthd/out.ll index 669165c3..3e80604e 100644 --- a/cl/_testdata/ptrmthd/out.ll +++ b/compiler/cl/_testdata/ptrmthd/out.ll @@ -39,7 +39,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() call void @"main.(*T).Print"(ptr @main.format, i64 100) ret i32 0 @@ -47,4 +47,4 @@ _llgo_0: declare void @printf(ptr, ...) -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() diff --git a/cl/_testdata/uint/in.go b/compiler/cl/_testdata/uint/in.go similarity index 100% rename from cl/_testdata/uint/in.go rename to compiler/cl/_testdata/uint/in.go diff --git a/cl/_testdata/uint/out.ll b/compiler/cl/_testdata/uint/out.ll similarity index 87% rename from cl/_testdata/uint/out.ll rename to compiler/cl/_testdata/uint/out.ll index 852fa7da..0e51cc82 100644 --- a/cl/_testdata/uint/out.ll +++ b/compiler/cl/_testdata/uint/out.ll @@ -29,13 +29,13 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call i32 @main.f(i32 100) %3 = call i32 (ptr, ...) @printf(ptr @0, i32 %2) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare i32 @printf(ptr, ...) diff --git a/cl/_testdata/untyped/in.go b/compiler/cl/_testdata/untyped/in.go similarity index 100% rename from cl/_testdata/untyped/in.go rename to compiler/cl/_testdata/untyped/in.go diff --git a/cl/_testdata/untyped/out.ll b/compiler/cl/_testdata/untyped/out.ll similarity index 88% rename from cl/_testdata/untyped/out.ll rename to compiler/cl/_testdata/untyped/out.ll index e1e480bb..2cd3e107 100644 --- a/cl/_testdata/untyped/out.ll +++ b/compiler/cl/_testdata/untyped/out.ll @@ -24,7 +24,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() br i1 false, label %_llgo_1, label %_llgo_2 @@ -36,4 +36,4 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() diff --git a/cl/_testdata/utf8/in.go b/compiler/cl/_testdata/utf8/in.go similarity index 100% rename from cl/_testdata/utf8/in.go rename to compiler/cl/_testdata/utf8/in.go diff --git a/cl/_testdata/utf8/out.ll b/compiler/cl/_testdata/utf8/out.ll similarity index 52% rename from cl/_testdata/utf8/out.ll rename to compiler/cl/_testdata/utf8/out.ll index 1c7daadb..8e0421f7 100644 --- a/cl/_testdata/utf8/out.ll +++ b/compiler/cl/_testdata/utf8/out.ll @@ -1,7 +1,7 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } @main.array = global [8 x i8] zeroinitializer, align 1 @"main.init$guard" = global i1 false, align 1 @@ -15,7 +15,7 @@ _llgo_0: %2 = icmp slt i64 %1, 0 %3 = icmp sge i64 %1, 8 %4 = or i1 %3, %2 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %4) %5 = getelementptr inbounds i8, ptr @main.array, i64 %1 %6 = load i8, ptr %5, align 1 ret i8 %6 @@ -47,46 +47,46 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - br label %_llgo_3 + br label %_llgo_1 -_llgo_1: ; preds = %_llgo_3 - %2 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringSlice"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 7 }, i64 %10, i64 7) - %3 = call { i32, i64 } @"unicode/utf8.DecodeRuneInString"(%"github.com/goplus/llgo/internal/runtime.String" %2) - %4 = extractvalue { i32, i64 } %3, 0 - %5 = extractvalue { i32, i64 } %3, 1 - %6 = add i64 %10, %5 - %7 = sext i32 %4 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %7) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - br label %_llgo_3 +_llgo_1: ; preds = %_llgo_2, %_llgo_0 + %2 = phi i64 [ 0, %_llgo_0 ], [ %8, %_llgo_2 ] + %3 = icmp slt i64 %2, 7 + br i1 %3, label %_llgo_2, label %_llgo_3 -_llgo_2: ; preds = %_llgo_3 - %8 = call i8 @main.index(i8 2) - %9 = icmp eq i8 %8, 3 - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %9) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) +_llgo_2: ; preds = %_llgo_1 + %4 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 7 }, i64 %2, i64 7) + %5 = call { i32, i64 } @"unicode/utf8.DecodeRuneInString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %4) + %6 = extractvalue { i32, i64 } %5, 0 + %7 = extractvalue { i32, i64 } %5, 1 + %8 = add i64 %2, %7 + %9 = sext i32 %6 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %9) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_3: ; preds = %_llgo_1 + %10 = call i8 @main.index(i8 2) + %11 = icmp eq i8 %10, 3 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %11) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) ret i32 0 - -_llgo_3: ; preds = %_llgo_1, %_llgo_0 - %10 = phi i64 [ 0, %_llgo_0 ], [ %6, %_llgo_1 ] - %11 = icmp slt i64 %10, 7 - br i1 %11, label %_llgo_1, label %_llgo_2 } -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) declare void @"unicode/utf8.init"() -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringSlice"(%"github.com/goplus/llgo/internal/runtime.String", i64, i64) +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64) -declare { i32, i64 } @"unicode/utf8.DecodeRuneInString"(%"github.com/goplus/llgo/internal/runtime.String") +declare { i32, i64 } @"unicode/utf8.DecodeRuneInString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) -declare void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1) diff --git a/cl/_testdata/vargs/in.go b/compiler/cl/_testdata/vargs/in.go similarity index 100% rename from cl/_testdata/vargs/in.go rename to compiler/cl/_testdata/vargs/in.go diff --git a/compiler/cl/_testdata/vargs/out.ll b/compiler/cl/_testdata/vargs/out.ll new file mode 100644 index 00000000..056085d9 --- /dev/null +++ b/compiler/cl/_testdata/vargs/out.ll @@ -0,0 +1,140 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@_llgo_int = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1 +@1 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@_llgo_string = linkonce global ptr null, align 8 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 48) + %3 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %2, i64 0 + %4 = load ptr, ptr @_llgo_int, align 8 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %5, ptr inttoptr (i64 1 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %3, align 8 + %7 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %2, i64 1 + %8 = load ptr, ptr @_llgo_int, align 8 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %8, 0 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %9, ptr inttoptr (i64 2 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %10, ptr %7, align 8 + %11 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %2, i64 2 + %12 = load ptr, ptr @_llgo_int, align 8 + %13 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %12, 0 + %14 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %13, ptr inttoptr (i64 3 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %14, ptr %11, align 8 + %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %2, 0 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %15, i64 3, 1 + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, i64 3, 2 + call void @main.test(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %17) + ret i32 0 +} + +define void @main.test(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0) { +_llgo_0: + %1 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 1 + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_4, %_llgo_0 + %2 = phi i64 [ -1, %_llgo_0 ], [ %3, %_llgo_4 ] + %3 = add i64 %2, 1 + %4 = icmp slt i64 %3, %1 + br i1 %4, label %_llgo_2, label %_llgo_3 + +_llgo_2: ; preds = %_llgo_1 + %5 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 0 + %6 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 1 + %7 = icmp slt i64 %3, 0 + %8 = icmp sge i64 %3, %6 + %9 = or i1 %8, %7 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %9) + %10 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %5, i64 %3 + %11 = load %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %10, align 8 + %12 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %11, 0 + %13 = load ptr, ptr @_llgo_int, align 8 + %14 = icmp eq ptr %12, %13 + br i1 %14, label %_llgo_4, label %_llgo_5 + +_llgo_3: ; preds = %_llgo_1 + ret void + +_llgo_4: ; preds = %_llgo_2 + %15 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %11, 1 + %16 = ptrtoint ptr %15 to i64 + %17 = call i32 (ptr, ...) @printf(ptr @0, i64 %16) + br label %_llgo_1 + +_llgo_5: ; preds = %_llgo_2 + %18 = load ptr, ptr @_llgo_string, align 8 + %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 21 }, ptr %19, align 8 + %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %18, 0 + %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %20, ptr %19, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %21) + unreachable +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_int, align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %2, ptr @_llgo_int, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @_llgo_string, align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %5, ptr @_llgo_string, align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare i32 @printf(ptr, ...) diff --git a/cl/_testdata/varinit/in.go b/compiler/cl/_testdata/varinit/in.go similarity index 100% rename from cl/_testdata/varinit/in.go rename to compiler/cl/_testdata/varinit/in.go diff --git a/cl/_testdata/varinit/out.ll b/compiler/cl/_testdata/varinit/out.ll similarity index 86% rename from cl/_testdata/varinit/out.ll rename to compiler/cl/_testdata/varinit/out.ll index cfe2f593..38757509 100644 --- a/cl/_testdata/varinit/out.ll +++ b/compiler/cl/_testdata/varinit/out.ll @@ -24,7 +24,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = load i64, ptr @main.a, align 4 %3 = add i64 %2, 1 @@ -33,4 +33,4 @@ _llgo_0: ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() diff --git a/cl/_testdefer/firstloop1/in.go b/compiler/cl/_testdefer/firstloop1/in.go similarity index 100% rename from cl/_testdefer/firstloop1/in.go rename to compiler/cl/_testdefer/firstloop1/in.go diff --git a/cl/_testdefer/firstloop1/out.txt b/compiler/cl/_testdefer/firstloop1/out.txt similarity index 72% rename from cl/_testdefer/firstloop1/out.txt rename to compiler/cl/_testdefer/firstloop1/out.txt index 92182937..0a8819d1 100644 --- a/cl/_testdefer/firstloop1/out.txt +++ b/compiler/cl/_testdefer/firstloop1/out.txt @@ -1,7 +1,7 @@ 0: always 6: cond - 3: loop 1: loop + 2: loop 4: loop - 2: cond + 3: cond 5: cond diff --git a/cl/_testdefer/firstloop2/in.go b/compiler/cl/_testdefer/firstloop2/in.go similarity index 100% rename from cl/_testdefer/firstloop2/in.go rename to compiler/cl/_testdefer/firstloop2/in.go diff --git a/cl/_testdefer/firstloop2/out.txt b/compiler/cl/_testdefer/firstloop2/out.txt similarity index 50% rename from cl/_testdefer/firstloop2/out.txt rename to compiler/cl/_testdefer/firstloop2/out.txt index 98b1e224..6a947497 100644 --- a/cl/_testdefer/firstloop2/out.txt +++ b/compiler/cl/_testdefer/firstloop2/out.txt @@ -1,4 +1,4 @@ 0: always - 3: loop 1: loop - 2: always + 2: loop + 3: always diff --git a/cl/_testdefer/loop/in.go b/compiler/cl/_testdefer/loop/in.go similarity index 100% rename from cl/_testdefer/loop/in.go rename to compiler/cl/_testdefer/loop/in.go diff --git a/cl/_testdefer/loop/out.txt b/compiler/cl/_testdefer/loop/out.txt similarity index 72% rename from cl/_testdefer/loop/out.txt rename to compiler/cl/_testdefer/loop/out.txt index ad86720d..30a33f92 100644 --- a/cl/_testdefer/loop/out.txt +++ b/compiler/cl/_testdefer/loop/out.txt @@ -1,7 +1,7 @@ 0: always 1: cond - 4: loop 2: loop + 3: loop 5: loop - 3: cond + 4: cond 6: cond diff --git a/cl/_testdefer/multiret/in.go b/compiler/cl/_testdefer/multiret/in.go similarity index 100% rename from cl/_testdefer/multiret/in.go rename to compiler/cl/_testdefer/multiret/in.go diff --git a/cl/_testdefer/multiret/out.txt b/compiler/cl/_testdefer/multiret/out.txt similarity index 100% rename from cl/_testdefer/multiret/out.txt rename to compiler/cl/_testdefer/multiret/out.txt diff --git a/cl/_testdefer/print/in.go b/compiler/cl/_testdefer/print/in.go similarity index 100% rename from cl/_testdefer/print/in.go rename to compiler/cl/_testdefer/print/in.go diff --git a/cl/_testdefer/print/out.txt b/compiler/cl/_testdefer/print/out.txt similarity index 77% rename from cl/_testdefer/print/out.txt rename to compiler/cl/_testdefer/print/out.txt index 85787635..d6f150db 100644 --- a/cl/_testdefer/print/out.txt +++ b/compiler/cl/_testdefer/print/out.txt @@ -8,11 +8,11 @@ 10: loop 8: loop 9: cond -13: loop 11: loop -12: cond +12: loop +13: cond 14: cond 2: cond -17: loop 15: loop -16: always +16: loop +17: always diff --git a/cl/_testdefer/singleret/in.go b/compiler/cl/_testdefer/singleret/in.go similarity index 100% rename from cl/_testdefer/singleret/in.go rename to compiler/cl/_testdefer/singleret/in.go diff --git a/cl/_testdefer/singleret/out.txt b/compiler/cl/_testdefer/singleret/out.txt similarity index 100% rename from cl/_testdefer/singleret/out.txt rename to compiler/cl/_testdefer/singleret/out.txt diff --git a/cl/_testgo/allocinloop/in.go b/compiler/cl/_testgo/allocinloop/in.go similarity index 100% rename from cl/_testgo/allocinloop/in.go rename to compiler/cl/_testgo/allocinloop/in.go diff --git a/compiler/cl/_testgo/allocinloop/out.ll b/compiler/cl/_testgo/allocinloop/out.ll new file mode 100644 index 00000000..c82eed69 --- /dev/null +++ b/compiler/cl/_testgo/allocinloop/out.ll @@ -0,0 +1,66 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } + +@"main.init$guard" = global i1 false, align 1 +@0 = private unnamed_addr constant [5 x i8] c"hello", align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 + +define i64 @main.Foo(%"github.com/goplus/llgo/runtime/internal/runtime.String" %0) { +_llgo_0: + %1 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %0, 1 + ret i64 %1 +} + +define void @main.Test() { +_llgo_0: + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_2, %_llgo_0 + %0 = phi i64 [ 0, %_llgo_0 ], [ %4, %_llgo_2 ] + %1 = phi i64 [ 0, %_llgo_0 ], [ %5, %_llgo_2 ] + %2 = icmp slt i64 %1, 10000000 + br i1 %2, label %_llgo_2, label %_llgo_3 + +_llgo_2: ; preds = %_llgo_1 + %3 = call i64 @main.Foo(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }) + %4 = add i64 %0, %3 + %5 = add i64 %1, 1 + br label %_llgo_1 + +_llgo_3: ; preds = %_llgo_1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %0) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + call void @main.Test() + ret i32 0 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() diff --git a/cl/_testgo/cgobasic/cgobasic.go b/compiler/cl/_testgo/cgobasic/cgobasic.go similarity index 100% rename from cl/_testgo/cgobasic/cgobasic.go rename to compiler/cl/_testgo/cgobasic/cgobasic.go diff --git a/compiler/cl/_testgo/cgobasic/out.ll b/compiler/cl/_testgo/cgobasic/out.ll new file mode 100644 index 00000000..5df5a10d --- /dev/null +++ b/compiler/cl/_testgo/cgobasic/out.ll @@ -0,0 +1,404 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } + +@"github.com/goplus/llgo/runtime/internal/runtime.cgoAlwaysFalse" = external global i1, align 1 +@_cgo_217b74f897b2_Cfunc__Cmalloc = external global i8, align 1 +@_cgo_217b74f897b2_Cfunc_cos = external global i8, align 1 +@_cgo_217b74f897b2_Cfunc_free = external global i8, align 1 +@_cgo_217b74f897b2_Cfunc_log = external global i8, align 1 +@_cgo_217b74f897b2_Cfunc_puts = external global i8, align 1 +@_cgo_217b74f897b2_Cfunc_sin = external global i8, align 1 +@_cgo_217b74f897b2_Cfunc_sqrt = external global i8, align 1 +@main._cgo_217b74f897b2_Cfunc__Cmalloc = global ptr null, align 8 +@main._cgo_217b74f897b2_Cfunc_cos = global ptr null, align 8 +@main._cgo_217b74f897b2_Cfunc_free = global ptr null, align 8 +@main._cgo_217b74f897b2_Cfunc_log = global ptr null, align 8 +@main._cgo_217b74f897b2_Cfunc_puts = global ptr null, align 8 +@main._cgo_217b74f897b2_Cfunc_sin = global ptr null, align 8 +@main._cgo_217b74f897b2_Cfunc_sqrt = global ptr null, align 8 +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [13 x i8] c"Hello, World!", align 1 +@1 = private unnamed_addr constant [29 x i8] c"Converted back to Go string: ", align 1 +@2 = private unnamed_addr constant [23 x i8] c"Length-limited string: ", align 1 +@3 = private unnamed_addr constant [33 x i8] c"Converted back to Go byte slice: ", align 1 +@_llgo_float64 = linkonce global ptr null, align 8 +@4 = private unnamed_addr constant [14 x i8] c"sqrt(%v) = %v\0A", align 1 +@5 = private unnamed_addr constant [13 x i8] c"sin(%v) = %v\0A", align 1 +@6 = private unnamed_addr constant [13 x i8] c"cos(%v) = %v\0A", align 1 +@7 = private unnamed_addr constant [13 x i8] c"log(%v) = %v\0A", align 1 +@_llgo_byte = linkonce global ptr null, align 8 +@"[]_llgo_byte" = linkonce global ptr null, align 8 +@_llgo_Pointer = linkonce global ptr null, align 8 + +define double @main._Cfunc_cos(double %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %2 = load ptr, ptr @main._cgo_217b74f897b2_Cfunc_cos, align 8 + %3 = load ptr, ptr %2, align 8 + %4 = call double %3(double %0) + ret double %4 +} + +define [0 x i8] @main._Cfunc_free(ptr %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %2 = load ptr, ptr @main._cgo_217b74f897b2_Cfunc_free, align 8 + %3 = load ptr, ptr %2, align 8 + %4 = call [0 x i8] %3(ptr %0) + ret [0 x i8] %4 +} + +define double @main._Cfunc_log(double %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %2 = load ptr, ptr @main._cgo_217b74f897b2_Cfunc_log, align 8 + %3 = load ptr, ptr %2, align 8 + %4 = call double %3(double %0) + ret double %4 +} + +define i32 @main._Cfunc_puts(ptr %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %2 = load ptr, ptr @main._cgo_217b74f897b2_Cfunc_puts, align 8 + %3 = load ptr, ptr %2, align 8 + %4 = call i32 %3(ptr %0) + ret i32 %4 +} + +define double @main._Cfunc_sin(double %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %2 = load ptr, ptr @main._cgo_217b74f897b2_Cfunc_sin, align 8 + %3 = load ptr, ptr %2, align 8 + %4 = call double %3(double %0) + ret double %4 +} + +define double @main._Cfunc_sqrt(double %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %2 = load ptr, ptr @main._cgo_217b74f897b2_Cfunc_sqrt, align 8 + %3 = load ptr, ptr %2, align 8 + %4 = call double %3(double %0) + ret double %4 +} + +define ptr @main._Cgo_ptr(ptr %0) { +_llgo_0: + ret ptr %0 +} + +declare void @runtime.cgoUse(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare void @main._cgoCheckResult(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @syscall.init() + call void @fmt.init() + call void @"main.init$after"() + store ptr @_cgo_217b74f897b2_Cfunc_cos, ptr @main._cgo_217b74f897b2_Cfunc_cos, align 8 + store ptr @_cgo_217b74f897b2_Cfunc_free, ptr @main._cgo_217b74f897b2_Cfunc_free, align 8 + store ptr @_cgo_217b74f897b2_Cfunc_log, ptr @main._cgo_217b74f897b2_Cfunc_log, align 8 + store ptr @_cgo_217b74f897b2_Cfunc_puts, ptr @main._cgo_217b74f897b2_Cfunc_puts, align 8 + store ptr @_cgo_217b74f897b2_Cfunc_sin, ptr @main._cgo_217b74f897b2_Cfunc_sin, align 8 + store ptr @_cgo_217b74f897b2_Cfunc_sqrt, ptr @main._cgo_217b74f897b2_Cfunc_sqrt, align 8 + store ptr @_cgo_217b74f897b2_Cfunc__Cmalloc, ptr @main._cgo_217b74f897b2_Cfunc__Cmalloc, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.CString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 13 }) + store ptr %3, ptr %2, align 8 + %4 = load ptr, ptr %2, align 8 + %5 = call i32 @main._Cfunc_puts(ptr %4) + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 4) + %8 = getelementptr inbounds i8, ptr %7, i64 0 + store i8 65, ptr %8, align 1 + %9 = getelementptr inbounds i8, ptr %7, i64 1 + store i8 66, ptr %9, align 1 + %10 = getelementptr inbounds i8, ptr %7, i64 2 + store i8 67, ptr %10, align 1 + %11 = getelementptr inbounds i8, ptr %7, i64 3 + store i8 68, ptr %11, align 1 + %12 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %7, 0 + %13 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %12, i64 4, 1 + %14 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %13, i64 4, 2 + store %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %14, ptr %6, align 8 + %15 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %17 = getelementptr inbounds { ptr }, ptr %16, i32 0, i32 0 + store ptr %6, ptr %17, align 8 + %18 = insertvalue { ptr, ptr } { ptr @"main.main$1", ptr undef }, ptr %16, 1 + %19 = extractvalue { ptr, ptr } %18, 1 + %20 = extractvalue { ptr, ptr } %18, 0 + %21 = call ptr %20(ptr %19) + store ptr %21, ptr %15, align 8 + %22 = load ptr, ptr %2, align 8 + %23 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.GoString"(ptr %22) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 29 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %23) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %24 = load ptr, ptr %2, align 8 + %25 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.GoStringN"(ptr %24, i32 5) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 23 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %25) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %27 = getelementptr inbounds { ptr }, ptr %26, i32 0, i32 0 + store ptr %15, ptr %27, align 8 + %28 = insertvalue { ptr, ptr } { ptr @"main.main$2", ptr undef }, ptr %26, 1 + %29 = extractvalue { ptr, ptr } %28, 1 + %30 = extractvalue { ptr, ptr } %28, 0 + %31 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30(ptr %29) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 33 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %31) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %32 = call double @main._Cfunc_sqrt(double 2.000000e+00) + %33 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) + %34 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %33, i64 0 + %35 = load ptr, ptr @_llgo_float64, align 8 + %36 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %35, 0 + %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %36, ptr inttoptr (i64 4611686018427387904 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %37, ptr %34, align 8 + %38 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %33, i64 1 + %39 = load ptr, ptr @_llgo_float64, align 8 + %40 = bitcast double %32 to i64 + %41 = inttoptr i64 %40 to ptr + %42 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %39, 0 + %43 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %42, ptr %41, 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %43, ptr %38, align 8 + %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %33, 0 + %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %44, i64 2, 1 + %46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %45, i64 2, 2 + %47 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @fmt.Printf(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 14 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %46) + %48 = call double @main._Cfunc_sin(double 2.000000e+00) + %49 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) + %50 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %49, i64 0 + %51 = load ptr, ptr @_llgo_float64, align 8 + %52 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %51, 0 + %53 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %52, ptr inttoptr (i64 4611686018427387904 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %53, ptr %50, align 8 + %54 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %49, i64 1 + %55 = load ptr, ptr @_llgo_float64, align 8 + %56 = bitcast double %48 to i64 + %57 = inttoptr i64 %56 to ptr + %58 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %55, 0 + %59 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %58, ptr %57, 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %59, ptr %54, align 8 + %60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %49, 0 + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, i64 2, 1 + %62 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61, i64 2, 2 + %63 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @fmt.Printf(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 13 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %62) + %64 = call double @main._Cfunc_cos(double 2.000000e+00) + %65 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) + %66 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %65, i64 0 + %67 = load ptr, ptr @_llgo_float64, align 8 + %68 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %67, 0 + %69 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %68, ptr inttoptr (i64 4611686018427387904 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %69, ptr %66, align 8 + %70 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %65, i64 1 + %71 = load ptr, ptr @_llgo_float64, align 8 + %72 = bitcast double %64 to i64 + %73 = inttoptr i64 %72 to ptr + %74 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %71, 0 + %75 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %74, ptr %73, 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %75, ptr %70, align 8 + %76 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %65, 0 + %77 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %76, i64 2, 1 + %78 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %77, i64 2, 2 + %79 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @fmt.Printf(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 13 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %78) + %80 = call double @main._Cfunc_log(double 2.000000e+00) + %81 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) + %82 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %81, i64 0 + %83 = load ptr, ptr @_llgo_float64, align 8 + %84 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %83, 0 + %85 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %84, ptr inttoptr (i64 4611686018427387904 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %85, ptr %82, align 8 + %86 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %81, i64 1 + %87 = load ptr, ptr @_llgo_float64, align 8 + %88 = bitcast double %80 to i64 + %89 = inttoptr i64 %88 to ptr + %90 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %87, 0 + %91 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %90, ptr %89, 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %91, ptr %86, align 8 + %92 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %81, 0 + %93 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %92, i64 2, 1 + %94 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %93, i64 2, 2 + %95 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @fmt.Printf(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 13 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %94) + %96 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %97 = getelementptr inbounds { ptr }, ptr %96, i32 0, i32 0 + store ptr %2, ptr %97, align 8 + %98 = insertvalue { ptr, ptr } { ptr @"main.main$3", ptr undef }, ptr %96, 1 + %99 = extractvalue { ptr, ptr } %98, 1 + %100 = extractvalue { ptr, ptr } %98, 0 + call void %100(ptr %99) + %101 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %102 = getelementptr inbounds { ptr }, ptr %101, i32 0, i32 0 + store ptr %15, ptr %102, align 8 + %103 = insertvalue { ptr, ptr } { ptr @"main.main$4", ptr undef }, ptr %101, 1 + %104 = extractvalue { ptr, ptr } %103, 1 + %105 = extractvalue { ptr, ptr } %103, 0 + call void %105(ptr %104) + ret i32 0 +} + +define ptr @"main.main$1"(ptr %0) { +_llgo_0: + %1 = load { ptr }, ptr %0, align 8 + %2 = extractvalue { ptr } %1, 0 + %3 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %2, align 8 + %4 = load ptr, ptr @_llgo_byte, align 8 + %5 = load ptr, ptr @"[]_llgo_byte", align 8 + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + store %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %3, ptr %6, align 8 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %5, 0 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %7, ptr %6, 1 + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.CBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %3) + ret ptr %9 +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"main.main$2"(ptr %0) { +_llgo_0: + %1 = load { ptr }, ptr %0, align 8 + %2 = extractvalue { ptr } %1, 0 + %3 = load ptr, ptr %2, align 8 + %4 = load ptr, ptr @_llgo_Pointer, align 8 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %5, ptr %3, 1 + %7 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.GoBytes"(ptr %3, i32 4) + ret %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %7 +} + +define void @"main.main$3"(ptr %0) { +_llgo_0: + %1 = load { ptr }, ptr %0, align 8 + %2 = extractvalue { ptr } %1, 0 + %3 = load ptr, ptr %2, align 8 + %4 = load ptr, ptr @_llgo_Pointer, align 8 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %5, ptr %3, 1 + %7 = call [0 x i8] @main._Cfunc_free(ptr %3) + ret void +} + +define void @"main.main$4"(ptr %0) { +_llgo_0: + %1 = load { ptr }, ptr %0, align 8 + %2 = extractvalue { ptr } %1, 0 + %3 = load ptr, ptr %2, align 8 + %4 = load ptr, ptr @_llgo_Pointer, align 8 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %5, ptr %3, 1 + %7 = call [0 x i8] @main._Cfunc_free(ptr %3) + ret void +} + +declare void @runtime.throw(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare void @syscall.init() + +declare void @fmt.init() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.CString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.GoString"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.GoStringN"(ptr, i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_float64, align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 46) + store ptr %2, ptr @_llgo_float64, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @_llgo_byte, align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + store ptr %5, ptr @_llgo_byte, align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %6 = load ptr, ptr @"[]_llgo_byte", align 8 + %7 = icmp eq ptr %6, null + br i1 %7, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %8) + store ptr %9, ptr @"[]_llgo_byte", align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %10 = load ptr, ptr @_llgo_Pointer, align 8 + %11 = icmp eq ptr %10, null + br i1 %11, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %12) + store ptr %12, ptr @_llgo_Pointer, align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @fmt.Printf(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.CBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.GoBytes"(ptr, i64) diff --git a/cl/_testgo/cgocfiles/cgocfiles.go b/compiler/cl/_testgo/cgocfiles/cgocfiles.go similarity index 100% rename from cl/_testgo/cgocfiles/cgocfiles.go rename to compiler/cl/_testgo/cgocfiles/cgocfiles.go diff --git a/cl/_testgo/cgocfiles/in.c b/compiler/cl/_testgo/cgocfiles/in.c similarity index 100% rename from cl/_testgo/cgocfiles/in.c rename to compiler/cl/_testgo/cgocfiles/in.c diff --git a/cl/_testgo/cgocfiles/in.h b/compiler/cl/_testgo/cgocfiles/in.h similarity index 100% rename from cl/_testgo/cgocfiles/in.h rename to compiler/cl/_testgo/cgocfiles/in.h diff --git a/cl/_testgo/cgocfiles/out.ll b/compiler/cl/_testgo/cgocfiles/out.ll similarity index 51% rename from cl/_testgo/cgocfiles/out.ll rename to compiler/cl/_testgo/cgocfiles/out.ll index 099680c2..536c460d 100644 --- a/cl/_testgo/cgocfiles/out.ll +++ b/compiler/cl/_testgo/cgocfiles/out.ll @@ -1,19 +1,19 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } %main._Ctype_struct___3 = type { i32 } %main._Ctype_struct___4 = type { i32, i32 } %main._Ctype_struct___0 = type { i32, i32, i32 } %main._Ctype_struct___1 = type { i32, i32, i32, i32 } %main._Ctype_struct___2 = type { i32, i32, i32, i32, i32 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } -@"github.com/goplus/llgo/internal/runtime.cgoAlwaysFalse" = external global i1, align 1 -@_cgo_35faaf752e93_Cfunc_test_structs = external global i8, align 1 -@main._cgo_35faaf752e93_Cfunc_test_structs = global ptr null, align 8 +@"github.com/goplus/llgo/runtime/internal/runtime.cgoAlwaysFalse" = external global i1, align 1 +@_cgo_023ff89410ef_Cfunc_test_structs = external global i8, align 1 +@main._cgo_023ff89410ef_Cfunc_test_structs = global ptr null, align 8 @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 @@ -26,8 +26,8 @@ source_filename = "main" define i32 @main._Cfunc_test_structs(ptr %0, ptr %1, ptr %2, ptr %3, ptr %4) { _llgo_0: - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %6 = load ptr, ptr @main._cgo_35faaf752e93_Cfunc_test_structs, align 8 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %6 = load ptr, ptr @main._cgo_023ff89410ef_Cfunc_test_structs, align 8 %7 = load ptr, ptr %6, align 8 %8 = call i32 %7(ptr %0, ptr %1, ptr %2, ptr %3, ptr %4) ret i32 %8 @@ -38,9 +38,9 @@ _llgo_0: ret ptr %0 } -declare void @runtime.cgoUse(%"github.com/goplus/llgo/internal/runtime.eface") +declare void @runtime.cgoUse(%"github.com/goplus/llgo/runtime/internal/runtime.eface") -declare void @runtime.cgoCheckResult(%"github.com/goplus/llgo/internal/runtime.eface") +declare void @main._cgoCheckResult(%"github.com/goplus/llgo/runtime/internal/runtime.eface") define void @main.init() { _llgo_0: @@ -52,7 +52,7 @@ _llgo_1: ; preds = %_llgo_0 call void @syscall.init() call void @fmt.init() call void @"main.init$after"() - store ptr @_cgo_35faaf752e93_Cfunc_test_structs, ptr @main._cgo_35faaf752e93_Cfunc_test_structs, align 8 + store ptr @_cgo_023ff89410ef_Cfunc_test_structs, ptr @main._cgo_023ff89410ef_Cfunc_test_structs, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 @@ -63,24 +63,24 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 4) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 4) %3 = getelementptr inbounds %main._Ctype_struct___3, ptr %2, i32 0, i32 0 store i32 1, ptr %3, align 4 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) %5 = getelementptr inbounds %main._Ctype_struct___4, ptr %4, i32 0, i32 0 %6 = getelementptr inbounds %main._Ctype_struct___4, ptr %4, i32 0, i32 1 store i32 1, ptr %5, align 4 store i32 2, ptr %6, align 4 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 12) + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 12) %8 = getelementptr inbounds %main._Ctype_struct___0, ptr %7, i32 0, i32 0 %9 = getelementptr inbounds %main._Ctype_struct___0, ptr %7, i32 0, i32 1 %10 = getelementptr inbounds %main._Ctype_struct___0, ptr %7, i32 0, i32 2 store i32 1, ptr %8, align 4 store i32 2, ptr %9, align 4 store i32 3, ptr %10, align 4 - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) %12 = getelementptr inbounds %main._Ctype_struct___1, ptr %11, i32 0, i32 0 %13 = getelementptr inbounds %main._Ctype_struct___1, ptr %11, i32 0, i32 1 %14 = getelementptr inbounds %main._Ctype_struct___1, ptr %11, i32 0, i32 2 @@ -89,7 +89,7 @@ _llgo_0: store i32 2, ptr %13, align 4 store i32 3, ptr %14, align 4 store i32 4, ptr %15, align 4 - %16 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 20) + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 20) %17 = getelementptr inbounds %main._Ctype_struct___2, ptr %16, i32 0, i32 0 %18 = getelementptr inbounds %main._Ctype_struct___2, ptr %16, i32 0, i32 1 %19 = getelementptr inbounds %main._Ctype_struct___2, ptr %16, i32 0, i32 2 @@ -101,64 +101,64 @@ _llgo_0: store i32 4, ptr %20, align 4 store i32 5, ptr %21, align 4 %22 = call i32 @main._Cfunc_test_structs(ptr %2, ptr %4, ptr %7, ptr %11, ptr %16) - %23 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) - %24 = getelementptr inbounds %"github.com/goplus/llgo/internal/runtime.eface", ptr %23, i64 0 + %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + %24 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %23, i64 0 %25 = load ptr, ptr @_llgo_main._Ctype_int, align 8 %26 = sext i32 %22 to i64 %27 = inttoptr i64 %26 to ptr - %28 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %25, 0 - %29 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %28, ptr %27, 1 - store %"github.com/goplus/llgo/internal/runtime.eface" %29, ptr %24, align 8 - %30 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %23, 0 - %31 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %30, i64 1, 1 - %32 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %31, i64 1, 2 - %33 = call { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @fmt.Println(%"github.com/goplus/llgo/internal/runtime.Slice" %32) + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %25, 0 + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %28, ptr %27, 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %29, ptr %24, align 8 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %23, 0 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30, i64 1, 1 + %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %31, i64 1, 2 + %33 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @fmt.Println(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32) %34 = icmp ne i32 %22, 35 br i1 %34, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 %35 = load ptr, ptr @_llgo_string, align 8 - %36 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 19 }, ptr %36, align 8 - %37 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %35, 0 - %38 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %37, ptr %36, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %38) + %36 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 19 }, ptr %36, align 8 + %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %35, 0 + %38 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %37, ptr %36, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %38) unreachable _llgo_2: ; preds = %_llgo_0 ret i32 0 } -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) declare void @syscall.init() declare void @fmt.init() -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() define void @"main.init$after"() { _llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 10 }, i64 5, i64 4, i64 0, i64 0) + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 10 }, i64 5, i64 4, i64 0, i64 0) store ptr %0, ptr @_llgo_main._Ctype_int, align 8 %1 = load ptr, ptr @_llgo_int32, align 8 %2 = icmp eq ptr %1, null br i1 %2, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 37) + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 37) store ptr %3, ptr @_llgo_int32, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 %4 = load ptr, ptr @_llgo_int32, align 8 - call void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr %0, ptr %4, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %4, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) %5 = load ptr, ptr @_llgo_string, align 8 %6 = icmp eq ptr %5, null br i1 %6, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) store ptr %7, ptr @_llgo_string, align 8 br label %_llgo_4 @@ -166,14 +166,14 @@ _llgo_4: ; preds = %_llgo_3, %_llgo_2 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.NewNamed"(%"github.com/goplus/llgo/internal/runtime.String", %"github.com/goplus/llgo/internal/runtime.String", i64, i64, i64, i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/internal/runtime.Slice", %"github.com/goplus/llgo/internal/runtime.Slice") +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") -declare { i64, %"github.com/goplus/llgo/internal/runtime.iface" } @fmt.Println(%"github.com/goplus/llgo/internal/runtime.Slice") +declare { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @fmt.Println(%"github.com/goplus/llgo/runtime/internal/runtime.Slice") -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") diff --git a/cl/_testgo/cgodefer/cgodefer.go b/compiler/cl/_testgo/cgodefer/cgodefer.go similarity index 100% rename from cl/_testgo/cgodefer/cgodefer.go rename to compiler/cl/_testgo/cgodefer/cgodefer.go diff --git a/cl/_testgo/cgodefer/out.ll b/compiler/cl/_testgo/cgodefer/out.ll similarity index 100% rename from cl/_testgo/cgodefer/out.ll rename to compiler/cl/_testgo/cgodefer/out.ll diff --git a/compiler/cl/_testgo/cgofull/bar.go b/compiler/cl/_testgo/cgofull/bar.go new file mode 100644 index 00000000..08e6830f --- /dev/null +++ b/compiler/cl/_testgo/cgofull/bar.go @@ -0,0 +1,16 @@ +package main + +/* +#cgo CFLAGS: -DBAR +#include +#include "foo.h" +static void foo(Foo* f) { + printf("foo in bar: %d\n", f->a); +} +*/ +import "C" + +func Bar(f *C.Foo) { + C.print_foo(f) + C.foo(f) +} diff --git a/compiler/cl/_testgo/cgofull/cgofull.go b/compiler/cl/_testgo/cgofull/cgofull.go new file mode 100644 index 00000000..cdd56336 --- /dev/null +++ b/compiler/cl/_testgo/cgofull/cgofull.go @@ -0,0 +1,157 @@ +package main + +/* +#cgo windows,!amd64 CFLAGS: -D_WIN32 +#cgo !windows CFLAGS: -D_POSIX +#cgo windows,amd64 CFLAGS: -D_WIN64 +#cgo linux,amd64 CFLAGS: -D_LINUX64 +#cgo !windows,amd64 CFLAGS: -D_UNIX64 +#cgo pkg-config: python3-embed +#include +#include +#include "foo.h" +typedef struct { + int a; +} s4; + +typedef struct { + int a; + int b; +} s8; + +typedef struct { + int a; + int b; + int c; +} s12; + +typedef struct { + int a; + int b; + int c; + int d; +} s16; + +typedef struct { + int a; + int b; + int c; + int d; + int e; +} s20; + +static int test_structs(s4* s4, s8* s8, s12* s12, s16* s16, s20* s20) { + printf("s4.a: %d\n", s4->a); + printf("s8.a: %d, s8.b: %d\n", s8->a, s8->b); + printf("s12.a: %d, s12.b: %d, s12.c: %d\n", s12->a, s12->b, s12->c); + printf("s16.a: %d, s16.b: %d, s16.c: %d, s16.d: %d\n", s16->a, s16->b, s16->c, s16->d); + printf("s20.a: %d, s20.b: %d, s20.c: %d, s20.d: %d, s20.e: %d\n", s20->a, s20->b, s20->c, s20->d, s20->e); + + return s4->a + s8->a + s8->b + s12->a + s12->b + s12->c + s16->a + s16->b + s16->c + s16->d + s20->a + s20->b + s20->c + s20->d + s20->e; +} + +static void test_macros() { +#ifdef FOO + printf("FOO is defined\n"); +#endif +#ifdef BAR + printf("BAR is defined\n"); +#endif +#ifdef _WIN32 + printf("WIN32 is defined\n"); +#endif +#ifdef _POSIX + printf("POSIX is defined\n"); +#endif +#ifdef _WIN64 + printf("WIN64 is defined\n"); +#endif +#ifdef _LINUX64 + printf("LINUX64 is defined\n"); +#endif +#ifdef _UNIX64 + printf("UNIX64 is defined\n"); +#endif +} + +#define MY_VERSION "1.0.0" +#define MY_CODE 0x12345678 + +static void test_void() { + printf("test_void\n"); +} + +typedef int (*Cb)(int); + +extern int go_callback(int); + +extern int c_callback(int i); + +static void test_callback(Cb cb) { + printf("test_callback, cb: %p, go_callback: %p, c_callback: %p\n", cb, go_callback, c_callback); + printf("test_callback, *cb: %p, *go_callback: %p, *c_callback: %p\n", *(void**)cb, *(void**)(go_callback), *(void**)(c_callback)); + printf("cb result: %d\n", cb(123)); + printf("done\n"); +} + +extern int go_callback_not_use_in_go(int); + +static void run_callback() { + test_callback(c_callback); + test_callback(go_callback_not_use_in_go); +} +*/ +import "C" +import ( + "fmt" + "unsafe" + + "github.com/goplus/llgo/compiler/cl/_testgo/cgofull/pymod1" + "github.com/goplus/llgo/compiler/cl/_testgo/cgofull/pymod2" +) + +//export go_callback_not_use_in_go +func go_callback_not_use_in_go(i C.int) C.int { + return i + 1 +} + +//export go_callback +func go_callback(i C.int) C.int { + return i + 1 +} + +func main() { + runPy() + f := &C.Foo{a: 1} + Foo(f) + Bar(f) + C.test_macros() + r := C.test_structs(&C.s4{a: 1}, &C.s8{a: 1, b: 2}, &C.s12{a: 1, b: 2, c: 3}, &C.s16{a: 1, b: 2, c: 3, d: 4}, &C.s20{a: 1, b: 2, c: 3, d: 4, e: 5}) + fmt.Println(r) + if r != 35 { + panic("test_structs failed") + } + fmt.Println(C.MY_VERSION) + fmt.Println(int(C.MY_CODE)) + C.test_void() + + println("call run_callback") + C.run_callback() + + // test _Cgo_ptr and _cgoCheckResult + println("call with go_callback") + C.test_callback((C.Cb)(C.go_callback)) + + println("call with c_callback") + C.test_callback((C.Cb)(C.c_callback)) +} + +func runPy() { + Initialize() + defer Finalize() + Run("print('Hello, Python!')") + C.PyObject_Print((*C.PyObject)(unsafe.Pointer(pymod1.Float(1.23))), C.stderr, 0) + C.PyObject_Print((*C.PyObject)(unsafe.Pointer(pymod2.Long(123))), C.stdout, 0) + // test _Cgo_use + C.PyObject_Print((*C.PyObject)(unsafe.Pointer(C.PyComplex_FromDoubles(C.double(1.23), C.double(4.56)))), C.stdout, 0) +} diff --git a/compiler/cl/_testgo/cgofull/foo.c b/compiler/cl/_testgo/cgofull/foo.c new file mode 100644 index 00000000..aaa25c6a --- /dev/null +++ b/compiler/cl/_testgo/cgofull/foo.c @@ -0,0 +1,12 @@ +#include +#include "foo.h" + +void print_foo(Foo *f) +{ + printf("print_foo: %d\n", f->a); +} + +int c_callback(int i) +{ + return i + 1; +} \ No newline at end of file diff --git a/compiler/cl/_testgo/cgofull/foo.go b/compiler/cl/_testgo/cgofull/foo.go new file mode 100644 index 00000000..1d6aa3b4 --- /dev/null +++ b/compiler/cl/_testgo/cgofull/foo.go @@ -0,0 +1,16 @@ +package main + +/* +#cgo CFLAGS: -DFOO +#include +#include "foo.h" +static void foo(Foo* f) { + printf("foo in bar: %d\n", f->a); +} +*/ +import "C" + +func Foo(f *C.Foo) { + C.print_foo(f) + C.foo(f) +} diff --git a/compiler/cl/_testgo/cgofull/foo.h b/compiler/cl/_testgo/cgofull/foo.h new file mode 100644 index 00000000..f714fec6 --- /dev/null +++ b/compiler/cl/_testgo/cgofull/foo.h @@ -0,0 +1,7 @@ +#pragma once + +typedef struct { + int a; +} Foo; + +extern void print_foo(Foo* f); diff --git a/cl/_testgo/cgofull/out.ll b/compiler/cl/_testgo/cgofull/out.ll similarity index 100% rename from cl/_testgo/cgofull/out.ll rename to compiler/cl/_testgo/cgofull/out.ll diff --git a/compiler/cl/_testgo/cgofull/py.go b/compiler/cl/_testgo/cgofull/py.go new file mode 100644 index 00000000..509d88ca --- /dev/null +++ b/compiler/cl/_testgo/cgofull/py.go @@ -0,0 +1,24 @@ +package main + +/* +#cgo pkg-config: python3-embed +#include +*/ +import "C" +import "fmt" + +func Initialize() { + C.Py_Initialize() +} + +func Finalize() { + C.Py_Finalize() +} + +func Run(code string) error { + if C.PyRun_SimpleString(C.CString(code)) != 0 { + C.PyErr_Print() + return fmt.Errorf("failed to run code") + } + return nil +} diff --git a/compiler/cl/_testgo/cgofull/pymod1/pymod1.go b/compiler/cl/_testgo/cgofull/pymod1/pymod1.go new file mode 100644 index 00000000..480b1b4a --- /dev/null +++ b/compiler/cl/_testgo/cgofull/pymod1/pymod1.go @@ -0,0 +1,11 @@ +package pymod1 + +/* +#cgo pkg-config: python3-embed +#include +*/ +import "C" + +func Float(f float64) *C.PyObject { + return C.PyFloat_FromDouble(C.double(f)) +} diff --git a/compiler/cl/_testgo/cgofull/pymod2/pymod2.go b/compiler/cl/_testgo/cgofull/pymod2/pymod2.go new file mode 100644 index 00000000..8cc7dd27 --- /dev/null +++ b/compiler/cl/_testgo/cgofull/pymod2/pymod2.go @@ -0,0 +1,11 @@ +package pymod2 + +/* +#cgo pkg-config: python3-embed +#include +*/ +import "C" + +func Long(l int64) *C.PyObject { + return C.PyLong_FromLongLong(C.longlong(l)) +} diff --git a/cl/_testgo/cgomacro/cgomacro.go b/compiler/cl/_testgo/cgomacro/cgomacro.go similarity index 100% rename from cl/_testgo/cgomacro/cgomacro.go rename to compiler/cl/_testgo/cgomacro/cgomacro.go diff --git a/cl/_testgo/cgomacro/out.ll b/compiler/cl/_testgo/cgomacro/out.ll similarity index 100% rename from cl/_testgo/cgomacro/out.ll rename to compiler/cl/_testgo/cgomacro/out.ll diff --git a/cl/_testgo/cgopython/cgopython.go b/compiler/cl/_testgo/cgopython/cgopython.go similarity index 100% rename from cl/_testgo/cgopython/cgopython.go rename to compiler/cl/_testgo/cgopython/cgopython.go diff --git a/cl/_testgo/cgopython/out.ll b/compiler/cl/_testgo/cgopython/out.ll similarity index 100% rename from cl/_testgo/cgopython/out.ll rename to compiler/cl/_testgo/cgopython/out.ll diff --git a/cl/_testgo/chan/in.go b/compiler/cl/_testgo/chan/in.go similarity index 100% rename from cl/_testgo/chan/in.go rename to compiler/cl/_testgo/chan/in.go diff --git a/cl/_testgo/chan/out.ll b/compiler/cl/_testgo/chan/out.ll similarity index 100% rename from cl/_testgo/chan/out.ll rename to compiler/cl/_testgo/chan/out.ll diff --git a/cl/_testgo/closure/in.go b/compiler/cl/_testgo/closure/in.go similarity index 100% rename from cl/_testgo/closure/in.go rename to compiler/cl/_testgo/closure/in.go diff --git a/compiler/cl/_testgo/closure/out.ll b/compiler/cl/_testgo/closure/out.ll new file mode 100644 index 00000000..6a2a0391 --- /dev/null +++ b/compiler/cl/_testgo/closure/out.ll @@ -0,0 +1,88 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%main.T = type { ptr, ptr } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [3 x i8] c"env", align 1 +@1 = private unnamed_addr constant [4 x i8] c"func", align 1 +@2 = private unnamed_addr constant [7 x i8] c"closure", align 1 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 }, ptr %2, align 8 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %4 = getelementptr inbounds { ptr }, ptr %3, i32 0, i32 0 + store ptr %2, ptr %4, align 8 + %5 = insertvalue { ptr, ptr } { ptr @"main.main$2", ptr undef }, ptr %3, 1 + %6 = alloca %main.T, align 8 + store { ptr, ptr } %5, ptr %6, align 8 + %7 = load %main.T, ptr %6, align 8 + call void @"__llgo_stub.main.main$1"(ptr null, i64 100) + %8 = extractvalue %main.T %7, 1 + %9 = extractvalue %main.T %7, 0 + call void %9(ptr %8, i64 200) + ret i32 0 +} + +define void @"main.main$1"(i64 %0) { +_llgo_0: + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %0) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define void @"main.main$2"(ptr %0, i64 %1) { +_llgo_0: + %2 = load { ptr }, ptr %0, align 8 + %3 = extractvalue { ptr } %2, 0 + %4 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %3, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 7 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %1) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +define linkonce void @"__llgo_stub.main.main$1"(ptr %0, i64 %1) { +_llgo_0: + tail call void @"main.main$1"(i64 %1) + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) diff --git a/cl/_testgo/closure2/in.go b/compiler/cl/_testgo/closure2/in.go similarity index 100% rename from cl/_testgo/closure2/in.go rename to compiler/cl/_testgo/closure2/in.go diff --git a/cl/_testgo/closure2/out.ll b/compiler/cl/_testgo/closure2/out.ll similarity index 53% rename from cl/_testgo/closure2/out.ll rename to compiler/cl/_testgo/closure2/out.ll index a37f718d..230ef158 100644 --- a/cl/_testgo/closure2/out.ll +++ b/compiler/cl/_testgo/closure2/out.ll @@ -1,7 +1,7 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @@ -25,11 +25,11 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) store i64 1, ptr %2, align 4 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %4 = getelementptr inbounds { ptr }, ptr %3, i32 0, i32 0 store ptr %2, ptr %4, align 8 %5 = insertvalue { ptr, ptr } { ptr @"main.main$1", ptr undef }, ptr %3, 1 @@ -46,7 +46,7 @@ define { ptr, ptr } @"main.main$1"(ptr %0, i64 %1) { _llgo_0: %2 = load { ptr }, ptr %0, align 8 %3 = extractvalue { ptr } %2, 0 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %5 = getelementptr inbounds { ptr }, ptr %4, i32 0, i32 0 store ptr %3, ptr %5, align 8 %6 = insertvalue { ptr, ptr } { ptr @"main.main$1$1", ptr undef }, ptr %4, 1 @@ -58,23 +58,23 @@ _llgo_0: %2 = load { ptr }, ptr %0, align 8 %3 = extractvalue { ptr } %2, 0 %4 = load i64, ptr %3, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 7 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %1) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %4) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 7 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %1) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) ret void } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) diff --git a/cl/_testgo/constconv/in.go b/compiler/cl/_testgo/constconv/in.go similarity index 100% rename from cl/_testgo/constconv/in.go rename to compiler/cl/_testgo/constconv/in.go diff --git a/compiler/cl/_testgo/constconv/out.ll b/compiler/cl/_testgo/constconv/out.ll new file mode 100644 index 00000000..97380d4c --- /dev/null +++ b/compiler/cl/_testgo/constconv/out.ll @@ -0,0 +1,44 @@ +; ModuleID = 'main' +source_filename = "main" + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 1) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 1) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 11) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 11) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) diff --git a/cl/_testgo/defer1/in.go b/compiler/cl/_testgo/defer1/in.go similarity index 100% rename from cl/_testgo/defer1/in.go rename to compiler/cl/_testgo/defer1/in.go diff --git a/cl/_testgo/defer1/out.ll b/compiler/cl/_testgo/defer1/out.ll similarity index 100% rename from cl/_testgo/defer1/out.ll rename to compiler/cl/_testgo/defer1/out.ll diff --git a/cl/_testgo/defer2/in.go b/compiler/cl/_testgo/defer2/in.go similarity index 100% rename from cl/_testgo/defer2/in.go rename to compiler/cl/_testgo/defer2/in.go diff --git a/cl/_testgo/defer2/out.ll b/compiler/cl/_testgo/defer2/out.ll similarity index 100% rename from cl/_testgo/defer2/out.ll rename to compiler/cl/_testgo/defer2/out.ll diff --git a/cl/_testgo/defer3/in.go b/compiler/cl/_testgo/defer3/in.go similarity index 100% rename from cl/_testgo/defer3/in.go rename to compiler/cl/_testgo/defer3/in.go diff --git a/cl/_testgo/defer3/out.ll b/compiler/cl/_testgo/defer3/out.ll similarity index 100% rename from cl/_testgo/defer3/out.ll rename to compiler/cl/_testgo/defer3/out.ll diff --git a/cl/_testgo/defer4/in.go b/compiler/cl/_testgo/defer4/in.go similarity index 100% rename from cl/_testgo/defer4/in.go rename to compiler/cl/_testgo/defer4/in.go diff --git a/cl/_testgo/defer4/out.ll b/compiler/cl/_testgo/defer4/out.ll similarity index 100% rename from cl/_testgo/defer4/out.ll rename to compiler/cl/_testgo/defer4/out.ll diff --git a/cl/_testgo/defer5/in.go b/compiler/cl/_testgo/defer5/in.go similarity index 100% rename from cl/_testgo/defer5/in.go rename to compiler/cl/_testgo/defer5/in.go diff --git a/cl/_testgo/defer5/out.ll b/compiler/cl/_testgo/defer5/out.ll similarity index 100% rename from cl/_testgo/defer5/out.ll rename to compiler/cl/_testgo/defer5/out.ll diff --git a/cl/_testgo/equal/in.go b/compiler/cl/_testgo/equal/in.go similarity index 100% rename from cl/_testgo/equal/in.go rename to compiler/cl/_testgo/equal/in.go diff --git a/compiler/cl/_testgo/equal/out.ll b/compiler/cl/_testgo/equal/out.ll new file mode 100644 index 00000000..b9ccb7b4 --- /dev/null +++ b/compiler/cl/_testgo/equal/out.ll @@ -0,0 +1,649 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%main.T = type { i64, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.eface" } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%main.N = type {} +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } + +@"main.init$guard" = global i1 false, align 1 +@0 = private unnamed_addr constant [6 x i8] c"failed", align 1 +@_llgo_string = linkonce global ptr null, align 8 +@1 = private unnamed_addr constant [5 x i8] c"hello", align 1 +@_llgo_int = linkonce global ptr null, align 8 +@2 = private unnamed_addr constant [2 x i8] c"ok", align 1 +@"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw" = linkonce global ptr null, align 8 +@3 = private unnamed_addr constant [4 x i8] c"main", align 1 +@_llgo_main.T = linkonce global ptr null, align 8 +@4 = private unnamed_addr constant [1 x i8] c"T", align 1 +@_llgo_any = linkonce global ptr null, align 8 +@"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk" = linkonce global ptr null, align 8 +@5 = private unnamed_addr constant [1 x i8] c"X", align 1 +@6 = private unnamed_addr constant [1 x i8] c"Y", align 1 +@7 = private unnamed_addr constant [1 x i8] c"Z", align 1 +@8 = private unnamed_addr constant [1 x i8] c"V", align 1 +@_llgo_main.N = linkonce global ptr null, align 8 +@9 = private unnamed_addr constant [1 x i8] c"N", align 1 +@"map[_llgo_int]_llgo_string" = linkonce global ptr null, align 8 +@10 = private unnamed_addr constant [7 x i8] c"topbits", align 1 +@11 = private unnamed_addr constant [4 x i8] c"keys", align 1 +@12 = private unnamed_addr constant [5 x i8] c"elems", align 1 +@13 = private unnamed_addr constant [8 x i8] c"overflow", align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 + +define void @main.assert(i1 %0) { +_llgo_0: + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + %1 = load ptr, ptr @_llgo_string, align 8 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 6 }, ptr %2, align 8 + %3 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %1, 0 + %4 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %3, ptr %2, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %4) + unreachable + +_llgo_2: ; preds = %_llgo_0 + ret void +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + call void @"main.init#1"() + call void @"main.init#2"() + call void @"main.init#3"() + call void @"main.init#4"() + call void @"main.init#5"() + call void @"main.init#6"() + call void @"main.init#7"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define void @"main.init#1"() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %2 = getelementptr inbounds { ptr }, ptr %1, i32 0, i32 0 + store ptr %0, ptr %2, align 8 + %3 = insertvalue { ptr, ptr } { ptr @"main.init#1$2", ptr undef }, ptr %1, 1 + call void @main.assert(i1 true) + call void @main.assert(i1 true) + call void @main.assert(i1 true) + call void @main.assert(i1 true) + call void @main.assert(i1 true) + call void @main.assert(i1 true) + %4 = extractvalue { ptr, ptr } %3, 0 + %5 = icmp ne ptr %4, null + call void @main.assert(i1 %5) + %6 = extractvalue { ptr, ptr } %3, 0 + %7 = icmp ne ptr null, %6 + call void @main.assert(i1 %7) + call void @main.assert(i1 true) + call void @main.assert(i1 true) + ret void +} + +define i64 @"main.init#1$1"(i64 %0, i64 %1) { +_llgo_0: + %2 = add i64 %0, %1 + ret i64 %2 +} + +define void @"main.init#1$2"(ptr %0) { +_llgo_0: + %1 = load { ptr }, ptr %0, align 8 + %2 = extractvalue { ptr } %1, 0 + %3 = load i64, ptr %2, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define void @"main.init#2"() { +_llgo_0: + call void @main.assert(i1 true) + %0 = alloca [3 x i64], align 8 + call void @llvm.memset(ptr %0, i8 0, i64 24, i1 false) + %1 = getelementptr inbounds i64, ptr %0, i64 0 + %2 = getelementptr inbounds i64, ptr %0, i64 1 + %3 = getelementptr inbounds i64, ptr %0, i64 2 + store i64 1, ptr %1, align 4 + store i64 2, ptr %2, align 4 + store i64 3, ptr %3, align 4 + %4 = alloca [3 x i64], align 8 + call void @llvm.memset(ptr %4, i8 0, i64 24, i1 false) + %5 = getelementptr inbounds i64, ptr %4, i64 0 + %6 = getelementptr inbounds i64, ptr %4, i64 1 + %7 = getelementptr inbounds i64, ptr %4, i64 2 + store i64 1, ptr %5, align 4 + store i64 2, ptr %6, align 4 + store i64 3, ptr %7, align 4 + %8 = load [3 x i64], ptr %0, align 4 + %9 = load [3 x i64], ptr %4, align 4 + %10 = extractvalue [3 x i64] %8, 0 + %11 = extractvalue [3 x i64] %9, 0 + %12 = icmp eq i64 %10, %11 + %13 = and i1 true, %12 + %14 = extractvalue [3 x i64] %8, 1 + %15 = extractvalue [3 x i64] %9, 1 + %16 = icmp eq i64 %14, %15 + %17 = and i1 %13, %16 + %18 = extractvalue [3 x i64] %8, 2 + %19 = extractvalue [3 x i64] %9, 2 + %20 = icmp eq i64 %18, %19 + %21 = and i1 %17, %20 + call void @main.assert(i1 %21) + %22 = getelementptr inbounds i64, ptr %4, i64 1 + store i64 1, ptr %22, align 4 + %23 = load [3 x i64], ptr %0, align 4 + %24 = load [3 x i64], ptr %4, align 4 + %25 = extractvalue [3 x i64] %23, 0 + %26 = extractvalue [3 x i64] %24, 0 + %27 = icmp eq i64 %25, %26 + %28 = and i1 true, %27 + %29 = extractvalue [3 x i64] %23, 1 + %30 = extractvalue [3 x i64] %24, 1 + %31 = icmp eq i64 %29, %30 + %32 = and i1 %28, %31 + %33 = extractvalue [3 x i64] %23, 2 + %34 = extractvalue [3 x i64] %24, 2 + %35 = icmp eq i64 %33, %34 + %36 = and i1 %32, %35 + %37 = xor i1 %36, true + call void @main.assert(i1 %37) + ret void +} + +define void @"main.init#3"() { +_llgo_0: + %0 = alloca %main.T, align 8 + call void @llvm.memset(ptr %0, i8 0, i64 48, i1 false) + %1 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 0 + %2 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 1 + %3 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 2 + %4 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 3 + store i64 10, ptr %1, align 4 + store i64 20, ptr %2, align 4 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 5 }, ptr %3, align 8 + %5 = load ptr, ptr @_llgo_int, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %5, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr inttoptr (i64 1 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %7, ptr %4, align 8 + %8 = alloca %main.T, align 8 + call void @llvm.memset(ptr %8, i8 0, i64 48, i1 false) + %9 = getelementptr inbounds %main.T, ptr %8, i32 0, i32 0 + %10 = getelementptr inbounds %main.T, ptr %8, i32 0, i32 1 + %11 = getelementptr inbounds %main.T, ptr %8, i32 0, i32 2 + %12 = getelementptr inbounds %main.T, ptr %8, i32 0, i32 3 + store i64 10, ptr %9, align 4 + store i64 20, ptr %10, align 4 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 5 }, ptr %11, align 8 + %13 = load ptr, ptr @_llgo_int, align 8 + %14 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %13, 0 + %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %14, ptr inttoptr (i64 1 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %15, ptr %12, align 8 + %16 = alloca %main.T, align 8 + call void @llvm.memset(ptr %16, i8 0, i64 48, i1 false) + %17 = getelementptr inbounds %main.T, ptr %16, i32 0, i32 0 + %18 = getelementptr inbounds %main.T, ptr %16, i32 0, i32 1 + %19 = getelementptr inbounds %main.T, ptr %16, i32 0, i32 2 + %20 = getelementptr inbounds %main.T, ptr %16, i32 0, i32 3 + store i64 10, ptr %17, align 4 + store i64 20, ptr %18, align 4 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 5 }, ptr %19, align 8 + %21 = load ptr, ptr @_llgo_string, align 8 + %22 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 2 }, ptr %22, align 8 + %23 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %21, 0 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %23, ptr %22, 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %24, ptr %20, align 8 + call void @main.assert(i1 true) + %25 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer) + %26 = and i1 true, %25 + %27 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.eface" zeroinitializer) + %28 = and i1 %26, %27 + call void @main.assert(i1 %28) + %29 = load %main.T, ptr %0, align 8 + %30 = load %main.T, ptr %8, align 8 + %31 = extractvalue %main.T %29, 0 + %32 = extractvalue %main.T %30, 0 + %33 = icmp eq i64 %31, %32 + %34 = and i1 true, %33 + %35 = extractvalue %main.T %29, 1 + %36 = extractvalue %main.T %30, 1 + %37 = icmp eq i64 %35, %36 + %38 = and i1 %34, %37 + %39 = extractvalue %main.T %29, 2 + %40 = extractvalue %main.T %30, 2 + %41 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %39, %"github.com/goplus/llgo/runtime/internal/runtime.String" %40) + %42 = and i1 %38, %41 + %43 = extractvalue %main.T %29, 3 + %44 = extractvalue %main.T %30, 3 + %45 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %43, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %44) + %46 = and i1 %42, %45 + call void @main.assert(i1 %46) + %47 = load %main.T, ptr %0, align 8 + %48 = load %main.T, ptr %16, align 8 + %49 = extractvalue %main.T %47, 0 + %50 = extractvalue %main.T %48, 0 + %51 = icmp eq i64 %49, %50 + %52 = and i1 true, %51 + %53 = extractvalue %main.T %47, 1 + %54 = extractvalue %main.T %48, 1 + %55 = icmp eq i64 %53, %54 + %56 = and i1 %52, %55 + %57 = extractvalue %main.T %47, 2 + %58 = extractvalue %main.T %48, 2 + %59 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %57, %"github.com/goplus/llgo/runtime/internal/runtime.String" %58) + %60 = and i1 %56, %59 + %61 = extractvalue %main.T %47, 3 + %62 = extractvalue %main.T %48, 3 + %63 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %61, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %62) + %64 = and i1 %60, %63 + %65 = xor i1 %64, true + call void @main.assert(i1 %65) + %66 = load %main.T, ptr %8, align 8 + %67 = load %main.T, ptr %16, align 8 + %68 = extractvalue %main.T %66, 0 + %69 = extractvalue %main.T %67, 0 + %70 = icmp eq i64 %68, %69 + %71 = and i1 true, %70 + %72 = extractvalue %main.T %66, 1 + %73 = extractvalue %main.T %67, 1 + %74 = icmp eq i64 %72, %73 + %75 = and i1 %71, %74 + %76 = extractvalue %main.T %66, 2 + %77 = extractvalue %main.T %67, 2 + %78 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %76, %"github.com/goplus/llgo/runtime/internal/runtime.String" %77) + %79 = and i1 %75, %78 + %80 = extractvalue %main.T %66, 3 + %81 = extractvalue %main.T %67, 3 + %82 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %80, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %81) + %83 = and i1 %79, %82 + %84 = xor i1 %83, true + call void @main.assert(i1 %84) + ret void +} + +define void @"main.init#4"() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) + %1 = getelementptr inbounds i64, ptr %0, i64 0 + store i64 1, ptr %1, align 4 + %2 = getelementptr inbounds i64, ptr %0, i64 1 + store i64 2, ptr %2, align 4 + %3 = getelementptr inbounds i64, ptr %0, i64 2 + store i64 3, ptr %3, align 4 + %4 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %0, 0 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %4, i64 3, 1 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %5, i64 3, 2 + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + %8 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %7, i64 8, i64 2, i64 0, i64 2, i64 2) + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + %10 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %9, i64 8, i64 2, i64 0, i64 0, i64 2) + call void @main.assert(i1 true) + %11 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %6, 0 + %12 = icmp ne ptr %11, null + call void @main.assert(i1 %12) + %13 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %8, 0 + %14 = icmp ne ptr %13, null + call void @main.assert(i1 %14) + %15 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %10, 0 + %16 = icmp ne ptr %15, null + call void @main.assert(i1 %16) + call void @main.assert(i1 true) + ret void +} + +define void @"main.init#5"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_int, align 8 + %1 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %0, 0 + %2 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %1, ptr inttoptr (i64 100 to ptr), 1 + %3 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + store {} zeroinitializer, ptr %4, align 1 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %3, 0 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %5, ptr %4, 1 + %7 = alloca %main.T, align 8 + call void @llvm.memset(ptr %7, i8 0, i64 48, i1 false) + %8 = getelementptr inbounds %main.T, ptr %7, i32 0, i32 0 + %9 = getelementptr inbounds %main.T, ptr %7, i32 0, i32 1 + %10 = getelementptr inbounds %main.T, ptr %7, i32 0, i32 2 + %11 = getelementptr inbounds %main.T, ptr %7, i32 0, i32 3 + store i64 10, ptr %8, align 4 + store i64 20, ptr %9, align 4 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 5 }, ptr %10, align 8 + %12 = load ptr, ptr @_llgo_int, align 8 + %13 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %12, 0 + %14 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %13, ptr inttoptr (i64 1 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %14, ptr %11, align 8 + %15 = load %main.T, ptr %7, align 8 + %16 = load ptr, ptr @_llgo_main.T, align 8 + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + store %main.T %15, ptr %17, align 8 + %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %16, 0 + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %18, ptr %17, 1 + %20 = alloca %main.T, align 8 + call void @llvm.memset(ptr %20, i8 0, i64 48, i1 false) + %21 = getelementptr inbounds %main.T, ptr %20, i32 0, i32 0 + %22 = getelementptr inbounds %main.T, ptr %20, i32 0, i32 1 + %23 = getelementptr inbounds %main.T, ptr %20, i32 0, i32 2 + %24 = getelementptr inbounds %main.T, ptr %20, i32 0, i32 3 + store i64 10, ptr %21, align 4 + store i64 20, ptr %22, align 4 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 5 }, ptr %23, align 8 + %25 = load ptr, ptr @_llgo_int, align 8 + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %25, 0 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %26, ptr inttoptr (i64 1 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %27, ptr %24, align 8 + %28 = alloca %main.T, align 8 + call void @llvm.memset(ptr %28, i8 0, i64 48, i1 false) + %29 = getelementptr inbounds %main.T, ptr %28, i32 0, i32 0 + %30 = getelementptr inbounds %main.T, ptr %28, i32 0, i32 1 + %31 = getelementptr inbounds %main.T, ptr %28, i32 0, i32 2 + %32 = getelementptr inbounds %main.T, ptr %28, i32 0, i32 3 + store i64 10, ptr %29, align 4 + store i64 20, ptr %30, align 4 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 5 }, ptr %31, align 8 + %33 = load ptr, ptr @_llgo_string, align 8 + %34 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 2 }, ptr %34, align 8 + %35 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %33, 0 + %36 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %35, ptr %34, 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %36, ptr %32, align 8 + %37 = load ptr, ptr @_llgo_int, align 8 + %38 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %37, 0 + %39 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %38, ptr inttoptr (i64 100 to ptr), 1 + %40 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %2, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %39) + call void @main.assert(i1 %40) + %41 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + %42 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + store {} zeroinitializer, ptr %42, align 1 + %43 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %41, 0 + %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %43, ptr %42, 1 + %45 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %44) + call void @main.assert(i1 %45) + %46 = load ptr, ptr @_llgo_main.N, align 8 + %47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + store %main.N zeroinitializer, ptr %47, align 1 + %48 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %46, 0 + %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %48, ptr %47, 1 + %50 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %49) + %51 = xor i1 %50, true + call void @main.assert(i1 %51) + %52 = load %main.T, ptr %20, align 8 + %53 = load ptr, ptr @_llgo_main.T, align 8 + %54 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + store %main.T %52, ptr %54, align 8 + %55 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %53, 0 + %56 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %55, ptr %54, 1 + %57 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %19, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %56) + call void @main.assert(i1 %57) + %58 = load %main.T, ptr %28, align 8 + %59 = load ptr, ptr @_llgo_main.T, align 8 + %60 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + store %main.T %58, ptr %60, align 8 + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %59, 0 + %62 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %61, ptr %60, 1 + %63 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %19, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %62) + %64 = xor i1 %63, true + call void @main.assert(i1 %64) + ret void +} + +define void @"main.init#6"() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewChan"(i64 8, i64 0) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewChan"(i64 8, i64 0) + %2 = icmp eq ptr %0, %0 + call void @main.assert(i1 %2) + %3 = icmp ne ptr %0, %1 + call void @main.assert(i1 %3) + %4 = icmp ne ptr %0, null + call void @main.assert(i1 %4) + ret void +} + +define void @"main.init#7"() { +_llgo_0: + %0 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr %0, i64 0) + %2 = icmp ne ptr %1, null + call void @main.assert(i1 %2) + call void @main.assert(i1 true) + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + ret i32 0 +} + +define void @main.test() { +_llgo_0: + ret void +} + +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_string, align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %2, ptr @_llgo_string, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @_llgo_int, align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %5, ptr @_llgo_int, align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %6 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + %7 = icmp eq ptr %6, null + br i1 %7, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %8, 0 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, i64 0, 1 + %11 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %10, i64 0, 2 + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %11) + store ptr %12, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %13 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 1 }, i64 25, i64 48, i64 0, i64 0) + %14 = load ptr, ptr @_llgo_main.T, align 8 + %15 = icmp eq ptr %14, null + br i1 %15, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + store ptr %13, ptr @_llgo_main.T, align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %16 = load ptr, ptr @_llgo_any, align 8 + %17 = icmp eq ptr %16, null + br i1 %17, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %18 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %18, 0 + %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %19, i64 0, 1 + %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %20, i64 0, 2 + %22 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %21) + store ptr %22, ptr @_llgo_any, align 8 + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_8 + %23 = load ptr, ptr @_llgo_any, align 8 + %24 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8 + %25 = icmp eq ptr %24, null + br i1 %25, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %27 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 1 }, ptr %26, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %28 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %29 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 1 }, ptr %28, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %30 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %31 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 1 }, ptr %30, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %32 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %33 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %32, 0 + %34 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %33, i64 0, 1 + %35 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %34, i64 0, 2 + %36 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %35) + %37 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 1 }, ptr %36, i64 32, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %39 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %38, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %27, ptr %39, align 8 + %40 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %38, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %29, ptr %40, align 8 + %41 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %38, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %31, ptr %41, align 8 + %42 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %38, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %37, ptr %42, align 8 + %43 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %38, 0 + %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %43, i64 4, 1 + %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %44, i64 4, 2 + %46 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 48, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %45) + store ptr %46, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8 + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_10 + %47 = load ptr, ptr @"_llgo_struct$5D_KhR3tDEp-wpx9caTiVZca43wS-XW6slE9Bsr8rsk", align 8 + br i1 %15, label %_llgo_13, label %_llgo_14 + +_llgo_13: ; preds = %_llgo_12 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %13, ptr %47, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_12 + %48 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 1 }, i64 25, i64 0, i64 0, i64 0) + %49 = load ptr, ptr @_llgo_main.N, align 8 + %50 = icmp eq ptr %49, null + br i1 %50, label %_llgo_15, label %_llgo_16 + +_llgo_15: ; preds = %_llgo_14 + store ptr %48, ptr @_llgo_main.N, align 8 + br label %_llgo_16 + +_llgo_16: ; preds = %_llgo_15, %_llgo_14 + %51 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + br i1 %50, label %_llgo_17, label %_llgo_18 + +_llgo_17: ; preds = %_llgo_16 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %48, ptr %51, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_18 + +_llgo_18: ; preds = %_llgo_17, %_llgo_16 + %52 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %53 = icmp eq ptr %52, null + br i1 %53, label %_llgo_19, label %_llgo_20 + +_llgo_19: ; preds = %_llgo_18 + %54 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %55 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %56 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %57 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %56) + %58 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 7 }, ptr %57, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %59 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %60 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %59) + %61 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 4 }, ptr %60, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %62 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %63 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %62) + %64 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 5 }, ptr %63, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %65 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %66 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 8 }, ptr %65, i64 200, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %67 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %68 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %67, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %58, ptr %68, align 8 + %69 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %67, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %61, ptr %69, align 8 + %70 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %67, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %64, ptr %70, align 8 + %71 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %67, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %66, ptr %71, align 8 + %72 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %67, 0 + %73 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %72, i64 4, 1 + %74 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %73, i64 4, 2 + %75 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 208, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %74) + %76 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr %54, ptr %55, ptr %75, i64 4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %76) + store ptr %76, ptr @"map[_llgo_int]_llgo_string", align 8 + br label %_llgo_20 + +_llgo_20: ; preds = %_llgo_19, %_llgo_18 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface", %"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr, i64, i64, i64, i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewChan"(i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr, ptr, ptr, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64, ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr, i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testgo/errors/in.go b/compiler/cl/_testgo/errors/in.go similarity index 100% rename from cl/_testgo/errors/in.go rename to compiler/cl/_testgo/errors/in.go diff --git a/compiler/cl/_testgo/errors/out.ll b/compiler/cl/_testgo/errors/out.ll new file mode 100644 index 00000000..625319c3 --- /dev/null +++ b/compiler/cl/_testgo/errors/out.ll @@ -0,0 +1,202 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%main.errorString = type { %"github.com/goplus/llgo/runtime/internal/runtime.String" } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/abi.Method" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, ptr, ptr } +%"github.com/goplus/llgo/runtime/abi.Imethod" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr } + +@"main.init$guard" = global i1 false, align 1 +@_llgo_main.errorString = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [4 x i8] c"main", align 1 +@1 = private unnamed_addr constant [11 x i8] c"errorString", align 1 +@_llgo_string = linkonce global ptr null, align 8 +@"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ" = linkonce global ptr null, align 8 +@2 = private unnamed_addr constant [1 x i8] c"s", align 1 +@3 = private unnamed_addr constant [5 x i8] c"Error", align 1 +@"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 +@"*_llgo_main.errorString" = linkonce global ptr null, align 8 +@"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU" = linkonce global ptr null, align 8 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@4 = private unnamed_addr constant [8 x i8] c"an error", align 1 + +define %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.New(%"github.com/goplus/llgo/runtime/internal/runtime.String" %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + %2 = getelementptr inbounds %main.errorString, ptr %1, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" %0, ptr %2, align 8 + %3 = load ptr, ptr @_llgo_main.errorString, align 8 + %4 = load ptr, ptr @"*_llgo_main.errorString", align 8 + %5 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %6 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %6, ptr %4) + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %7, 0 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %8, ptr %1, 1 + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" %9 +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.String" @"main.(*errorString).Error"(ptr %0) { +_llgo_0: + %1 = getelementptr inbounds %main.errorString, ptr %0, i32 0, i32 0 + %2 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %1, align 8 + ret %"github.com/goplus/llgo/runtime/internal/runtime.String" %2 +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.New(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 8 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintIface"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %2) + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %2, 0 + %5 = getelementptr ptr, ptr %4, i64 3 + %6 = load ptr, ptr %5, align 8 + %7 = insertvalue { ptr, ptr } undef, ptr %6, 0 + %8 = insertvalue { ptr, ptr } %7, ptr %3, 1 + %9 = extractvalue { ptr, ptr } %8, 1 + %10 = extractvalue { ptr, ptr } %8, 0 + %11 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %10(ptr %9) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %11) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +define void @"main.init$after"() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 11 }, i64 25, i64 16, i64 0, i64 1) + store ptr %0, ptr @_llgo_main.errorString, align 8 + %1 = load ptr, ptr @_llgo_string, align 8 + %2 = icmp eq ptr %1, null + br i1 %2, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %3, ptr @_llgo_string, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %4 = load ptr, ptr @_llgo_string, align 8 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %6 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 1 }, ptr %5, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %8 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %7, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %6, ptr %8, align 8 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %7, 0 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, i64 1, 1 + %11 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %10, i64 1, 2 + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %11) + store ptr %12, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + %13 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + %14 = load ptr, ptr @_llgo_string, align 8 + %15 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %16 = icmp eq ptr %15, null + br i1 %16, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %17, 0 + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %18, i64 0, 1 + %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %19, i64 0, 2 + %21 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %22 = getelementptr ptr, ptr %21, i64 0 + store ptr %14, ptr %22, align 8 + %23 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %21, 0 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %23, i64 1, 1 + %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24, i64 1, 2 + %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %20, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %26) + store ptr %26, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %27 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %28 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %27, 1 + %29 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %28, ptr @"main.(*errorString).Error", 2 + %30 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %29, ptr @"main.(*errorString).Error", 3 + %31 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %32 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %31, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %30, ptr %32, align 8 + %33 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %31, 0 + %34 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %33, i64 1, 1 + %35 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %34, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %13, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %35) + %36 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 11 }, i64 25, i64 16, i64 0, i64 1) + %37 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %36) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %37) + store ptr %37, ptr @"*_llgo_main.errorString", align 8 + %38 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %39 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 + %40 = icmp eq ptr %39, null + br i1 %40, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %41 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 5 }, ptr undef }, ptr %38, 1 + %42 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %43 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %42, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %41, ptr %43, align 8 + %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %42, 0 + %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %44, i64 1, 1 + %46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %45, i64 1, 2 + %47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %46) + store ptr %47, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice", i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr, ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintIface"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") diff --git a/cl/_testgo/goroutine/in.go b/compiler/cl/_testgo/goroutine/in.go similarity index 100% rename from cl/_testgo/goroutine/in.go rename to compiler/cl/_testgo/goroutine/in.go diff --git a/compiler/cl/_testgo/goroutine/out.ll b/compiler/cl/_testgo/goroutine/out.ll new file mode 100644 index 00000000..035c3597 --- /dev/null +++ b/compiler/cl/_testgo/goroutine/out.ll @@ -0,0 +1,110 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [5 x i8] c"hello", align 1 +@1 = private unnamed_addr constant [16 x i8] c"Hello, goroutine", align 1 +@2 = private unnamed_addr constant [1 x i8] c".", align 1 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 1) + store i1 false, ptr %2, align 1 + %3 = call ptr @malloc(i64 16) + %4 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.String" }, ptr %3, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %4, align 8 + %5 = alloca i8, i64 8, align 1 + %6 = call i32 @"github.com/goplus/llgo/runtime/internal/runtime.CreateThread"(ptr %5, ptr null, ptr @"main._llgo_routine$1", ptr %3) + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %8 = getelementptr inbounds { ptr }, ptr %7, i32 0, i32 0 + store ptr %2, ptr %8, align 8 + %9 = insertvalue { ptr, ptr } { ptr @"main.main$1", ptr undef }, ptr %7, 1 + %10 = call ptr @malloc(i64 32) + %11 = getelementptr inbounds { { ptr, ptr }, %"github.com/goplus/llgo/runtime/internal/runtime.String" }, ptr %10, i32 0, i32 0 + store { ptr, ptr } %9, ptr %11, align 8 + %12 = getelementptr inbounds { { ptr, ptr }, %"github.com/goplus/llgo/runtime/internal/runtime.String" }, ptr %10, i32 0, i32 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 16 }, ptr %12, align 8 + %13 = alloca i8, i64 8, align 1 + %14 = call i32 @"github.com/goplus/llgo/runtime/internal/runtime.CreateThread"(ptr %13, ptr null, ptr @"main._llgo_routine$2", ptr %10) + br label %_llgo_3 + +_llgo_1: ; preds = %_llgo_3 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 1 }) + br label %_llgo_3 + +_llgo_2: ; preds = %_llgo_3 + ret i32 0 + +_llgo_3: ; preds = %_llgo_1, %_llgo_0 + %15 = load i1, ptr %2, align 1 + br i1 %15, label %_llgo_2, label %_llgo_1 +} + +define void @"main.main$1"(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.String" %1) { +_llgo_0: + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %1) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %2 = load { ptr }, ptr %0, align 8 + %3 = extractvalue { ptr } %2, 0 + store i1 true, ptr %3, align 1 + ret void +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare ptr @malloc(i64) + +define ptr @"main._llgo_routine$1"(ptr %0) { +_llgo_0: + %1 = load { %"github.com/goplus/llgo/runtime/internal/runtime.String" }, ptr %0, align 8 + %2 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.String" } %1, 0 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + call void @free(ptr %0) + ret ptr null +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @free(ptr) + +declare i32 @"github.com/goplus/llgo/runtime/internal/runtime.CreateThread"(ptr, ptr, ptr, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +define ptr @"main._llgo_routine$2"(ptr %0) { +_llgo_0: + %1 = load { { ptr, ptr }, %"github.com/goplus/llgo/runtime/internal/runtime.String" }, ptr %0, align 8 + %2 = extractvalue { { ptr, ptr }, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %1, 0 + %3 = extractvalue { { ptr, ptr }, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %1, 1 + %4 = extractvalue { ptr, ptr } %2, 1 + %5 = extractvalue { ptr, ptr } %2, 0 + call void %5(ptr %4, %"github.com/goplus/llgo/runtime/internal/runtime.String" %3) + call void @free(ptr %0) + ret ptr null +} diff --git a/cl/_testgo/ifaceconv/in.go b/compiler/cl/_testgo/ifaceconv/in.go similarity index 100% rename from cl/_testgo/ifaceconv/in.go rename to compiler/cl/_testgo/ifaceconv/in.go diff --git a/compiler/cl/_testgo/ifaceconv/out.ll b/compiler/cl/_testgo/ifaceconv/out.ll new file mode 100644 index 00000000..0c0d6b7c --- /dev/null +++ b/compiler/cl/_testgo/ifaceconv/out.ll @@ -0,0 +1,740 @@ +; ModuleID = 'main' +source_filename = "main" + +%main.C1 = type {} +%main.C2 = type {} +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/abi.Imethod" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr } +%"github.com/goplus/llgo/runtime/abi.Method" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, ptr, ptr } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@_llgo_main.I0 = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [4 x i8] c"main", align 1 +@1 = private unnamed_addr constant [2 x i8] c"I0", align 1 +@2 = private unnamed_addr constant [21 x i8] c"nil i0.(I0) succeeded", align 1 +@_llgo_string = linkonce global ptr null, align 8 +@_llgo_main.I1 = linkonce global ptr null, align 8 +@3 = private unnamed_addr constant [2 x i8] c"I1", align 1 +@"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 +@4 = private unnamed_addr constant [6 x i8] c"main.f", align 1 +@"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4" = linkonce global ptr null, align 8 +@5 = private unnamed_addr constant [21 x i8] c"nil i1.(I1) succeeded", align 1 +@_llgo_main.I2 = linkonce global ptr null, align 8 +@6 = private unnamed_addr constant [2 x i8] c"I2", align 1 +@7 = private unnamed_addr constant [6 x i8] c"main.g", align 1 +@"main.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw" = linkonce global ptr null, align 8 +@8 = private unnamed_addr constant [21 x i8] c"nil i2.(I2) succeeded", align 1 +@_llgo_main.C1 = linkonce global ptr null, align 8 +@9 = private unnamed_addr constant [2 x i8] c"C1", align 1 +@"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw" = linkonce global ptr null, align 8 +@10 = private unnamed_addr constant [1 x i8] c"f", align 1 +@11 = private unnamed_addr constant [17 x i8] c"C1 i1.(I0) failed", align 1 +@12 = private unnamed_addr constant [17 x i8] c"C1 i1.(I1) failed", align 1 +@13 = private unnamed_addr constant [20 x i8] c"C1 i1.(I2) succeeded", align 1 +@_llgo_main.C2 = linkonce global ptr null, align 8 +@14 = private unnamed_addr constant [2 x i8] c"C2", align 1 +@15 = private unnamed_addr constant [1 x i8] c"g", align 1 +@16 = private unnamed_addr constant [17 x i8] c"C2 i1.(I0) failed", align 1 +@17 = private unnamed_addr constant [17 x i8] c"C2 i1.(I1) failed", align 1 +@18 = private unnamed_addr constant [17 x i8] c"C2 i1.(I2) failed", align 1 +@19 = private unnamed_addr constant [17 x i8] c"C1 I0(i1) was nil", align 1 +@20 = private unnamed_addr constant [17 x i8] c"C1 I1(i1) was nil", align 1 +@21 = private unnamed_addr constant [4 x i8] c"pass", align 1 + +define void @main.C1.f(%main.C1 %0) { +_llgo_0: + ret void +} + +define void @"main.(*C1).f"(ptr %0) { +_llgo_0: + %1 = load %main.C1, ptr %0, align 1 + call void @main.C1.f(%main.C1 %1) + ret void +} + +define void @main.C2.f(%main.C2 %0) { +_llgo_0: + ret void +} + +define void @main.C2.g(%main.C2 %0) { +_llgo_0: + ret void +} + +define void @"main.(*C2).f"(ptr %0) { +_llgo_0: + %1 = load %main.C2, ptr %0, align 1 + call void @main.C2.f(%main.C2 %1) + ret void +} + +define void @"main.(*C2).g"(ptr %0) { +_llgo_0: + %1 = load %main.C2, ptr %0, align 1 + call void @main.C2.g(%main.C2 %1) + ret void +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = load ptr, ptr @_llgo_main.I0, align 8 + %3 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %2, ptr null) + br i1 %3, label %_llgo_23, label %_llgo_24 + +_llgo_1: ; preds = %_llgo_25 + %4 = load ptr, ptr @_llgo_string, align 8 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 21 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) + unreachable + +_llgo_2: ; preds = %_llgo_25 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) + %9 = load ptr, ptr @_llgo_main.I1, align 8 + %10 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %9, ptr %8) + br i1 %10, label %_llgo_26, label %_llgo_27 + +_llgo_3: ; preds = %_llgo_28 + %11 = load ptr, ptr @_llgo_string, align 8 + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 21 }, ptr %12, align 8 + %13 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %11, 0 + %14 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %13, ptr %12, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %14) + unreachable + +_llgo_4: ; preds = %_llgo_28 + %15 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) + %16 = load ptr, ptr @_llgo_main.I2, align 8 + %17 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %16, ptr %15) + br i1 %17, label %_llgo_29, label %_llgo_30 + +_llgo_5: ; preds = %_llgo_31 + %18 = load ptr, ptr @_llgo_string, align 8 + %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 21 }, ptr %19, align 8 + %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %18, 0 + %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %20, ptr %19, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %21) + unreachable + +_llgo_6: ; preds = %_llgo_31 + %22 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) + %23 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %22, 0 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %23, ptr null, 1 + %25 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %25, 0 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %26, ptr null, 1 + %28 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) + %29 = load ptr, ptr @"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 + %30 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %29, ptr %28) + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %30, 0 + %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %31, ptr null, 1 + %33 = load ptr, ptr @_llgo_main.C1, align 8 + %34 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + store %main.C1 zeroinitializer, ptr %34, align 1 + %35 = load ptr, ptr @"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 + %36 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %35, ptr %33) + %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %36, 0 + %38 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %37, ptr %34, 1 + %39 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %38) + %40 = load ptr, ptr @_llgo_main.I0, align 8 + %41 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %40, ptr %39) + br i1 %41, label %_llgo_32, label %_llgo_33 + +_llgo_7: ; preds = %_llgo_34 + %42 = load ptr, ptr @_llgo_string, align 8 + %43 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 17 }, ptr %43, align 8 + %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %42, 0 + %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %44, ptr %43, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %45) + unreachable + +_llgo_8: ; preds = %_llgo_34 + %46 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %38) + %47 = load ptr, ptr @_llgo_main.I1, align 8 + %48 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %47, ptr %46) + br i1 %48, label %_llgo_35, label %_llgo_36 + +_llgo_9: ; preds = %_llgo_37 + %49 = load ptr, ptr @_llgo_string, align 8 + %50 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 17 }, ptr %50, align 8 + %51 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %49, 0 + %52 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %51, ptr %50, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %52) + unreachable + +_llgo_10: ; preds = %_llgo_37 + %53 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %38) + %54 = load ptr, ptr @_llgo_main.I2, align 8 + %55 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %54, ptr %53) + br i1 %55, label %_llgo_38, label %_llgo_39 + +_llgo_11: ; preds = %_llgo_40 + %56 = load ptr, ptr @_llgo_string, align 8 + %57 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 20 }, ptr %57, align 8 + %58 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %56, 0 + %59 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %58, ptr %57, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %59) + unreachable + +_llgo_12: ; preds = %_llgo_40 + %60 = load ptr, ptr @_llgo_main.C2, align 8 + %61 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + store %main.C2 zeroinitializer, ptr %61, align 1 + %62 = load ptr, ptr @"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 + %63 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %62, ptr %60) + %64 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %63, 0 + %65 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %64, ptr %61, 1 + %66 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %65) + %67 = load ptr, ptr @_llgo_main.I0, align 8 + %68 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %67, ptr %66) + br i1 %68, label %_llgo_41, label %_llgo_42 + +_llgo_13: ; preds = %_llgo_43 + %69 = load ptr, ptr @_llgo_string, align 8 + %70 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @16, i64 17 }, ptr %70, align 8 + %71 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %69, 0 + %72 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %71, ptr %70, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %72) + unreachable + +_llgo_14: ; preds = %_llgo_43 + %73 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %65) + %74 = load ptr, ptr @_llgo_main.I1, align 8 + %75 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %74, ptr %73) + br i1 %75, label %_llgo_44, label %_llgo_45 + +_llgo_15: ; preds = %_llgo_46 + %76 = load ptr, ptr @_llgo_string, align 8 + %77 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 17 }, ptr %77, align 8 + %78 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %76, 0 + %79 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %78, ptr %77, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %79) + unreachable + +_llgo_16: ; preds = %_llgo_46 + %80 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %65) + %81 = load ptr, ptr @_llgo_main.I2, align 8 + %82 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %81, ptr %80) + br i1 %82, label %_llgo_47, label %_llgo_48 + +_llgo_17: ; preds = %_llgo_49 + %83 = load ptr, ptr @_llgo_string, align 8 + %84 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 17 }, ptr %84, align 8 + %85 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %83, 0 + %86 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %85, ptr %84, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %86) + unreachable + +_llgo_18: ; preds = %_llgo_49 + %87 = load ptr, ptr @_llgo_main.C1, align 8 + %88 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + store %main.C1 zeroinitializer, ptr %88, align 1 + %89 = load ptr, ptr @"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 + %90 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %89, ptr %87) + %91 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %90, 0 + %92 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %91, ptr %88, 1 + %93 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %92) + %94 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %92, 1 + %95 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %93, 0 + %96 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %95, ptr %94, 1 + %97 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %96, %"github.com/goplus/llgo/runtime/internal/runtime.eface" zeroinitializer) + br i1 %97, label %_llgo_19, label %_llgo_20 + +_llgo_19: ; preds = %_llgo_18 + %98 = load ptr, ptr @_llgo_string, align 8 + %99 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 17 }, ptr %99, align 8 + %100 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %98, 0 + %101 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %100, ptr %99, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %101) + unreachable + +_llgo_20: ; preds = %_llgo_18 + %102 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %92) + %103 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %92, 1 + %104 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %102, 0 + %105 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %104, ptr %103, 1 + %106 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) + %107 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %106, 0 + %108 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %107, ptr null, 1 + %109 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %105, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %108) + br i1 %109, label %_llgo_21, label %_llgo_22 + +_llgo_21: ; preds = %_llgo_20 + %110 = load ptr, ptr @_llgo_string, align 8 + %111 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @20, i64 17 }, ptr %111, align 8 + %112 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %110, 0 + %113 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %112, ptr %111, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %113) + unreachable + +_llgo_22: ; preds = %_llgo_20 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 + +_llgo_23: ; preds = %_llgo_0 + br label %_llgo_25 + +_llgo_24: ; preds = %_llgo_0 + br label %_llgo_25 + +_llgo_25: ; preds = %_llgo_24, %_llgo_23 + %114 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } [ { %"github.com/goplus/llgo/runtime/internal/runtime.eface" zeroinitializer, i1 true }, %_llgo_23 ], [ zeroinitializer, %_llgo_24 ] + %115 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %114, 0 + %116 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %114, 1 + br i1 %116, label %_llgo_1, label %_llgo_2 + +_llgo_26: ; preds = %_llgo_2 + %117 = load ptr, ptr @"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 + %118 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %117, ptr %8) + %119 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %118, 0 + %120 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %119, ptr null, 1 + %121 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %120, 0 + %122 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %121, i1 true, 1 + br label %_llgo_28 + +_llgo_27: ; preds = %_llgo_2 + br label %_llgo_28 + +_llgo_28: ; preds = %_llgo_27, %_llgo_26 + %123 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %122, %_llgo_26 ], [ zeroinitializer, %_llgo_27 ] + %124 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %123, 0 + %125 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %123, 1 + br i1 %125, label %_llgo_3, label %_llgo_4 + +_llgo_29: ; preds = %_llgo_4 + %126 = load ptr, ptr @"main.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8 + %127 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %126, ptr %15) + %128 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %127, 0 + %129 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %128, ptr null, 1 + %130 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %129, 0 + %131 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %130, i1 true, 1 + br label %_llgo_31 + +_llgo_30: ; preds = %_llgo_4 + br label %_llgo_31 + +_llgo_31: ; preds = %_llgo_30, %_llgo_29 + %132 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %131, %_llgo_29 ], [ zeroinitializer, %_llgo_30 ] + %133 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %132, 0 + %134 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %132, 1 + br i1 %134, label %_llgo_5, label %_llgo_6 + +_llgo_32: ; preds = %_llgo_6 + %135 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %38, 1 + %136 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %39, 0 + %137 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %136, ptr %135, 1 + %138 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %137, 0 + %139 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %138, i1 true, 1 + br label %_llgo_34 + +_llgo_33: ; preds = %_llgo_6 + br label %_llgo_34 + +_llgo_34: ; preds = %_llgo_33, %_llgo_32 + %140 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } [ %139, %_llgo_32 ], [ zeroinitializer, %_llgo_33 ] + %141 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %140, 0 + %142 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %140, 1 + br i1 %142, label %_llgo_8, label %_llgo_7 + +_llgo_35: ; preds = %_llgo_8 + %143 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %38, 1 + %144 = load ptr, ptr @"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 + %145 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %144, ptr %46) + %146 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %145, 0 + %147 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %146, ptr %143, 1 + %148 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %147, 0 + %149 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %148, i1 true, 1 + br label %_llgo_37 + +_llgo_36: ; preds = %_llgo_8 + br label %_llgo_37 + +_llgo_37: ; preds = %_llgo_36, %_llgo_35 + %150 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %149, %_llgo_35 ], [ zeroinitializer, %_llgo_36 ] + %151 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %150, 0 + %152 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %150, 1 + br i1 %152, label %_llgo_10, label %_llgo_9 + +_llgo_38: ; preds = %_llgo_10 + %153 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %38, 1 + %154 = load ptr, ptr @"main.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8 + %155 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %154, ptr %53) + %156 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %155, 0 + %157 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %156, ptr %153, 1 + %158 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %157, 0 + %159 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %158, i1 true, 1 + br label %_llgo_40 + +_llgo_39: ; preds = %_llgo_10 + br label %_llgo_40 + +_llgo_40: ; preds = %_llgo_39, %_llgo_38 + %160 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %159, %_llgo_38 ], [ zeroinitializer, %_llgo_39 ] + %161 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %160, 0 + %162 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %160, 1 + br i1 %162, label %_llgo_11, label %_llgo_12 + +_llgo_41: ; preds = %_llgo_12 + %163 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %65, 1 + %164 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %66, 0 + %165 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %164, ptr %163, 1 + %166 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %165, 0 + %167 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %166, i1 true, 1 + br label %_llgo_43 + +_llgo_42: ; preds = %_llgo_12 + br label %_llgo_43 + +_llgo_43: ; preds = %_llgo_42, %_llgo_41 + %168 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } [ %167, %_llgo_41 ], [ zeroinitializer, %_llgo_42 ] + %169 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %168, 0 + %170 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.eface", i1 } %168, 1 + br i1 %170, label %_llgo_14, label %_llgo_13 + +_llgo_44: ; preds = %_llgo_14 + %171 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %65, 1 + %172 = load ptr, ptr @"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 + %173 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %172, ptr %73) + %174 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %173, 0 + %175 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %174, ptr %171, 1 + %176 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %175, 0 + %177 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %176, i1 true, 1 + br label %_llgo_46 + +_llgo_45: ; preds = %_llgo_14 + br label %_llgo_46 + +_llgo_46: ; preds = %_llgo_45, %_llgo_44 + %178 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %177, %_llgo_44 ], [ zeroinitializer, %_llgo_45 ] + %179 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %178, 0 + %180 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %178, 1 + br i1 %180, label %_llgo_16, label %_llgo_15 + +_llgo_47: ; preds = %_llgo_16 + %181 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %65, 1 + %182 = load ptr, ptr @"main.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8 + %183 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %182, ptr %80) + %184 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %183, 0 + %185 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %184, ptr %181, 1 + %186 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %185, 0 + %187 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %186, i1 true, 1 + br label %_llgo_49 + +_llgo_48: ; preds = %_llgo_16 + br label %_llgo_49 + +_llgo_49: ; preds = %_llgo_48, %_llgo_47 + %188 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %187, %_llgo_47 ], [ zeroinitializer, %_llgo_48 ] + %189 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %188, 0 + %190 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %188, 1 + br i1 %190, label %_llgo_18, label %_llgo_17 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +define void @"main.init$after"() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 2 }) + %1 = load ptr, ptr @_llgo_main.I0, align 8 + %2 = icmp eq ptr %1, null + br i1 %2, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + store ptr %0, ptr @_llgo_main.I0, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + br i1 %2, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %4 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %3, 0 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %4, i64 0, 1 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %5, i64 0, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %6) + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %7 = load ptr, ptr @_llgo_string, align 8 + %8 = icmp eq ptr %7, null + br i1 %8, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %9, ptr @_llgo_string, align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %10 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 2 }) + %11 = load ptr, ptr @_llgo_main.I1, align 8 + %12 = icmp eq ptr %11, null + br i1 %12, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + store ptr %10, ptr @_llgo_main.I1, align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %13 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %14 = icmp eq ptr %13, null + br i1 %14, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %15 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %15, 0 + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, i64 0, 1 + %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %17, i64 0, 2 + %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %19, 0 + %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %20, i64 0, 1 + %22 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %21, i64 0, 2 + %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %18, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %22, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %23) + store ptr %23, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_8 + %24 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + br i1 %12, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + %25 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 6 }, ptr undef }, ptr %24, 1 + %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %27 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %26, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %25, ptr %27, align 8 + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %26, 0 + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %28, i64 1, 1 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %29, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %10, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30) + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_10 + %31 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %32 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 6 }, ptr undef }, ptr %31, 1 + %33 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %34 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %33, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %32, ptr %34, align 8 + %35 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %33, 0 + %36 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %35, i64 1, 1 + %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %36, i64 1, 2 + %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %37) + store ptr %38, ptr @"main.iface$brpgdLtIeRlPi8QUoTgPCXzlehUkncg7v9aITo-GsF4", align 8 + %39 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 2 }) + %40 = load ptr, ptr @_llgo_main.I2, align 8 + %41 = icmp eq ptr %40, null + br i1 %41, label %_llgo_13, label %_llgo_14 + +_llgo_13: ; preds = %_llgo_12 + store ptr %39, ptr @_llgo_main.I2, align 8 + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_12 + %42 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %43 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + br i1 %41, label %_llgo_15, label %_llgo_16 + +_llgo_15: ; preds = %_llgo_14 + %44 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 6 }, ptr undef }, ptr %42, 1 + %45 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 6 }, ptr undef }, ptr %43, 1 + %46 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + %47 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %46, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %44, ptr %47, align 8 + %48 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %46, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %45, ptr %48, align 8 + %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %46, 0 + %50 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %49, i64 2, 1 + %51 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %50, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %39, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %51) + br label %_llgo_16 + +_llgo_16: ; preds = %_llgo_15, %_llgo_14 + %52 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %53 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %54 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 6 }, ptr undef }, ptr %52, 1 + %55 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 6 }, ptr undef }, ptr %53, 1 + %56 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + %57 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %56, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %54, ptr %57, align 8 + %58 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %56, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %55, ptr %58, align 8 + %59 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %56, 0 + %60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %59, i64 2, 1 + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, i64 2, 2 + %62 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61) + store ptr %62, ptr @"main.iface$gZBF8fFlqIMZ9M6lT2VWPyc3eu5Co6j0WoKGIEgDPAw", align 8 + %63 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 2 }, i64 25, i64 0, i64 1, i64 1) + %64 = load ptr, ptr @_llgo_main.C1, align 8 + %65 = icmp eq ptr %64, null + br i1 %65, label %_llgo_17, label %_llgo_18 + +_llgo_17: ; preds = %_llgo_16 + store ptr %63, ptr @_llgo_main.C1, align 8 + br label %_llgo_18 + +_llgo_18: ; preds = %_llgo_17, %_llgo_16 + %66 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + %67 = icmp eq ptr %66, null + br i1 %67, label %_llgo_19, label %_llgo_20 + +_llgo_19: ; preds = %_llgo_18 + %68 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %69 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %68, 0 + %70 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %69, i64 0, 1 + %71 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %70, i64 0, 2 + %72 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %71) + store ptr %72, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + br label %_llgo_20 + +_llgo_20: ; preds = %_llgo_19, %_llgo_18 + %73 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + br i1 %65, label %_llgo_21, label %_llgo_22 + +_llgo_21: ; preds = %_llgo_20 + %74 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %75 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %74, 1 + %76 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %75, ptr @"main.(*C1).f", 2 + %77 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %76, ptr @"main.(*C1).f", 3 + %78 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %74, 1 + %79 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %78, ptr @"main.(*C1).f", 2 + %80 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %79, ptr @main.C1.f, 3 + %81 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %82 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %81, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %80, ptr %82, align 8 + %83 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %81, 0 + %84 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %83, i64 1, 1 + %85 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %84, i64 1, 2 + %86 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %87 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %86, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %77, ptr %87, align 8 + %88 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %86, 0 + %89 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %88, i64 1, 1 + %90 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %89, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %63, ptr %73, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %85, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %90) + br label %_llgo_22 + +_llgo_22: ; preds = %_llgo_21, %_llgo_20 + %91 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @14, i64 2 }, i64 25, i64 0, i64 2, i64 2) + %92 = load ptr, ptr @_llgo_main.C2, align 8 + %93 = icmp eq ptr %92, null + br i1 %93, label %_llgo_23, label %_llgo_24 + +_llgo_23: ; preds = %_llgo_22 + store ptr %91, ptr @_llgo_main.C2, align 8 + br label %_llgo_24 + +_llgo_24: ; preds = %_llgo_23, %_llgo_22 + %94 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + br i1 %93, label %_llgo_25, label %_llgo_26 + +_llgo_25: ; preds = %_llgo_24 + %95 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %96 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %95, 1 + %97 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %96, ptr @"main.(*C2).f", 2 + %98 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %97, ptr @"main.(*C2).f", 3 + %99 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %95, 1 + %100 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %99, ptr @"main.(*C2).f", 2 + %101 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %100, ptr @main.C2.f, 3 + %102 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %103 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %102, 1 + %104 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %103, ptr @"main.(*C2).g", 2 + %105 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %104, ptr @"main.(*C2).g", 3 + %106 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %102, 1 + %107 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %106, ptr @"main.(*C2).g", 2 + %108 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %107, ptr @main.C2.g, 3 + %109 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %110 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %109, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %101, ptr %110, align 8 + %111 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %109, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %108, ptr %111, align 8 + %112 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %109, 0 + %113 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %112, i64 2, 1 + %114 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %113, i64 2, 2 + %115 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %116 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %115, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %98, ptr %116, align 8 + %117 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %115, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %105, ptr %117, align 8 + %118 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %115, 0 + %119 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %118, i64 2, 1 + %120 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %119, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %91, ptr %94, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %114, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %120) + br label %_llgo_26 + +_llgo_26: ; preds = %_llgo_25, %_llgo_24 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice", i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface", %"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) diff --git a/cl/_testgo/ifaceprom/in.go b/compiler/cl/_testgo/ifaceprom/in.go similarity index 100% rename from cl/_testgo/ifaceprom/in.go rename to compiler/cl/_testgo/ifaceprom/in.go diff --git a/compiler/cl/_testgo/ifaceprom/out.ll b/compiler/cl/_testgo/ifaceprom/out.ll new file mode 100644 index 00000000..6ec1df15 --- /dev/null +++ b/compiler/cl/_testgo/ifaceprom/out.ll @@ -0,0 +1,668 @@ +; ModuleID = 'main' +source_filename = "main" + +%main.S = type { %"github.com/goplus/llgo/runtime/internal/runtime.iface" } +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%main.impl = type {} +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/abi.Method" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, ptr, ptr } +%"github.com/goplus/llgo/runtime/abi.Imethod" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } + +@"main.init$guard" = global i1 false, align 1 +@0 = private unnamed_addr constant [3 x i8] c"two", align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@_llgo_main.impl = linkonce global ptr null, align 8 +@1 = private unnamed_addr constant [4 x i8] c"main", align 1 +@2 = private unnamed_addr constant [4 x i8] c"impl", align 1 +@"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw" = linkonce global ptr null, align 8 +@3 = private unnamed_addr constant [3 x i8] c"one", align 1 +@4 = private unnamed_addr constant [8 x i8] c"main.one", align 1 +@_llgo_int = linkonce global ptr null, align 8 +@"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA" = linkonce global ptr null, align 8 +@5 = private unnamed_addr constant [8 x i8] c"main.two", align 1 +@_llgo_string = linkonce global ptr null, align 8 +@"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 +@"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA" = linkonce global ptr null, align 8 +@_llgo_main.I = linkonce global ptr null, align 8 +@6 = private unnamed_addr constant [1 x i8] c"I", align 1 +@7 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@8 = private unnamed_addr constant [4 x i8] c"pass", align 1 + +define i64 @main.S.one(%main.S %0) { +_llgo_0: + %1 = alloca %main.S, align 8 + call void @llvm.memset(ptr %1, i8 0, i64 16, i1 false) + store %main.S %0, ptr %1, align 8 + %2 = getelementptr inbounds %main.S, ptr %1, i32 0, i32 0 + %3 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %2, align 8 + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %3) + %5 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %3, 0 + %6 = getelementptr ptr, ptr %5, i64 3 + %7 = load ptr, ptr %6, align 8 + %8 = insertvalue { ptr, ptr } undef, ptr %7, 0 + %9 = insertvalue { ptr, ptr } %8, ptr %4, 1 + %10 = extractvalue { ptr, ptr } %9, 1 + %11 = extractvalue { ptr, ptr } %9, 0 + %12 = call i64 %11(ptr %10) + ret i64 %12 +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.String" @main.S.two(%main.S %0) { +_llgo_0: + %1 = alloca %main.S, align 8 + call void @llvm.memset(ptr %1, i8 0, i64 16, i1 false) + store %main.S %0, ptr %1, align 8 + %2 = getelementptr inbounds %main.S, ptr %1, i32 0, i32 0 + %3 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %2, align 8 + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %3) + %5 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %3, 0 + %6 = getelementptr ptr, ptr %5, i64 4 + %7 = load ptr, ptr %6, align 8 + %8 = insertvalue { ptr, ptr } undef, ptr %7, 0 + %9 = insertvalue { ptr, ptr } %8, ptr %4, 1 + %10 = extractvalue { ptr, ptr } %9, 1 + %11 = extractvalue { ptr, ptr } %9, 0 + %12 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %11(ptr %10) + ret %"github.com/goplus/llgo/runtime/internal/runtime.String" %12 +} + +define i64 @"main.(*S).one"(ptr %0) { +_llgo_0: + %1 = getelementptr inbounds %main.S, ptr %0, i32 0, i32 0 + %2 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %1, align 8 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %2) + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %2, 0 + %5 = getelementptr ptr, ptr %4, i64 3 + %6 = load ptr, ptr %5, align 8 + %7 = insertvalue { ptr, ptr } undef, ptr %6, 0 + %8 = insertvalue { ptr, ptr } %7, ptr %3, 1 + %9 = extractvalue { ptr, ptr } %8, 1 + %10 = extractvalue { ptr, ptr } %8, 0 + %11 = call i64 %10(ptr %9) + ret i64 %11 +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.String" @"main.(*S).two"(ptr %0) { +_llgo_0: + %1 = getelementptr inbounds %main.S, ptr %0, i32 0, i32 0 + %2 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %1, align 8 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %2) + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %2, 0 + %5 = getelementptr ptr, ptr %4, i64 4 + %6 = load ptr, ptr %5, align 8 + %7 = insertvalue { ptr, ptr } undef, ptr %6, 0 + %8 = insertvalue { ptr, ptr } %7, ptr %3, 1 + %9 = extractvalue { ptr, ptr } %8, 1 + %10 = extractvalue { ptr, ptr } %8, 0 + %11 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %10(ptr %9) + ret %"github.com/goplus/llgo/runtime/internal/runtime.String" %11 +} + +define i64 @main.impl.one(%main.impl %0) { +_llgo_0: + ret i64 1 +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.String" @main.impl.two(%main.impl %0) { +_llgo_0: + ret %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 } +} + +define i64 @"main.(*impl).one"(ptr %0) { +_llgo_0: + %1 = load %main.impl, ptr %0, align 1 + %2 = call i64 @main.impl.one(%main.impl %1) + ret i64 %2 +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.String" @"main.(*impl).two"(ptr %0) { +_llgo_0: + %1 = load %main.impl, ptr %0, align 1 + %2 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @main.impl.two(%main.impl %1) + ret %"github.com/goplus/llgo/runtime/internal/runtime.String" %2 +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = alloca %main.S, align 8 + call void @llvm.memset(ptr %2, i8 0, i64 16, i1 false) + %3 = getelementptr inbounds %main.S, ptr %2, i32 0, i32 0 + %4 = load ptr, ptr @_llgo_main.impl, align 8 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + store %main.impl zeroinitializer, ptr %5, align 1 + %6 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %7 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %8 = load ptr, ptr @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8 + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %8, ptr %4) + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %9, 0 + %11 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %10, ptr %5, 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %11, ptr %3, align 8 + %12 = getelementptr inbounds %main.S, ptr %2, i32 0, i32 0 + %13 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %12, align 8 + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %13) + %15 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %13, 0 + %16 = getelementptr ptr, ptr %15, i64 3 + %17 = load ptr, ptr %16, align 8 + %18 = insertvalue { ptr, ptr } undef, ptr %17, 0 + %19 = insertvalue { ptr, ptr } %18, ptr %14, 1 + %20 = extractvalue { ptr, ptr } %19, 1 + %21 = extractvalue { ptr, ptr } %19, 0 + %22 = call i64 %21(ptr %20) + %23 = icmp ne i64 %22, 1 + br i1 %23, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %24 = load ptr, ptr @_llgo_int, align 8 + %25 = inttoptr i64 %22 to ptr + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %24, 0 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %26, ptr %25, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %27) + unreachable + +_llgo_2: ; preds = %_llgo_0 + %28 = load %main.S, ptr %2, align 8 + %29 = extractvalue %main.S %28, 0 + %30 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %29) + %31 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %29, 0 + %32 = getelementptr ptr, ptr %31, i64 3 + %33 = load ptr, ptr %32, align 8 + %34 = insertvalue { ptr, ptr } undef, ptr %33, 0 + %35 = insertvalue { ptr, ptr } %34, ptr %30, 1 + %36 = extractvalue { ptr, ptr } %35, 1 + %37 = extractvalue { ptr, ptr } %35, 0 + %38 = call i64 %37(ptr %36) + %39 = icmp ne i64 %38, 1 + br i1 %39, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %40 = load ptr, ptr @_llgo_int, align 8 + %41 = inttoptr i64 %38 to ptr + %42 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %40, 0 + %43 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %42, ptr %41, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %43) + unreachable + +_llgo_4: ; preds = %_llgo_2 + %44 = getelementptr inbounds %main.S, ptr %2, i32 0, i32 0 + %45 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %44, align 8 + %46 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %45) + %47 = load ptr, ptr @_llgo_main.I, align 8 + %48 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %47, ptr %46) + br i1 %48, label %_llgo_17, label %_llgo_18 + +_llgo_5: ; preds = %_llgo_17 + %49 = load ptr, ptr @_llgo_int, align 8 + %50 = inttoptr i64 %124 to ptr + %51 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %49, 0 + %52 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %51, ptr %50, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %52) + unreachable + +_llgo_6: ; preds = %_llgo_17 + %53 = load %main.S, ptr %2, align 8 + %54 = extractvalue %main.S %53, 0 + %55 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %54) + %56 = load ptr, ptr @_llgo_main.I, align 8 + %57 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %56, ptr %55) + br i1 %57, label %_llgo_19, label %_llgo_20 + +_llgo_7: ; preds = %_llgo_19 + %58 = load ptr, ptr @_llgo_int, align 8 + %59 = inttoptr i64 %140 to ptr + %60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %58, 0 + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %60, ptr %59, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %61) + unreachable + +_llgo_8: ; preds = %_llgo_19 + %62 = getelementptr inbounds %main.S, ptr %2, i32 0, i32 0 + %63 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %62, align 8 + %64 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %63) + %65 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %63, 0 + %66 = getelementptr ptr, ptr %65, i64 4 + %67 = load ptr, ptr %66, align 8 + %68 = insertvalue { ptr, ptr } undef, ptr %67, 0 + %69 = insertvalue { ptr, ptr } %68, ptr %64, 1 + %70 = extractvalue { ptr, ptr } %69, 1 + %71 = extractvalue { ptr, ptr } %69, 0 + %72 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %71(ptr %70) + %73 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %72, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 }) + %74 = xor i1 %73, true + br i1 %74, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %75 = load ptr, ptr @_llgo_string, align 8 + %76 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" %72, ptr %76, align 8 + %77 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %75, 0 + %78 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %77, ptr %76, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %78) + unreachable + +_llgo_10: ; preds = %_llgo_8 + %79 = load %main.S, ptr %2, align 8 + %80 = extractvalue %main.S %79, 0 + %81 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %80) + %82 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %80, 0 + %83 = getelementptr ptr, ptr %82, i64 4 + %84 = load ptr, ptr %83, align 8 + %85 = insertvalue { ptr, ptr } undef, ptr %84, 0 + %86 = insertvalue { ptr, ptr } %85, ptr %81, 1 + %87 = extractvalue { ptr, ptr } %86, 1 + %88 = extractvalue { ptr, ptr } %86, 0 + %89 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %88(ptr %87) + %90 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %89, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 }) + %91 = xor i1 %90, true + br i1 %91, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + %92 = load ptr, ptr @_llgo_string, align 8 + %93 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" %89, ptr %93, align 8 + %94 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %92, 0 + %95 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %94, ptr %93, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %95) + unreachable + +_llgo_12: ; preds = %_llgo_10 + %96 = getelementptr inbounds %main.S, ptr %2, i32 0, i32 0 + %97 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %96, align 8 + %98 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %97) + %99 = load ptr, ptr @_llgo_main.I, align 8 + %100 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %99, ptr %98) + br i1 %100, label %_llgo_21, label %_llgo_22 + +_llgo_13: ; preds = %_llgo_21 + %101 = load ptr, ptr @_llgo_string, align 8 + %102 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" %156, ptr %102, align 8 + %103 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %101, 0 + %104 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %103, ptr %102, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %104) + unreachable + +_llgo_14: ; preds = %_llgo_21 + %105 = load %main.S, ptr %2, align 8 + %106 = extractvalue %main.S %105, 0 + %107 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %106) + %108 = load ptr, ptr @_llgo_main.I, align 8 + %109 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %108, ptr %107) + br i1 %109, label %_llgo_23, label %_llgo_24 + +_llgo_15: ; preds = %_llgo_23 + %110 = load ptr, ptr @_llgo_string, align 8 + %111 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" %173, ptr %111, align 8 + %112 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %110, 0 + %113 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %112, ptr %111, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %113) + unreachable + +_llgo_16: ; preds = %_llgo_23 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 + +_llgo_17: ; preds = %_llgo_4 + %114 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %45, 1 + %115 = load ptr, ptr @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8 + %116 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %115, ptr %46) + %117 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %116, 0 + %118 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %117, ptr %114, 1 + %119 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %120 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %119, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %45, ptr %120, align 8 + %121 = insertvalue { ptr, ptr } { ptr @"main.one$bound", ptr undef }, ptr %119, 1 + %122 = extractvalue { ptr, ptr } %121, 1 + %123 = extractvalue { ptr, ptr } %121, 0 + %124 = call i64 %123(ptr %122) + %125 = icmp ne i64 %124, 1 + br i1 %125, label %_llgo_5, label %_llgo_6 + +_llgo_18: ; preds = %_llgo_4 + %126 = load ptr, ptr @_llgo_string, align 8 + %127 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 21 }, ptr %127, align 8 + %128 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %126, 0 + %129 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %128, ptr %127, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %129) + unreachable + +_llgo_19: ; preds = %_llgo_6 + %130 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %54, 1 + %131 = load ptr, ptr @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8 + %132 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %131, ptr %55) + %133 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %132, 0 + %134 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %133, ptr %130, 1 + %135 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %136 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %135, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %54, ptr %136, align 8 + %137 = insertvalue { ptr, ptr } { ptr @"main.one$bound", ptr undef }, ptr %135, 1 + %138 = extractvalue { ptr, ptr } %137, 1 + %139 = extractvalue { ptr, ptr } %137, 0 + %140 = call i64 %139(ptr %138) + %141 = icmp ne i64 %140, 1 + br i1 %141, label %_llgo_7, label %_llgo_8 + +_llgo_20: ; preds = %_llgo_6 + %142 = load ptr, ptr @_llgo_string, align 8 + %143 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 21 }, ptr %143, align 8 + %144 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %142, 0 + %145 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %144, ptr %143, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %145) + unreachable + +_llgo_21: ; preds = %_llgo_12 + %146 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %97, 1 + %147 = load ptr, ptr @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8 + %148 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %147, ptr %98) + %149 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %148, 0 + %150 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %149, ptr %146, 1 + %151 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %152 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %151, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %97, ptr %152, align 8 + %153 = insertvalue { ptr, ptr } { ptr @"main.two$bound", ptr undef }, ptr %151, 1 + %154 = extractvalue { ptr, ptr } %153, 1 + %155 = extractvalue { ptr, ptr } %153, 0 + %156 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %155(ptr %154) + %157 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %156, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 }) + %158 = xor i1 %157, true + br i1 %158, label %_llgo_13, label %_llgo_14 + +_llgo_22: ; preds = %_llgo_12 + %159 = load ptr, ptr @_llgo_string, align 8 + %160 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 21 }, ptr %160, align 8 + %161 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %159, 0 + %162 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %161, ptr %160, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %162) + unreachable + +_llgo_23: ; preds = %_llgo_14 + %163 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %106, 1 + %164 = load ptr, ptr @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8 + %165 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %164, ptr %107) + %166 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %165, 0 + %167 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %166, ptr %163, 1 + %168 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %169 = getelementptr inbounds { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %168, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %106, ptr %169, align 8 + %170 = insertvalue { ptr, ptr } { ptr @"main.two$bound", ptr undef }, ptr %168, 1 + %171 = extractvalue { ptr, ptr } %170, 1 + %172 = extractvalue { ptr, ptr } %170, 0 + %173 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %172(ptr %171) + %174 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %173, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 }) + %175 = xor i1 %174, true + br i1 %175, label %_llgo_15, label %_llgo_16 + +_llgo_24: ; preds = %_llgo_14 + %176 = load ptr, ptr @_llgo_string, align 8 + %177 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 21 }, ptr %177, align 8 + %178 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %176, 0 + %179 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %178, ptr %177, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %179) + unreachable +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +define void @"main.init$after"() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 4 }, i64 25, i64 0, i64 2, i64 2) + store ptr %0, ptr @_llgo_main.impl, align 8 + %1 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + %2 = icmp eq ptr %1, null + br i1 %2, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %4 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %3, 0 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %4, i64 0, 1 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %5, i64 0, 2 + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %6) + store ptr %7, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %8 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + %9 = load ptr, ptr @_llgo_int, align 8 + %10 = icmp eq ptr %9, null + br i1 %10, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %11, ptr @_llgo_int, align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %12 = load ptr, ptr @_llgo_int, align 8 + %13 = load ptr, ptr @_llgo_int, align 8 + %14 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %15 = icmp eq ptr %14, null + br i1 %15, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %16, 0 + %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %17, i64 0, 1 + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %18, i64 0, 2 + %20 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %21 = getelementptr ptr, ptr %20, i64 0 + store ptr %13, ptr %21, align 8 + %22 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %20, 0 + %23 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %22, i64 1, 1 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %23, i64 1, 2 + %25 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %19, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %25) + store ptr %25, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %26 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %27 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %26, 1 + %28 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %27, ptr @"main.(*impl).one", 2 + %29 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %28, ptr @"main.(*impl).one", 3 + %30 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %26, 1 + %31 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %30, ptr @"main.(*impl).one", 2 + %32 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %31, ptr @main.impl.one, 3 + %33 = load ptr, ptr @_llgo_string, align 8 + %34 = icmp eq ptr %33, null + br i1 %34, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %35, ptr @_llgo_string, align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %36 = load ptr, ptr @_llgo_string, align 8 + %37 = load ptr, ptr @_llgo_string, align 8 + %38 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %39 = icmp eq ptr %38, null + br i1 %39, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %40 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %41 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %40, 0 + %42 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %41, i64 0, 1 + %43 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %42, i64 0, 2 + %44 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %45 = getelementptr ptr, ptr %44, i64 0 + store ptr %37, ptr %45, align 8 + %46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %44, 0 + %47 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %46, i64 1, 1 + %48 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %47, i64 1, 2 + %49 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %43, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %48, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %49) + store ptr %49, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_8 + %50 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %51 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %50, 1 + %52 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %51, ptr @"main.(*impl).two", 2 + %53 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %52, ptr @"main.(*impl).two", 3 + %54 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %50, 1 + %55 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %54, ptr @"main.(*impl).two", 2 + %56 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %55, ptr @main.impl.two, 3 + %57 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %58 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %57, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %32, ptr %58, align 8 + %59 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %57, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %56, ptr %59, align 8 + %60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %57, 0 + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, i64 2, 1 + %62 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61, i64 2, 2 + %63 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %64 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %63, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %29, ptr %64, align 8 + %65 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %63, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %53, ptr %65, align 8 + %66 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %63, 0 + %67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %66, i64 2, 1 + %68 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %67, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %8, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %62, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %68) + %69 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %70 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %71 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 8 }, ptr undef }, ptr %69, 1 + %72 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 8 }, ptr undef }, ptr %70, 1 + %73 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + %74 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %73, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %71, ptr %74, align 8 + %75 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %73, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %72, ptr %75, align 8 + %76 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %73, 0 + %77 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %76, i64 2, 1 + %78 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %77, i64 2, 2 + %79 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %78) + store ptr %79, ptr @"main.iface$zZ89tENb5h_KNjvpxf1TXPfaWFYn0IZrZwyVf42lRtA", align 8 + %80 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 1 }) + %81 = load ptr, ptr @_llgo_main.I, align 8 + %82 = icmp eq ptr %81, null + br i1 %82, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + store ptr %80, ptr @_llgo_main.I, align 8 + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_10 + %83 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %84 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + br i1 %82, label %_llgo_13, label %_llgo_14 + +_llgo_13: ; preds = %_llgo_12 + %85 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 8 }, ptr undef }, ptr %83, 1 + %86 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 8 }, ptr undef }, ptr %84, 1 + %87 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + %88 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %87, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %85, ptr %88, align 8 + %89 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %87, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %86, ptr %89, align 8 + %90 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %87, 0 + %91 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %90, i64 2, 1 + %92 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %91, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %80, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %92) + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_12 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice", i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr, ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr, ptr) + +define i64 @"main.one$bound"(ptr %0) { +_llgo_0: + %1 = load { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %0, align 8 + %2 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %1, 0 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %2) + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %2, 0 + %5 = getelementptr ptr, ptr %4, i64 3 + %6 = load ptr, ptr %5, align 8 + %7 = insertvalue { ptr, ptr } undef, ptr %6, 0 + %8 = insertvalue { ptr, ptr } %7, ptr %3, 1 + %9 = extractvalue { ptr, ptr } %8, 1 + %10 = extractvalue { ptr, ptr } %8, 0 + %11 = call i64 %10(ptr %9) + ret i64 %11 +} + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String") + +define %"github.com/goplus/llgo/runtime/internal/runtime.String" @"main.two$bound"(ptr %0) { +_llgo_0: + %1 = load { %"github.com/goplus/llgo/runtime/internal/runtime.iface" }, ptr %0, align 8 + %2 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %1, 0 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %2) + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %2, 0 + %5 = getelementptr ptr, ptr %4, i64 4 + %6 = load ptr, ptr %5, align 8 + %7 = insertvalue { ptr, ptr } undef, ptr %6, 0 + %8 = insertvalue { ptr, ptr } %7, ptr %3, 1 + %9 = extractvalue { ptr, ptr } %8, 1 + %10 = extractvalue { ptr, ptr } %8, 0 + %11 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %10(ptr %9) + ret %"github.com/goplus/llgo/runtime/internal/runtime.String" %11 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testgo/indexerr/in.go b/compiler/cl/_testgo/indexerr/in.go similarity index 100% rename from cl/_testgo/indexerr/in.go rename to compiler/cl/_testgo/indexerr/in.go diff --git a/cl/_testgo/indexerr/out.ll b/compiler/cl/_testgo/indexerr/out.ll similarity index 100% rename from cl/_testgo/indexerr/out.ll rename to compiler/cl/_testgo/indexerr/out.ll diff --git a/cl/_testgo/interface/in.go b/compiler/cl/_testgo/interface/in.go similarity index 85% rename from cl/_testgo/interface/in.go rename to compiler/cl/_testgo/interface/in.go index 46b026e4..600008ce 100644 --- a/cl/_testgo/interface/in.go +++ b/compiler/cl/_testgo/interface/in.go @@ -1,7 +1,7 @@ package main import ( - "github.com/goplus/llgo/cl/internal/foo" + "github.com/goplus/llgo/compiler/cl/_testdata/foo" ) type Game1 struct { diff --git a/compiler/cl/_testgo/interface/out.ll b/compiler/cl/_testgo/interface/out.ll new file mode 100644 index 00000000..0b7780d8 --- /dev/null +++ b/compiler/cl/_testgo/interface/out.ll @@ -0,0 +1,485 @@ +; ModuleID = 'main' +source_filename = "main" + +%main.Game1 = type { ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/abi.Method" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, ptr, ptr } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } +%"github.com/goplus/llgo/runtime/abi.Imethod" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@_llgo_main.Game1 = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [4 x i8] c"main", align 1 +@1 = private unnamed_addr constant [5 x i8] c"Game1", align 1 +@"_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Game" = linkonce global ptr null, align 8 +@2 = private unnamed_addr constant [48 x i8] c"github.com/goplus/llgo/compiler/cl/_testdata/foo", align 1 +@3 = private unnamed_addr constant [4 x i8] c"Game", align 1 +@"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw" = linkonce global ptr null, align 8 +@4 = private unnamed_addr constant [4 x i8] c"Load", align 1 +@"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 +@5 = private unnamed_addr constant [8 x i8] c"initGame", align 1 +@6 = private unnamed_addr constant [57 x i8] c"github.com/goplus/llgo/compiler/cl/_testdata/foo.initGame", align 1 +@"*_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Game" = linkonce global ptr null, align 8 +@"_llgo_struct$8pZiNl4ZxK-lZr-eyXOGJ2lgSsNDx-SmrHiChs0Nc-o" = linkonce global ptr null, align 8 +@"*_llgo_main.Game1" = linkonce global ptr null, align 8 +@_llgo_main.Game2 = linkonce global ptr null, align 8 +@7 = private unnamed_addr constant [5 x i8] c"Game2", align 1 +@8 = private unnamed_addr constant [13 x i8] c"main.initGame", align 1 +@"*_llgo_main.Game2" = linkonce global ptr null, align 8 +@"_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Gamer" = linkonce global ptr null, align 8 +@9 = private unnamed_addr constant [5 x i8] c"Gamer", align 1 +@"main.iface$sO8a1LvuUsjXwiwaC6sR9-L4DiYgiOnZi7iosyShJXg" = linkonce global ptr null, align 8 +@10 = private unnamed_addr constant [2 x i8] c"OK", align 1 +@11 = private unnamed_addr constant [4 x i8] c"FAIL", align 1 + +define void @main.Game1.Load(%main.Game1 %0) { +_llgo_0: + %1 = alloca %main.Game1, align 8 + call void @llvm.memset(ptr %1, i8 0, i64 8, i1 false) + store %main.Game1 %0, ptr %1, align 8 + %2 = getelementptr inbounds %main.Game1, ptr %1, i32 0, i32 0 + %3 = load ptr, ptr %2, align 8 + call void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Game).Load"(ptr %3) + ret void +} + +define void @main.Game1.initGame(%main.Game1 %0) { +_llgo_0: + %1 = alloca %main.Game1, align 8 + call void @llvm.memset(ptr %1, i8 0, i64 8, i1 false) + store %main.Game1 %0, ptr %1, align 8 + %2 = getelementptr inbounds %main.Game1, ptr %1, i32 0, i32 0 + %3 = load ptr, ptr %2, align 8 + call void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Game).initGame"(ptr %3) + ret void +} + +define void @"main.(*Game1).Load"(ptr %0) { +_llgo_0: + %1 = getelementptr inbounds %main.Game1, ptr %0, i32 0, i32 0 + %2 = load ptr, ptr %1, align 8 + call void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Game).Load"(ptr %2) + ret void +} + +define void @"main.(*Game1).initGame"(ptr %0) { +_llgo_0: + %1 = getelementptr inbounds %main.Game1, ptr %0, i32 0, i32 0 + %2 = load ptr, ptr %1, align 8 + call void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Game).initGame"(ptr %2) + ret void +} + +define void @"main.(*Game2).initGame"(ptr %0) { +_llgo_0: + ret void +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.init"() + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %3 = getelementptr inbounds %main.Game1, ptr %2, i32 0, i32 0 + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 0) + store ptr %4, ptr %3, align 8 + %5 = load ptr, ptr @_llgo_main.Game1, align 8 + %6 = load ptr, ptr @"*_llgo_main.Game1", align 8 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %6, 0 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %7, ptr %2, 1 + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 0) + %10 = load ptr, ptr @_llgo_main.Game2, align 8 + %11 = load ptr, ptr @"*_llgo_main.Game2", align 8 + %12 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %11, 0 + %13 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %12, ptr %9, 1 + %14 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %8, 0 + %15 = load ptr, ptr @"_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Gamer", align 8 + %16 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %15, ptr %14) + br i1 %16, label %_llgo_3, label %_llgo_4 + +_llgo_1: ; preds = %_llgo_5 + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %36) + %18 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %36, 0 + %19 = getelementptr ptr, ptr %18, i64 3 + %20 = load ptr, ptr %19, align 8 + %21 = insertvalue { ptr, ptr } undef, ptr %20, 0 + %22 = insertvalue { ptr, ptr } %21, ptr %17, 1 + %23 = extractvalue { ptr, ptr } %22, 1 + %24 = extractvalue { ptr, ptr } %22, 0 + call void %24(ptr %23) + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_5 + %25 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %13, 0 + %26 = load ptr, ptr @"_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Gamer", align 8 + %27 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %26, ptr %25) + br i1 %27, label %_llgo_6, label %_llgo_7 + +_llgo_3: ; preds = %_llgo_0 + %28 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %8, 1 + %29 = load ptr, ptr @"main.iface$sO8a1LvuUsjXwiwaC6sR9-L4DiYgiOnZi7iosyShJXg", align 8 + %30 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %29, ptr %14) + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %30, 0 + %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %31, ptr %28, 1 + %33 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %32, 0 + %34 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %33, i1 true, 1 + br label %_llgo_5 + +_llgo_4: ; preds = %_llgo_0 + br label %_llgo_5 + +_llgo_5: ; preds = %_llgo_4, %_llgo_3 + %35 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %34, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] + %36 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %35, 0 + %37 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %35, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 2 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintIface"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %36) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %37) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + br i1 %37, label %_llgo_1, label %_llgo_2 + +_llgo_6: ; preds = %_llgo_2 + %38 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %13, 1 + %39 = load ptr, ptr @"main.iface$sO8a1LvuUsjXwiwaC6sR9-L4DiYgiOnZi7iosyShJXg", align 8 + %40 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %39, ptr %25) + %41 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %40, 0 + %42 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %41, ptr %38, 1 + %43 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %42, 0 + %44 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %43, i1 true, 1 + br label %_llgo_8 + +_llgo_7: ; preds = %_llgo_2 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %45 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %44, %_llgo_6 ], [ zeroinitializer, %_llgo_7 ] + %46 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %45, 0 + %47 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %45, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintIface"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %46) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %47) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 + +declare void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Game).Load"(ptr) + +declare void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Game).initGame"(ptr) + +declare void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.init"() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +define void @"main.init$after"() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 5 }, i64 25, i64 8, i64 2, i64 2) + %1 = load ptr, ptr @_llgo_main.Game1, align 8 + %2 = icmp eq ptr %1, null + br i1 %2, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %0) + store ptr %0, ptr @_llgo_main.Game1, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 48 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 0, i64 0, i64 2) + %4 = load ptr, ptr @"_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Game", align 8 + %5 = icmp eq ptr %4, null + br i1 %5, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + store ptr %3, ptr @"_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Game", align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %6 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + %7 = icmp eq ptr %6, null + br i1 %7, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %8, 0 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, i64 0, 1 + %11 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %10, i64 0, 2 + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %11) + store ptr %12, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %13 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + br i1 %5, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %14 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %15 = icmp eq ptr %14, null + br i1 %15, label %_llgo_9, label %_llgo_10 + +_llgo_8: ; preds = %_llgo_10, %_llgo_6 + %16 = load ptr, ptr @"_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Game", align 8 + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 48 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 0, i64 0, i64 2) + %18 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Game", align 8 + %19 = icmp eq ptr %18, null + br i1 %19, label %_llgo_11, label %_llgo_12 + +_llgo_9: ; preds = %_llgo_7 + %20 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %20, 0 + %22 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %21, i64 0, 1 + %23 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %22, i64 0, 2 + %24 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %24, 0 + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25, i64 0, 1 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %26, i64 0, 2 + %28 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %23, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %27, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %28) + store ptr %28, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_7 + %29 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %30 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %29, 1 + %31 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %30, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Game).Load", 2 + %32 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %31, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Game).Load", 3 + %33 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %34 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 57 }, ptr undef, ptr undef, ptr undef }, ptr %33, 1 + %35 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %34, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Game).initGame", 2 + %36 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %35, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Game).initGame", 3 + %37 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %38 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %37, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %32, ptr %38, align 8 + %39 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %37, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %36, ptr %39, align 8 + %40 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %37, 0 + %41 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %40, i64 2, 1 + %42 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %41, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %3, ptr %13, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %42) + br label %_llgo_8 + +_llgo_11: ; preds = %_llgo_8 + %43 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %17) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %43) + store ptr %43, ptr @"*_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Game", align 8 + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_8 + %44 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Game", align 8 + %45 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 48 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 0, i64 0, i64 2) + %46 = load ptr, ptr @"_llgo_struct$8pZiNl4ZxK-lZr-eyXOGJ2lgSsNDx-SmrHiChs0Nc-o", align 8 + %47 = icmp eq ptr %46, null + br i1 %47, label %_llgo_13, label %_llgo_14 + +_llgo_13: ; preds = %_llgo_12 + %48 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %45) + %49 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, ptr %48, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) + %50 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %51 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %50, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %49, ptr %51, align 8 + %52 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %50, 0 + %53 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %52, i64 1, 1 + %54 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %53, i64 1, 2 + %55 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %54) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %55) + store ptr %55, ptr @"_llgo_struct$8pZiNl4ZxK-lZr-eyXOGJ2lgSsNDx-SmrHiChs0Nc-o", align 8 + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_12 + %56 = load ptr, ptr @"_llgo_struct$8pZiNl4ZxK-lZr-eyXOGJ2lgSsNDx-SmrHiChs0Nc-o", align 8 + br i1 %2, label %_llgo_15, label %_llgo_16 + +_llgo_15: ; preds = %_llgo_14 + %57 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %58 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %57, 1 + %59 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %58, ptr @"main.(*Game1).Load", 2 + %60 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %59, ptr @"main.(*Game1).Load", 3 + %61 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %57, 1 + %62 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %61, ptr @"main.(*Game1).Load", 2 + %63 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %62, ptr @main.Game1.Load, 3 + %64 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %65 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 57 }, ptr undef, ptr undef, ptr undef }, ptr %64, 1 + %66 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %65, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Game).initGame", 2 + %67 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %66, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Game).initGame", 3 + %68 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %69 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %68, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %63, ptr %69, align 8 + %70 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %68, 0 + %71 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %70, i64 1, 1 + %72 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %71, i64 1, 2 + %73 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %74 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %73, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %60, ptr %74, align 8 + %75 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %73, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %67, ptr %75, align 8 + %76 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %73, 0 + %77 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %76, i64 2, 1 + %78 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %77, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %56, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %72, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %78) + br label %_llgo_16 + +_llgo_16: ; preds = %_llgo_15, %_llgo_14 + %79 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 5 }, i64 25, i64 8, i64 2, i64 2) + %80 = load ptr, ptr @"*_llgo_main.Game1", align 8 + %81 = icmp eq ptr %80, null + br i1 %81, label %_llgo_17, label %_llgo_18 + +_llgo_17: ; preds = %_llgo_16 + %82 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %79) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %82) + store ptr %82, ptr @"*_llgo_main.Game1", align 8 + br label %_llgo_18 + +_llgo_18: ; preds = %_llgo_17, %_llgo_16 + %83 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 5 }, i64 25, i64 0, i64 0, i64 1) + %84 = load ptr, ptr @_llgo_main.Game2, align 8 + %85 = icmp eq ptr %84, null + br i1 %85, label %_llgo_19, label %_llgo_20 + +_llgo_19: ; preds = %_llgo_18 + store ptr %83, ptr @_llgo_main.Game2, align 8 + br label %_llgo_20 + +_llgo_20: ; preds = %_llgo_19, %_llgo_18 + %86 = load ptr, ptr @"_llgo_struct$n1H8J_3prDN3firMwPxBLVTkE5hJ9Di-AqNvaC9jczw", align 8 + br i1 %85, label %_llgo_21, label %_llgo_22 + +_llgo_21: ; preds = %_llgo_20 + %87 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %88 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %87, 1 + %89 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %88, ptr @"main.(*Game2).initGame", 2 + %90 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %89, ptr @"main.(*Game2).initGame", 3 + %91 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %92 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %91, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %90, ptr %92, align 8 + %93 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %91, 0 + %94 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %93, i64 1, 1 + %95 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %94, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %83, ptr %86, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %95) + br label %_llgo_22 + +_llgo_22: ; preds = %_llgo_21, %_llgo_20 + %96 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 5 }, i64 25, i64 0, i64 0, i64 1) + %97 = load ptr, ptr @"*_llgo_main.Game2", align 8 + %98 = icmp eq ptr %97, null + br i1 %98, label %_llgo_23, label %_llgo_24 + +_llgo_23: ; preds = %_llgo_22 + %99 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %96) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %99) + store ptr %99, ptr @"*_llgo_main.Game2", align 8 + br label %_llgo_24 + +_llgo_24: ; preds = %_llgo_23, %_llgo_22 + %100 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 48 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 5 }) + %101 = load ptr, ptr @"_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Gamer", align 8 + %102 = icmp eq ptr %101, null + br i1 %102, label %_llgo_25, label %_llgo_26 + +_llgo_25: ; preds = %_llgo_24 + store ptr %100, ptr @"_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Gamer", align 8 + br label %_llgo_26 + +_llgo_26: ; preds = %_llgo_25, %_llgo_24 + %103 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %104 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + br i1 %102, label %_llgo_27, label %_llgo_28 + +_llgo_27: ; preds = %_llgo_26 + %105 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, ptr undef }, ptr %103, 1 + %106 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 57 }, ptr undef }, ptr %104, 1 + %107 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + %108 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %107, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %105, ptr %108, align 8 + %109 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %107, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %106, ptr %109, align 8 + %110 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %107, 0 + %111 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %110, i64 2, 1 + %112 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %111, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %100, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %112) + br label %_llgo_28 + +_llgo_28: ; preds = %_llgo_27, %_llgo_26 + %113 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %114 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %115 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, ptr undef }, ptr %113, 1 + %116 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 57 }, ptr undef }, ptr %114, 1 + %117 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + %118 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %117, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %115, ptr %118, align 8 + %119 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %117, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %116, ptr %119, align 8 + %120 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %117, 0 + %121 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %120, i64 2, 1 + %122 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %121, i64 2, 2 + %123 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %122) + store ptr %123, ptr @"main.iface$sO8a1LvuUsjXwiwaC6sR9-L4DiYgiOnZi7iosyShJXg", align 8 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr, ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintIface"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testgo/invoke/in.go b/compiler/cl/_testgo/invoke/in.go similarity index 100% rename from cl/_testgo/invoke/in.go rename to compiler/cl/_testgo/invoke/in.go diff --git a/compiler/cl/_testgo/invoke/out.ll b/compiler/cl/_testgo/invoke/out.ll new file mode 100644 index 00000000..dbca6334 --- /dev/null +++ b/compiler/cl/_testgo/invoke/out.ll @@ -0,0 +1,1089 @@ +; ModuleID = 'main' +source_filename = "main" + +%main.T = type { %"github.com/goplus/llgo/runtime/internal/runtime.String" } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%main.T5 = type { i64 } +%main.T6 = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/abi.Method" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, ptr, ptr } +%"github.com/goplus/llgo/runtime/abi.Imethod" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr } + +@"main.init$guard" = global i1 false, align 1 +@0 = private unnamed_addr constant [6 x i8] c"invoke", align 1 +@1 = private unnamed_addr constant [7 x i8] c"invoke1", align 1 +@2 = private unnamed_addr constant [7 x i8] c"invoke2", align 1 +@3 = private unnamed_addr constant [7 x i8] c"invoke3", align 1 +@4 = private unnamed_addr constant [7 x i8] c"invoke4", align 1 +@5 = private unnamed_addr constant [7 x i8] c"invoke5", align 1 +@6 = private unnamed_addr constant [7 x i8] c"invoke6", align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@7 = private unnamed_addr constant [5 x i8] c"hello", align 1 +@_llgo_main.T = linkonce global ptr null, align 8 +@8 = private unnamed_addr constant [4 x i8] c"main", align 1 +@9 = private unnamed_addr constant [1 x i8] c"T", align 1 +@_llgo_string = linkonce global ptr null, align 8 +@"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ" = linkonce global ptr null, align 8 +@10 = private unnamed_addr constant [1 x i8] c"s", align 1 +@11 = private unnamed_addr constant [6 x i8] c"Invoke", align 1 +@_llgo_int = linkonce global ptr null, align 8 +@"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA" = linkonce global ptr null, align 8 +@12 = private unnamed_addr constant [6 x i8] c"Method", align 1 +@"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 +@"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0" = linkonce global ptr null, align 8 +@"*_llgo_main.T" = linkonce global ptr null, align 8 +@_llgo_main.T1 = linkonce global ptr null, align 8 +@13 = private unnamed_addr constant [2 x i8] c"T1", align 1 +@"*_llgo_main.T1" = linkonce global ptr null, align 8 +@_llgo_main.T2 = linkonce global ptr null, align 8 +@14 = private unnamed_addr constant [2 x i8] c"T2", align 1 +@_llgo_float64 = linkonce global ptr null, align 8 +@"*_llgo_main.T2" = linkonce global ptr null, align 8 +@_llgo_main.T3 = linkonce global ptr null, align 8 +@15 = private unnamed_addr constant [2 x i8] c"T3", align 1 +@_llgo_int8 = linkonce global ptr null, align 8 +@"*_llgo_main.T3" = linkonce global ptr null, align 8 +@_llgo_main.T4 = linkonce global ptr null, align 8 +@16 = private unnamed_addr constant [2 x i8] c"T4", align 1 +@"[1]_llgo_int" = linkonce global ptr null, align 8 +@"*_llgo_main.T4" = linkonce global ptr null, align 8 +@_llgo_main.T5 = linkonce global ptr null, align 8 +@17 = private unnamed_addr constant [2 x i8] c"T5", align 1 +@"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U" = linkonce global ptr null, align 8 +@18 = private unnamed_addr constant [1 x i8] c"n", align 1 +@"*_llgo_main.T5" = linkonce global ptr null, align 8 +@_llgo_main.T6 = linkonce global ptr null, align 8 +@19 = private unnamed_addr constant [2 x i8] c"T6", align 1 +@_llgo_Pointer = linkonce global ptr null, align 8 +@"main.struct$TWlEC03isGYe2Nyy2HYnOBsOYR1lIx43oIUpIyqvm4s" = linkonce global ptr null, align 8 +@20 = private unnamed_addr constant [2 x i8] c"$f", align 1 +@21 = private unnamed_addr constant [5 x i8] c"$data", align 1 +@"*_llgo_main.T6" = linkonce global ptr null, align 8 +@"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI" = linkonce global ptr null, align 8 +@22 = private unnamed_addr constant [5 x i8] c"world", align 1 +@_llgo_main.I = linkonce global ptr null, align 8 +@23 = private unnamed_addr constant [1 x i8] c"I", align 1 +@24 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@_llgo_any = linkonce global ptr null, align 8 + +define i64 @main.T.Invoke(%main.T %0) { +_llgo_0: + %1 = alloca %main.T, align 8 + call void @llvm.memset(ptr %1, i8 0, i64 16, i1 false) + store %main.T %0, ptr %1, align 8 + %2 = getelementptr inbounds %main.T, ptr %1, i32 0, i32 0 + %3 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %2, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 6 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i64 0 +} + +define i64 @"main.(*T).Invoke"(ptr %0) { +_llgo_0: + %1 = load %main.T, ptr %0, align 8 + %2 = call i64 @main.T.Invoke(%main.T %1) + ret i64 %2 +} + +define void @"main.(*T).Method"(ptr %0) { +_llgo_0: + ret void +} + +define i64 @main.T1.Invoke(i64 %0) { +_llgo_0: + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 7 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %0) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i64 1 +} + +define i64 @"main.(*T1).Invoke"(ptr %0) { +_llgo_0: + %1 = load i64, ptr %0, align 4 + %2 = call i64 @main.T1.Invoke(i64 %1) + ret i64 %2 +} + +define i64 @main.T2.Invoke(double %0) { +_llgo_0: + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 7 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %0) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i64 2 +} + +define i64 @"main.(*T2).Invoke"(ptr %0) { +_llgo_0: + %1 = load double, ptr %0, align 8 + %2 = call i64 @main.T2.Invoke(double %1) + ret i64 %2 +} + +define i64 @"main.(*T3).Invoke"(ptr %0) { +_llgo_0: + %1 = load i8, ptr %0, align 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 7 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %2 = sext i8 %1 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i64 3 +} + +define i64 @main.T4.Invoke([1 x i64] %0) { +_llgo_0: + %1 = alloca [1 x i64], align 8 + call void @llvm.memset(ptr %1, i8 0, i64 8, i1 false) + store [1 x i64] %0, ptr %1, align 4 + %2 = getelementptr inbounds i64, ptr %1, i64 0 + %3 = load i64, ptr %2, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 7 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i64 4 +} + +define i64 @"main.(*T4).Invoke"(ptr %0) { +_llgo_0: + %1 = load [1 x i64], ptr %0, align 4 + %2 = call i64 @main.T4.Invoke([1 x i64] %1) + ret i64 %2 +} + +define i64 @main.T5.Invoke(%main.T5 %0) { +_llgo_0: + %1 = alloca %main.T5, align 8 + call void @llvm.memset(ptr %1, i8 0, i64 8, i1 false) + store %main.T5 %0, ptr %1, align 4 + %2 = getelementptr inbounds %main.T5, ptr %1, i32 0, i32 0 + %3 = load i64, ptr %2, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 7 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i64 5 +} + +define i64 @"main.(*T5).Invoke"(ptr %0) { +_llgo_0: + %1 = load %main.T5, ptr %0, align 4 + %2 = call i64 @main.T5.Invoke(%main.T5 %1) + ret i64 %2 +} + +define i64 @main.T6.Invoke(%main.T6 %0) { +_llgo_0: + %1 = extractvalue %main.T6 %0, 1 + %2 = extractvalue %main.T6 %0, 0 + %3 = call i64 %2(ptr %1) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 7 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i64 6 +} + +define i64 @"main.(*T6).Invoke"(ptr %0) { +_llgo_0: + %1 = load %main.T6, ptr %0, align 8 + %2 = call i64 @main.T6.Invoke(%main.T6 %1) + ret i64 %2 +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %0) + %2 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %0, 0 + %3 = getelementptr ptr, ptr %2, i64 3 + %4 = load ptr, ptr %3, align 8 + %5 = insertvalue { ptr, ptr } undef, ptr %4, 0 + %6 = insertvalue { ptr, ptr } %5, ptr %1, 1 + %7 = extractvalue { ptr, ptr } %6, 1 + %8 = extractvalue { ptr, ptr } %6, 0 + %9 = call i64 %8(ptr %7) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %9) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + %3 = getelementptr inbounds %main.T, ptr %2, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 5 }, ptr %3, align 8 + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + store i64 100, ptr %4, align 4 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + store double 1.001000e+02, ptr %5, align 8 + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 1) + store i8 127, ptr %6, align 1 + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %8 = getelementptr inbounds i64, ptr %7, i64 0 + store i64 200, ptr %8, align 4 + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %10 = getelementptr inbounds %main.T5, ptr %9, i32 0, i32 0 + store i64 300, ptr %10, align 4 + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + store %main.T6 { ptr @"__llgo_stub.main.main$1", ptr null }, ptr %11, align 8 + %12 = load %main.T, ptr %2, align 8 + %13 = load ptr, ptr @_llgo_main.T, align 8 + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %main.T %12, ptr %14, align 8 + %15 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %16 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %16, ptr %13) + %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %17, 0 + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %18, ptr %14, 1 + call void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %19) + %20 = load ptr, ptr @"*_llgo_main.T", align 8 + %21 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %22 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %21, ptr %20) + %23 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %22, 0 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %23, ptr %2, 1 + call void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %24) + %25 = load i64, ptr %4, align 4 + %26 = load ptr, ptr @_llgo_main.T1, align 8 + %27 = inttoptr i64 %25 to ptr + %28 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %29 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %28, ptr %26) + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %29, 0 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %30, ptr %27, 1 + call void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %31) + %32 = load ptr, ptr @"*_llgo_main.T1", align 8 + %33 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %34 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %33, ptr %32) + %35 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %34, 0 + %36 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %35, ptr %4, 1 + call void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %36) + %37 = load double, ptr %5, align 8 + %38 = load ptr, ptr @_llgo_main.T2, align 8 + %39 = bitcast double %37 to i64 + %40 = inttoptr i64 %39 to ptr + %41 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %42 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %41, ptr %38) + %43 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %42, 0 + %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %43, ptr %40, 1 + call void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %44) + %45 = load ptr, ptr @"*_llgo_main.T2", align 8 + %46 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %46, ptr %45) + %48 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %47, 0 + %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %48, ptr %5, 1 + call void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %49) + %50 = load ptr, ptr @_llgo_main.T3, align 8 + %51 = load ptr, ptr @"*_llgo_main.T3", align 8 + %52 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %53 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %52, ptr %51) + %54 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %53, 0 + %55 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %54, ptr %6, 1 + call void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %55) + %56 = load [1 x i64], ptr %7, align 4 + %57 = load ptr, ptr @_llgo_main.T4, align 8 + %58 = extractvalue [1 x i64] %56, 0 + %59 = inttoptr i64 %58 to ptr + %60 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %61 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %60, ptr %57) + %62 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %61, 0 + %63 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %62, ptr %59, 1 + call void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %63) + %64 = load ptr, ptr @"*_llgo_main.T4", align 8 + %65 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %66 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %65, ptr %64) + %67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %66, 0 + %68 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %67, ptr %7, 1 + call void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %68) + %69 = load %main.T5, ptr %9, align 4 + %70 = load ptr, ptr @_llgo_main.T5, align 8 + %71 = extractvalue %main.T5 %69, 0 + %72 = inttoptr i64 %71 to ptr + %73 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %74 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %73, ptr %70) + %75 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %74, 0 + %76 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %75, ptr %72, 1 + call void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %76) + %77 = load ptr, ptr @"*_llgo_main.T5", align 8 + %78 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %79 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %78, ptr %77) + %80 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %79, 0 + %81 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %80, ptr %9, 1 + call void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %81) + %82 = load %main.T6, ptr %11, align 8 + %83 = load ptr, ptr @_llgo_main.T6, align 8 + %84 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %main.T6 %82, ptr %84, align 8 + %85 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %86 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %85, ptr %83) + %87 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %86, 0 + %88 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %87, ptr %84, 1 + call void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %88) + %89 = load ptr, ptr @"*_llgo_main.T6", align 8 + %90 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %91 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %90, ptr %89) + %92 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %91, 0 + %93 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %92, ptr %11, 1 + call void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %93) + %94 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) + %95 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %96 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %95, ptr %94) + %97 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %96, 0 + %98 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %97, ptr null, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintIface"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %98) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintIface"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %99 = load ptr, ptr @"*_llgo_main.T", align 8 + %100 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %101 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %102 = load ptr, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 + %103 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %102, ptr %99) + %104 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %103, 0 + %105 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %104, ptr %2, 1 + %106 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %105) + %107 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %105, 1 + %108 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %109 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %108, ptr %106) + %110 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %109, 0 + %111 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %110, ptr %107, 1 + call void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %111) + %112 = alloca %main.T, align 8 + call void @llvm.memset(ptr %112, i8 0, i64 16, i1 false) + %113 = getelementptr inbounds %main.T, ptr %112, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 5 }, ptr %113, align 8 + %114 = load %main.T, ptr %112, align 8 + %115 = load ptr, ptr @_llgo_main.T, align 8 + %116 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %main.T %114, ptr %116, align 8 + %117 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %115, 0 + %118 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %117, ptr %116, 1 + %119 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %118, 0 + %120 = load ptr, ptr @_llgo_main.I, align 8 + %121 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %120, ptr %119) + br i1 %121, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %122 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %118, 1 + %123 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %124 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %123, ptr %119) + %125 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %124, 0 + %126 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %125, ptr %122, 1 + call void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %126) + %127 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %118, 0 + %128 = load ptr, ptr @_llgo_any, align 8 + %129 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %128, ptr %127) + br i1 %129, label %_llgo_3, label %_llgo_4 + +_llgo_2: ; preds = %_llgo_0 + %130 = load ptr, ptr @_llgo_string, align 8 + %131 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 21 }, ptr %131, align 8 + %132 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %130, 0 + %133 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %132, ptr %131, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %133) + unreachable + +_llgo_3: ; preds = %_llgo_1 + %134 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %118, 1 + %135 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %127, 0 + %136 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %135, ptr %134, 1 + %137 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %136, 0 + %138 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %139 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %138, ptr %137) + br i1 %139, label %_llgo_5, label %_llgo_6 + +_llgo_4: ; preds = %_llgo_1 + %140 = load ptr, ptr @_llgo_string, align 8 + %141 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 21 }, ptr %141, align 8 + %142 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %140, 0 + %143 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %142, ptr %141, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %143) + unreachable + +_llgo_5: ; preds = %_llgo_3 + %144 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %136, 1 + %145 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %146 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %145, ptr %137) + %147 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %146, 0 + %148 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %147, ptr %144, 1 + call void @main.invoke(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %148) + ret i32 0 + +_llgo_6: ; preds = %_llgo_3 + %149 = load ptr, ptr @_llgo_string, align 8 + %150 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 21 }, ptr %150, align 8 + %151 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %149, 0 + %152 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %151, ptr %150, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %152) + unreachable +} + +define i64 @"main.main$1"() { +_llgo_0: + ret i64 400 +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +define linkonce i64 @"__llgo_stub.main.main$1"(ptr %0) { +_llgo_0: + %1 = tail call i64 @"main.main$1"() + ret i64 %1 +} + +define void @"main.init$after"() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 1 }, i64 25, i64 16, i64 1, i64 2) + %1 = load ptr, ptr @_llgo_main.T, align 8 + %2 = icmp eq ptr %1, null + br i1 %2, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + store ptr %0, ptr @_llgo_main.T, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @_llgo_string, align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %5, ptr @_llgo_string, align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %6 = load ptr, ptr @_llgo_string, align 8 + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %8 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 1 }, ptr %7, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %10 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %9, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %8, ptr %10, align 8 + %11 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %9, 0 + %12 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %11, i64 1, 1 + %13 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %12, i64 1, 2 + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %13) + store ptr %14, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + %15 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + br i1 %2, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %16 = load ptr, ptr @_llgo_int, align 8 + %17 = icmp eq ptr %16, null + br i1 %17, label %_llgo_7, label %_llgo_8 + +_llgo_6: ; preds = %_llgo_12, %_llgo_4 + %18 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %19 = load ptr, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + %20 = icmp eq ptr %19, null + br i1 %20, label %_llgo_13, label %_llgo_14 + +_llgo_7: ; preds = %_llgo_5 + %21 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %21, ptr @_llgo_int, align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_5 + %22 = load ptr, ptr @_llgo_int, align 8 + %23 = load ptr, ptr @_llgo_int, align 8 + %24 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %25 = icmp eq ptr %24, null + br i1 %25, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %26, 0 + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %27, i64 0, 1 + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %28, i64 0, 2 + %30 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %31 = getelementptr ptr, ptr %30, i64 0 + store ptr %23, ptr %31, align 8 + %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %30, 0 + %33 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32, i64 1, 1 + %34 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %33, i64 1, 2 + %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %29, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %34, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %35) + store ptr %35, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_8 + %36 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %37 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %36, 1 + %38 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %37, ptr @"main.(*T).Invoke", 2 + %39 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %38, ptr @"main.(*T).Invoke", 3 + %40 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %36, 1 + %41 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %40, ptr @"main.(*T).Invoke", 2 + %42 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %41, ptr @main.T.Invoke, 3 + %43 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %44 = icmp eq ptr %43, null + br i1 %44, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + %45 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %45, 0 + %47 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %46, i64 0, 1 + %48 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %47, i64 0, 2 + %49 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %50 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %49, 0 + %51 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %50, i64 0, 1 + %52 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %51, i64 0, 2 + %53 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %48, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %52, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %53) + store ptr %53, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_10 + %54 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %55 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %54, 1 + %56 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %55, ptr @"main.(*T).Method", 2 + %57 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %56, ptr @"main.(*T).Method", 3 + %58 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %59 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %58, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %42, ptr %59, align 8 + %60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %58, 0 + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, i64 1, 1 + %62 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61, i64 1, 2 + %63 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %64 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %63, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %39, ptr %64, align 8 + %65 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %63, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %57, ptr %65, align 8 + %66 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %63, 0 + %67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %66, i64 2, 1 + %68 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %67, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %15, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %62, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %68) + br label %_llgo_6 + +_llgo_13: ; preds = %_llgo_6 + %69 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef }, ptr %18, 1 + %70 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %71 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %70, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %69, ptr %71, align 8 + %72 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %70, 0 + %73 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %72, i64 1, 1 + %74 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %73, i64 1, 2 + %75 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %74) + store ptr %75, ptr @"_llgo_iface$uRUteI7wmSy7y7ODhGzk0FdDaxGKMhVSSu6HZEv9aa0", align 8 + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_6 + %76 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 1 }, i64 25, i64 16, i64 1, i64 2) + %77 = load ptr, ptr @"*_llgo_main.T", align 8 + %78 = icmp eq ptr %77, null + br i1 %78, label %_llgo_15, label %_llgo_16 + +_llgo_15: ; preds = %_llgo_14 + %79 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %76) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %79) + store ptr %79, ptr @"*_llgo_main.T", align 8 + br label %_llgo_16 + +_llgo_16: ; preds = %_llgo_15, %_llgo_14 + %80 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 2 }, i64 2, i64 8, i64 1, i64 1) + %81 = load ptr, ptr @_llgo_main.T1, align 8 + %82 = icmp eq ptr %81, null + br i1 %82, label %_llgo_17, label %_llgo_18 + +_llgo_17: ; preds = %_llgo_16 + store ptr %80, ptr @_llgo_main.T1, align 8 + br label %_llgo_18 + +_llgo_18: ; preds = %_llgo_17, %_llgo_16 + %83 = load ptr, ptr @_llgo_int, align 8 + br i1 %82, label %_llgo_19, label %_llgo_20 + +_llgo_19: ; preds = %_llgo_18 + %84 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %85 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %84, 1 + %86 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %85, ptr @"main.(*T1).Invoke", 2 + %87 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %86, ptr @"main.(*T1).Invoke", 3 + %88 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %84, 1 + %89 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %88, ptr @"main.(*T1).Invoke", 2 + %90 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %89, ptr @main.T1.Invoke, 3 + %91 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %92 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %91, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %90, ptr %92, align 8 + %93 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %91, 0 + %94 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %93, i64 1, 1 + %95 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %94, i64 1, 2 + %96 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %97 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %96, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %87, ptr %97, align 8 + %98 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %96, 0 + %99 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %98, i64 1, 1 + %100 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %99, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %80, ptr %83, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %95, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %100) + br label %_llgo_20 + +_llgo_20: ; preds = %_llgo_19, %_llgo_18 + %101 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 2 }, i64 2, i64 8, i64 1, i64 1) + %102 = load ptr, ptr @"*_llgo_main.T1", align 8 + %103 = icmp eq ptr %102, null + br i1 %103, label %_llgo_21, label %_llgo_22 + +_llgo_21: ; preds = %_llgo_20 + %104 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %101) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %104) + store ptr %104, ptr @"*_llgo_main.T1", align 8 + br label %_llgo_22 + +_llgo_22: ; preds = %_llgo_21, %_llgo_20 + %105 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @14, i64 2 }, i64 14, i64 8, i64 1, i64 1) + %106 = load ptr, ptr @_llgo_main.T2, align 8 + %107 = icmp eq ptr %106, null + br i1 %107, label %_llgo_23, label %_llgo_24 + +_llgo_23: ; preds = %_llgo_22 + store ptr %105, ptr @_llgo_main.T2, align 8 + br label %_llgo_24 + +_llgo_24: ; preds = %_llgo_23, %_llgo_22 + %108 = load ptr, ptr @_llgo_float64, align 8 + %109 = icmp eq ptr %108, null + br i1 %109, label %_llgo_25, label %_llgo_26 + +_llgo_25: ; preds = %_llgo_24 + %110 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 46) + store ptr %110, ptr @_llgo_float64, align 8 + br label %_llgo_26 + +_llgo_26: ; preds = %_llgo_25, %_llgo_24 + %111 = load ptr, ptr @_llgo_float64, align 8 + br i1 %107, label %_llgo_27, label %_llgo_28 + +_llgo_27: ; preds = %_llgo_26 + %112 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %113 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %112, 1 + %114 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %113, ptr @"main.(*T2).Invoke", 2 + %115 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %114, ptr @"main.(*T2).Invoke", 3 + %116 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %112, 1 + %117 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %116, ptr @"main.(*T2).Invoke", 2 + %118 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %117, ptr @main.T2.Invoke, 3 + %119 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %120 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %119, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %118, ptr %120, align 8 + %121 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %119, 0 + %122 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %121, i64 1, 1 + %123 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %122, i64 1, 2 + %124 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %125 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %124, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %115, ptr %125, align 8 + %126 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %124, 0 + %127 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %126, i64 1, 1 + %128 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %127, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %105, ptr %111, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %123, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %128) + br label %_llgo_28 + +_llgo_28: ; preds = %_llgo_27, %_llgo_26 + %129 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @14, i64 2 }, i64 14, i64 8, i64 1, i64 1) + %130 = load ptr, ptr @"*_llgo_main.T2", align 8 + %131 = icmp eq ptr %130, null + br i1 %131, label %_llgo_29, label %_llgo_30 + +_llgo_29: ; preds = %_llgo_28 + %132 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %129) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %132) + store ptr %132, ptr @"*_llgo_main.T2", align 8 + br label %_llgo_30 + +_llgo_30: ; preds = %_llgo_29, %_llgo_28 + %133 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @15, i64 2 }, i64 3, i64 1, i64 0, i64 1) + %134 = load ptr, ptr @_llgo_main.T3, align 8 + %135 = icmp eq ptr %134, null + br i1 %135, label %_llgo_31, label %_llgo_32 + +_llgo_31: ; preds = %_llgo_30 + store ptr %133, ptr @_llgo_main.T3, align 8 + br label %_llgo_32 + +_llgo_32: ; preds = %_llgo_31, %_llgo_30 + %136 = load ptr, ptr @_llgo_int8, align 8 + %137 = icmp eq ptr %136, null + br i1 %137, label %_llgo_33, label %_llgo_34 + +_llgo_33: ; preds = %_llgo_32 + %138 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 35) + store ptr %138, ptr @_llgo_int8, align 8 + br label %_llgo_34 + +_llgo_34: ; preds = %_llgo_33, %_llgo_32 + %139 = load ptr, ptr @_llgo_int8, align 8 + br i1 %135, label %_llgo_35, label %_llgo_36 + +_llgo_35: ; preds = %_llgo_34 + %140 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %141 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %140, 1 + %142 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %141, ptr @"main.(*T3).Invoke", 2 + %143 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %142, ptr @"main.(*T3).Invoke", 3 + %144 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %145 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %144, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %143, ptr %145, align 8 + %146 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %144, 0 + %147 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %146, i64 1, 1 + %148 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %147, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %133, ptr %139, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %148) + br label %_llgo_36 + +_llgo_36: ; preds = %_llgo_35, %_llgo_34 + %149 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @15, i64 2 }, i64 3, i64 1, i64 0, i64 1) + %150 = load ptr, ptr @"*_llgo_main.T3", align 8 + %151 = icmp eq ptr %150, null + br i1 %151, label %_llgo_37, label %_llgo_38 + +_llgo_37: ; preds = %_llgo_36 + %152 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %149) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %152) + store ptr %152, ptr @"*_llgo_main.T3", align 8 + br label %_llgo_38 + +_llgo_38: ; preds = %_llgo_37, %_llgo_36 + %153 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @16, i64 2 }, i64 17, i64 8, i64 1, i64 1) + %154 = load ptr, ptr @_llgo_main.T4, align 8 + %155 = icmp eq ptr %154, null + br i1 %155, label %_llgo_39, label %_llgo_40 + +_llgo_39: ; preds = %_llgo_38 + store ptr %153, ptr @_llgo_main.T4, align 8 + br label %_llgo_40 + +_llgo_40: ; preds = %_llgo_39, %_llgo_38 + %156 = load ptr, ptr @"[1]_llgo_int", align 8 + %157 = icmp eq ptr %156, null + br i1 %157, label %_llgo_41, label %_llgo_42 + +_llgo_41: ; preds = %_llgo_40 + %158 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %159 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 1, ptr %158) + store ptr %159, ptr @"[1]_llgo_int", align 8 + br label %_llgo_42 + +_llgo_42: ; preds = %_llgo_41, %_llgo_40 + %160 = load ptr, ptr @"[1]_llgo_int", align 8 + br i1 %155, label %_llgo_43, label %_llgo_44 + +_llgo_43: ; preds = %_llgo_42 + %161 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %162 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %161, 1 + %163 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %162, ptr @"main.(*T4).Invoke", 2 + %164 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %163, ptr @"main.(*T4).Invoke", 3 + %165 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %161, 1 + %166 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %165, ptr @"main.(*T4).Invoke", 2 + %167 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %166, ptr @main.T4.Invoke, 3 + %168 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %169 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %168, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %167, ptr %169, align 8 + %170 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %168, 0 + %171 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %170, i64 1, 1 + %172 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %171, i64 1, 2 + %173 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %174 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %173, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %164, ptr %174, align 8 + %175 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %173, 0 + %176 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %175, i64 1, 1 + %177 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %176, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %153, ptr %160, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %172, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %177) + br label %_llgo_44 + +_llgo_44: ; preds = %_llgo_43, %_llgo_42 + %178 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @16, i64 2 }, i64 17, i64 8, i64 1, i64 1) + %179 = load ptr, ptr @"*_llgo_main.T4", align 8 + %180 = icmp eq ptr %179, null + br i1 %180, label %_llgo_45, label %_llgo_46 + +_llgo_45: ; preds = %_llgo_44 + %181 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %178) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %181) + store ptr %181, ptr @"*_llgo_main.T4", align 8 + br label %_llgo_46 + +_llgo_46: ; preds = %_llgo_45, %_llgo_44 + %182 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 2 }, i64 25, i64 8, i64 1, i64 1) + %183 = load ptr, ptr @_llgo_main.T5, align 8 + %184 = icmp eq ptr %183, null + br i1 %184, label %_llgo_47, label %_llgo_48 + +_llgo_47: ; preds = %_llgo_46 + store ptr %182, ptr @_llgo_main.T5, align 8 + br label %_llgo_48 + +_llgo_48: ; preds = %_llgo_47, %_llgo_46 + %185 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %186 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 1 }, ptr %185, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %187 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %188 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %187, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %186, ptr %188, align 8 + %189 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %187, 0 + %190 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %189, i64 1, 1 + %191 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %190, i64 1, 2 + %192 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %191) + store ptr %192, ptr @"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U", align 8 + %193 = load ptr, ptr @"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U", align 8 + br i1 %184, label %_llgo_49, label %_llgo_50 + +_llgo_49: ; preds = %_llgo_48 + %194 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %195 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %194, 1 + %196 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %195, ptr @"main.(*T5).Invoke", 2 + %197 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %196, ptr @"main.(*T5).Invoke", 3 + %198 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %194, 1 + %199 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %198, ptr @"main.(*T5).Invoke", 2 + %200 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %199, ptr @main.T5.Invoke, 3 + %201 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %202 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %201, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %200, ptr %202, align 8 + %203 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %201, 0 + %204 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %203, i64 1, 1 + %205 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %204, i64 1, 2 + %206 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %207 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %206, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %197, ptr %207, align 8 + %208 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %206, 0 + %209 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %208, i64 1, 1 + %210 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %209, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %182, ptr %193, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %205, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %210) + br label %_llgo_50 + +_llgo_50: ; preds = %_llgo_49, %_llgo_48 + %211 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 2 }, i64 25, i64 8, i64 1, i64 1) + %212 = load ptr, ptr @"*_llgo_main.T5", align 8 + %213 = icmp eq ptr %212, null + br i1 %213, label %_llgo_51, label %_llgo_52 + +_llgo_51: ; preds = %_llgo_50 + %214 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %211) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %214) + store ptr %214, ptr @"*_llgo_main.T5", align 8 + br label %_llgo_52 + +_llgo_52: ; preds = %_llgo_51, %_llgo_50 + %215 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 2 }, i64 25, i64 24, i64 1, i64 1) + %216 = load ptr, ptr @_llgo_main.T6, align 8 + %217 = icmp eq ptr %216, null + br i1 %217, label %_llgo_53, label %_llgo_54 + +_llgo_53: ; preds = %_llgo_52 + store ptr %215, ptr @_llgo_main.T6, align 8 + br label %_llgo_54 + +_llgo_54: ; preds = %_llgo_53, %_llgo_52 + %218 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %219 = load ptr, ptr @_llgo_Pointer, align 8 + %220 = icmp eq ptr %219, null + br i1 %220, label %_llgo_55, label %_llgo_56 + +_llgo_55: ; preds = %_llgo_54 + %221 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %221) + store ptr %221, ptr @_llgo_Pointer, align 8 + br label %_llgo_56 + +_llgo_56: ; preds = %_llgo_55, %_llgo_54 + %222 = load ptr, ptr @_llgo_Pointer, align 8 + %223 = load ptr, ptr @_llgo_int, align 8 + %224 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %225 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %224, 0 + %226 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %225, i64 0, 1 + %227 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %226, i64 0, 2 + %228 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %229 = getelementptr ptr, ptr %228, i64 0 + store ptr %223, ptr %229, align 8 + %230 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %228, 0 + %231 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %230, i64 1, 1 + %232 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %231, i64 1, 2 + %233 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %227, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %232, i1 false) + %234 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @20, i64 2 }, ptr %233, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %235 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %236 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 5 }, ptr %235, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %237 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %238 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %237, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %234, ptr %238, align 8 + %239 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %237, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %236, ptr %239, align 8 + %240 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %237, 0 + %241 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %240, i64 2, 1 + %242 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %241, i64 2, 2 + %243 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %242) + store ptr %243, ptr @"main.struct$TWlEC03isGYe2Nyy2HYnOBsOYR1lIx43oIUpIyqvm4s", align 8 + %244 = load ptr, ptr @"main.struct$TWlEC03isGYe2Nyy2HYnOBsOYR1lIx43oIUpIyqvm4s", align 8 + br i1 %217, label %_llgo_57, label %_llgo_58 + +_llgo_57: ; preds = %_llgo_56 + %245 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %246 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %245, 1 + %247 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %246, ptr @"main.(*T6).Invoke", 2 + %248 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %247, ptr @"main.(*T6).Invoke", 3 + %249 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %245, 1 + %250 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %249, ptr @"main.(*T6).Invoke", 2 + %251 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %250, ptr @main.T6.Invoke, 3 + %252 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %253 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %252, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %251, ptr %253, align 8 + %254 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %252, 0 + %255 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %254, i64 1, 1 + %256 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %255, i64 1, 2 + %257 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %258 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %257, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %248, ptr %258, align 8 + %259 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %257, 0 + %260 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %259, i64 1, 1 + %261 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %260, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %215, ptr %244, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %256, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %261) + br label %_llgo_58 + +_llgo_58: ; preds = %_llgo_57, %_llgo_56 + %262 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 2 }, i64 25, i64 24, i64 1, i64 1) + %263 = load ptr, ptr @"*_llgo_main.T6", align 8 + %264 = icmp eq ptr %263, null + br i1 %264, label %_llgo_59, label %_llgo_60 + +_llgo_59: ; preds = %_llgo_58 + %265 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %262) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %265) + store ptr %265, ptr @"*_llgo_main.T6", align 8 + br label %_llgo_60 + +_llgo_60: ; preds = %_llgo_59, %_llgo_58 + %266 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %267 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %268 = load ptr, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 + %269 = icmp eq ptr %268, null + br i1 %269, label %_llgo_61, label %_llgo_62 + +_llgo_61: ; preds = %_llgo_60 + %270 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef }, ptr %266, 1 + %271 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 6 }, ptr undef }, ptr %267, 1 + %272 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + %273 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %272, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %270, ptr %273, align 8 + %274 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %272, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %271, ptr %274, align 8 + %275 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %272, 0 + %276 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %275, i64 2, 1 + %277 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %276, i64 2, 2 + %278 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %277) + store ptr %278, ptr @"_llgo_iface$jwmSdgh1zvY_TDIgLzCkvkbiyrdwl9N806DH0JGcyMI", align 8 + br label %_llgo_62 + +_llgo_62: ; preds = %_llgo_61, %_llgo_60 + %279 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 1 }) + %280 = load ptr, ptr @_llgo_main.I, align 8 + %281 = icmp eq ptr %280, null + br i1 %281, label %_llgo_63, label %_llgo_64 + +_llgo_63: ; preds = %_llgo_62 + store ptr %279, ptr @_llgo_main.I, align 8 + br label %_llgo_64 + +_llgo_64: ; preds = %_llgo_63, %_llgo_62 + %282 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + br i1 %281, label %_llgo_65, label %_llgo_66 + +_llgo_65: ; preds = %_llgo_64 + %283 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef }, ptr %282, 1 + %284 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %285 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %284, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %283, ptr %285, align 8 + %286 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %284, 0 + %287 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %286, i64 1, 1 + %288 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %287, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %279, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %288) + br label %_llgo_66 + +_llgo_66: ; preds = %_llgo_65, %_llgo_64 + %289 = load ptr, ptr @_llgo_any, align 8 + %290 = icmp eq ptr %289, null + br i1 %290, label %_llgo_67, label %_llgo_68 + +_llgo_67: ; preds = %_llgo_66 + %291 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %292 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %291, 0 + %293 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %292, i64 0, 1 + %294 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %293, i64 0, 2 + %295 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %294) + store ptr %295, ptr @_llgo_any, align 8 + br label %_llgo_68 + +_llgo_68: ; preds = %_llgo_67, %_llgo_66 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice", i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintIface"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr, ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testgo/makeslice/in.go b/compiler/cl/_testgo/makeslice/in.go similarity index 100% rename from cl/_testgo/makeslice/in.go rename to compiler/cl/_testgo/makeslice/in.go diff --git a/cl/_testgo/makeslice/out.ll b/compiler/cl/_testgo/makeslice/out.ll similarity index 100% rename from cl/_testgo/makeslice/out.ll rename to compiler/cl/_testgo/makeslice/out.ll diff --git a/cl/_testgo/multiret/in.go b/compiler/cl/_testgo/multiret/in.go similarity index 100% rename from cl/_testgo/multiret/in.go rename to compiler/cl/_testgo/multiret/in.go diff --git a/cl/_testgo/multiret/out.ll b/compiler/cl/_testgo/multiret/out.ll similarity index 61% rename from cl/_testgo/multiret/out.ll rename to compiler/cl/_testgo/multiret/out.ll index b0e90f3f..887bdbf1 100644 --- a/cl/_testgo/multiret/out.ll +++ b/compiler/cl/_testgo/multiret/out.ll @@ -32,22 +32,22 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call { i64, double } @main.foo(double 2.000000e+00) %3 = extractvalue { i64, double } %2, 0 %4 = extractvalue { i64, double } %2, 1 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double %4) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) -declare void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double) diff --git a/cl/_testgo/print/in.go b/compiler/cl/_testgo/print/in.go similarity index 100% rename from cl/_testgo/print/in.go rename to compiler/cl/_testgo/print/in.go diff --git a/cl/_testgo/print/out.ll b/compiler/cl/_testgo/print/out.ll similarity index 50% rename from cl/_testgo/print/out.ll rename to compiler/cl/_testgo/print/out.ll index 5d98f8a7..adc3887e 100644 --- a/cl/_testgo/print/out.ll +++ b/compiler/cl/_testgo/print/out.ll @@ -22,19 +22,19 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 46) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 46) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 46) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 46) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) -declare void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64) diff --git a/cl/_testgo/reader/in.go b/compiler/cl/_testgo/reader/in.go similarity index 100% rename from cl/_testgo/reader/in.go rename to compiler/cl/_testgo/reader/in.go diff --git a/compiler/cl/_testgo/reader/out.ll b/compiler/cl/_testgo/reader/out.ll new file mode 100644 index 00000000..cb8ebdc1 --- /dev/null +++ b/compiler/cl/_testgo/reader/out.ll @@ -0,0 +1,1797 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } +%main.nopCloserWriterTo = type { %"github.com/goplus/llgo/runtime/internal/runtime.iface" } +%main.nopCloser = type { %"github.com/goplus/llgo/runtime/internal/runtime.iface" } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%main.errorString = type { %"github.com/goplus/llgo/runtime/internal/runtime.String" } +%main.stringReader = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64 } +%"github.com/goplus/llgo/runtime/abi.Imethod" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } +%"github.com/goplus/llgo/runtime/abi.Method" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, ptr, ptr } + +@main.EOF = global %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer, align 8 +@main.ErrShortWrite = global %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer, align 8 +@"main.init$guard" = global i1 false, align 1 +@_llgo_main.WriterTo = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [4 x i8] c"main", align 1 +@1 = private unnamed_addr constant [8 x i8] c"WriterTo", align 1 +@_llgo_main.Writer = linkonce global ptr null, align 8 +@2 = private unnamed_addr constant [6 x i8] c"Writer", align 1 +@_llgo_byte = linkonce global ptr null, align 8 +@"[]_llgo_byte" = linkonce global ptr null, align 8 +@_llgo_int = linkonce global ptr null, align 8 +@_llgo_error = linkonce global ptr null, align 8 +@3 = private unnamed_addr constant [5 x i8] c"error", align 1 +@_llgo_string = linkonce global ptr null, align 8 +@"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 +@4 = private unnamed_addr constant [5 x i8] c"Error", align 1 +@"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY" = linkonce global ptr null, align 8 +@5 = private unnamed_addr constant [5 x i8] c"Write", align 1 +@_llgo_int64 = linkonce global ptr null, align 8 +@"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk" = linkonce global ptr null, align 8 +@6 = private unnamed_addr constant [7 x i8] c"WriteTo", align 1 +@"_llgo_iface$eN81k1zqixGTyagHw_4nqH4mGfwwehTOCTXUlbT9kzk" = linkonce global ptr null, align 8 +@_llgo_main.nopCloserWriterTo = linkonce global ptr null, align 8 +@7 = private unnamed_addr constant [17 x i8] c"nopCloserWriterTo", align 1 +@_llgo_main.Reader = linkonce global ptr null, align 8 +@8 = private unnamed_addr constant [6 x i8] c"Reader", align 1 +@9 = private unnamed_addr constant [4 x i8] c"Read", align 1 +@"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y" = linkonce global ptr null, align 8 +@10 = private unnamed_addr constant [5 x i8] c"Close", align 1 +@"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w" = linkonce global ptr null, align 8 +@"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I" = linkonce global ptr null, align 8 +@_llgo_main.nopCloser = linkonce global ptr null, align 8 +@11 = private unnamed_addr constant [9 x i8] c"nopCloser", align 1 +@_llgo_main.StringWriter = linkonce global ptr null, align 8 +@12 = private unnamed_addr constant [12 x i8] c"StringWriter", align 1 +@"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw" = linkonce global ptr null, align 8 +@13 = private unnamed_addr constant [11 x i8] c"WriteString", align 1 +@"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU" = linkonce global ptr null, align 8 +@14 = private unnamed_addr constant [3 x i8] c"EOF", align 1 +@15 = private unnamed_addr constant [11 x i8] c"short write", align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@16 = private unnamed_addr constant [11 x i8] c"hello world", align 1 +@_llgo_main.stringReader = linkonce global ptr null, align 8 +@17 = private unnamed_addr constant [12 x i8] c"stringReader", align 1 +@"main.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk" = linkonce global ptr null, align 8 +@18 = private unnamed_addr constant [1 x i8] c"s", align 1 +@19 = private unnamed_addr constant [1 x i8] c"i", align 1 +@20 = private unnamed_addr constant [8 x i8] c"prevRune", align 1 +@21 = private unnamed_addr constant [3 x i8] c"Len", align 1 +@"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA" = linkonce global ptr null, align 8 +@22 = private unnamed_addr constant [6 x i8] c"ReadAt", align 1 +@"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c" = linkonce global ptr null, align 8 +@23 = private unnamed_addr constant [8 x i8] c"ReadByte", align 1 +@"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM" = linkonce global ptr null, align 8 +@24 = private unnamed_addr constant [8 x i8] c"ReadRune", align 1 +@_llgo_rune = linkonce global ptr null, align 8 +@"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU" = linkonce global ptr null, align 8 +@25 = private unnamed_addr constant [4 x i8] c"Seek", align 1 +@"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms" = linkonce global ptr null, align 8 +@26 = private unnamed_addr constant [4 x i8] c"Size", align 1 +@"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug" = linkonce global ptr null, align 8 +@27 = private unnamed_addr constant [10 x i8] c"UnreadByte", align 1 +@28 = private unnamed_addr constant [10 x i8] c"UnreadRune", align 1 +@"*_llgo_main.stringReader" = linkonce global ptr null, align 8 +@"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE" = linkonce global ptr null, align 8 +@_llgo_main.errorString = linkonce global ptr null, align 8 +@29 = private unnamed_addr constant [11 x i8] c"errorString", align 1 +@"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ" = linkonce global ptr null, align 8 +@"*_llgo_main.errorString" = linkonce global ptr null, align 8 +@"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU" = linkonce global ptr null, align 8 +@30 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@31 = private unnamed_addr constant [37 x i8] c"stringsReader.ReadAt: negative offset", align 1 +@32 = private unnamed_addr constant [34 x i8] c"stringsReader.Seek: invalid whence", align 1 +@33 = private unnamed_addr constant [37 x i8] c"stringsReader.Seek: negative position", align 1 +@34 = private unnamed_addr constant [48 x i8] c"stringsReader.UnreadByte: at beginning of string", align 1 +@35 = private unnamed_addr constant [49 x i8] c"strings.Reader.UnreadRune: at beginning of string", align 1 +@36 = private unnamed_addr constant [62 x i8] c"strings.Reader.UnreadRune: previous operation was not ReadRune", align 1 +@37 = private unnamed_addr constant [48 x i8] c"stringsReader.WriteTo: invalid WriteString count", align 1 + +define %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.NopCloser(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %0) + %2 = load ptr, ptr @_llgo_main.WriterTo, align 8 + %3 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %2, ptr %1) + br i1 %3, label %_llgo_3, label %_llgo_4 + +_llgo_1: ; preds = %_llgo_5 + %4 = alloca %main.nopCloserWriterTo, align 8 + call void @llvm.memset(ptr %4, i8 0, i64 16, i1 false) + %5 = getelementptr inbounds %main.nopCloserWriterTo, ptr %4, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %0, ptr %5, align 8 + %6 = load %main.nopCloserWriterTo, ptr %4, align 8 + %7 = load ptr, ptr @_llgo_main.nopCloserWriterTo, align 8 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %main.nopCloserWriterTo %6, ptr %8, align 8 + %9 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %10 = load ptr, ptr @"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I", align 8 + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %10, ptr %7) + %12 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %11, 0 + %13 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %12, ptr %8, 1 + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" %13 + +_llgo_2: ; preds = %_llgo_5 + %14 = alloca %main.nopCloser, align 8 + call void @llvm.memset(ptr %14, i8 0, i64 16, i1 false) + %15 = getelementptr inbounds %main.nopCloser, ptr %14, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %0, ptr %15, align 8 + %16 = load %main.nopCloser, ptr %14, align 8 + %17 = load ptr, ptr @_llgo_main.nopCloser, align 8 + %18 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %main.nopCloser %16, ptr %18, align 8 + %19 = load ptr, ptr @"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I", align 8 + %20 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %19, ptr %17) + %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %20, 0 + %22 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %21, ptr %18, 1 + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" %22 + +_llgo_3: ; preds = %_llgo_0 + %23 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %0, 1 + %24 = load ptr, ptr @"_llgo_iface$eN81k1zqixGTyagHw_4nqH4mGfwwehTOCTXUlbT9kzk", align 8 + %25 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %24, ptr %1) + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %25, 0 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %26, ptr %23, 1 + %28 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %27, 0 + %29 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %28, i1 true, 1 + br label %_llgo_5 + +_llgo_4: ; preds = %_llgo_0 + br label %_llgo_5 + +_llgo_5: ; preds = %_llgo_4, %_llgo_3 + %30 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %29, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] + %31 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %30, 0 + %32 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %30, 1 + br i1 %32, label %_llgo_1, label %_llgo_2 +} + +define { %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @main.ReadAll(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 512) + %2 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %1, i64 1, i64 512, i64 0, i64 0, i64 512) + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_6, %_llgo_3, %_llgo_0 + %3 = phi %"github.com/goplus/llgo/runtime/internal/runtime.Slice" [ %2, %_llgo_0 ], [ %24, %_llgo_3 ], [ %61, %_llgo_6 ] + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %3, 1 + %5 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %3, 2 + %6 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %3, 2 + %7 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %3, 0 + %8 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %7, i64 1, i64 %6, i64 %4, i64 %5, i64 %6) + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %0) + %10 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %0, 0 + %11 = getelementptr ptr, ptr %10, i64 3 + %12 = load ptr, ptr %11, align 8 + %13 = insertvalue { ptr, ptr } undef, ptr %12, 0 + %14 = insertvalue { ptr, ptr } %13, ptr %9, 1 + %15 = extractvalue { ptr, ptr } %14, 1 + %16 = extractvalue { ptr, ptr } %14, 0 + %17 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %16(ptr %15, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %8) + %18 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %17, 0 + %19 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %17, 1 + %20 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %3, 1 + %21 = add i64 %20, %18 + %22 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %3, 2 + %23 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %3, 0 + %24 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %23, i64 1, i64 %22, i64 0, i64 %21, i64 %22) + %25 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %19) + %26 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %19, 1 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %25, 0 + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %27, ptr %26, 1 + %29 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %29, 0 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %30, ptr null, 1 + %32 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %28, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %31) + %33 = xor i1 %32, true + br i1 %33, label %_llgo_2, label %_llgo_3 + +_llgo_2: ; preds = %_llgo_1 + %34 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr @main.EOF, align 8 + %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %19) + %36 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %19, 1 + %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %35, 0 + %38 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %37, ptr %36, 1 + %39 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %34) + %40 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %34, 1 + %41 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %39, 0 + %42 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %41, ptr %40, 1 + %43 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %38, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %42) + br i1 %43, label %_llgo_4, label %_llgo_5 + +_llgo_3: ; preds = %_llgo_1 + %44 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24, 1 + %45 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24, 2 + %46 = icmp eq i64 %44, %45 + br i1 %46, label %_llgo_6, label %_llgo_1 + +_llgo_4: ; preds = %_llgo_2 + br label %_llgo_5 + +_llgo_5: ; preds = %_llgo_4, %_llgo_2 + %47 = phi %"github.com/goplus/llgo/runtime/internal/runtime.iface" [ %19, %_llgo_2 ], [ zeroinitializer, %_llgo_4 ] + %48 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.iface" } undef, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24, 0 + %49 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %48, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %47, 1 + ret { %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %49 + +_llgo_6: ; preds = %_llgo_3 + %50 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 1) + %51 = getelementptr inbounds i8, ptr %50, i64 0 + store i8 0, ptr %51, align 1 + %52 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %50, 0 + %53 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %52, i64 1, 1 + %54 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %53, i64 1, 2 + %55 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %54, 0 + %56 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %54, 1 + %57 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24, ptr %55, i64 %56, i64 1) + %58 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24, 1 + %59 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %57, 2 + %60 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %57, 0 + %61 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %60, i64 1, i64 %59, i64 0, i64 %58, i64 %59) + br label %_llgo_1 +} + +define { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @main.WriteString(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %0, %"github.com/goplus/llgo/runtime/internal/runtime.String" %1) { +_llgo_0: + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %0) + %3 = load ptr, ptr @_llgo_main.StringWriter, align 8 + %4 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %3, ptr %2) + br i1 %4, label %_llgo_3, label %_llgo_4 + +_llgo_1: ; preds = %_llgo_5 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %40) + %6 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %40, 0 + %7 = getelementptr ptr, ptr %6, i64 3 + %8 = load ptr, ptr %7, align 8 + %9 = insertvalue { ptr, ptr } undef, ptr %8, 0 + %10 = insertvalue { ptr, ptr } %9, ptr %5, 1 + %11 = extractvalue { ptr, ptr } %10, 1 + %12 = extractvalue { ptr, ptr } %10, 0 + %13 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %12(ptr %11, %"github.com/goplus/llgo/runtime/internal/runtime.String" %1) + %14 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %13, 0 + %15 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %13, 1 + %16 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } undef, i64 %14, 0 + %17 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %16, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %15, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %17 + +_llgo_2: ; preds = %_llgo_5 + %18 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %1) + %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %0) + %20 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %0, 0 + %21 = getelementptr ptr, ptr %20, i64 3 + %22 = load ptr, ptr %21, align 8 + %23 = insertvalue { ptr, ptr } undef, ptr %22, 0 + %24 = insertvalue { ptr, ptr } %23, ptr %19, 1 + %25 = extractvalue { ptr, ptr } %24, 1 + %26 = extractvalue { ptr, ptr } %24, 0 + %27 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %26(ptr %25, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %18) + %28 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %27, 0 + %29 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %27, 1 + %30 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } undef, i64 %28, 0 + %31 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %30, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %29, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %31 + +_llgo_3: ; preds = %_llgo_0 + %32 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %0, 1 + %33 = load ptr, ptr @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU", align 8 + %34 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %33, ptr %2) + %35 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %34, 0 + %36 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %35, ptr %32, 1 + %37 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %36, 0 + %38 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %37, i1 true, 1 + br label %_llgo_5 + +_llgo_4: ; preds = %_llgo_0 + br label %_llgo_5 + +_llgo_5: ; preds = %_llgo_4, %_llgo_3 + %39 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } [ %38, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] + %40 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %39, 0 + %41 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.iface", i1 } %39, 1 + br i1 %41, label %_llgo_1, label %_llgo_2 +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.String" @"main.(*errorString).Error"(ptr %0) { +_llgo_0: + %1 = getelementptr inbounds %main.errorString, ptr %0, i32 0, i32 0 + %2 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %1, align 8 + ret %"github.com/goplus/llgo/runtime/internal/runtime.String" %2 +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"unicode/utf8.init"() + call void @"main.init$after"() + %1 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @14, i64 3 }) + store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %1, ptr @main.EOF, align 8 + %2 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @15, i64 11 }) + store %"github.com/goplus/llgo/runtime/internal/runtime.iface" %2, ptr @main.ErrShortWrite, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) + %3 = getelementptr inbounds %main.stringReader, ptr %2, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @16, i64 11 }, ptr %3, align 8 + %4 = load ptr, ptr @_llgo_main.stringReader, align 8 + %5 = load ptr, ptr @"*_llgo_main.stringReader", align 8 + %6 = load ptr, ptr @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE", align 8 + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %6, ptr %5) + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %7, 0 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %8, ptr %2, 1 + %10 = call { %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @main.ReadAll(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %9) + %11 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %10, 0 + %12 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %10, 1 + %13 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %11) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %13) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintIface"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %12) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/runtime/internal/runtime.String" %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + %2 = getelementptr inbounds %main.errorString, ptr %1, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" %0, ptr %2, align 8 + %3 = load ptr, ptr @_llgo_main.errorString, align 8 + %4 = load ptr, ptr @"*_llgo_main.errorString", align 8 + %5 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %5, ptr %4) + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %6, 0 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %7, ptr %1, 1 + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" %8 +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.nopCloser.Close(%main.nopCloser %0) { +_llgo_0: + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer +} + +define { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @main.nopCloser.Read(%main.nopCloser %0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1) { +_llgo_0: + %2 = alloca %main.nopCloser, align 8 + call void @llvm.memset(ptr %2, i8 0, i64 16, i1 false) + store %main.nopCloser %0, ptr %2, align 8 + %3 = getelementptr inbounds %main.nopCloser, ptr %2, i32 0, i32 0 + %4 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %3, align 8 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %4) + %6 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %4, 0 + %7 = getelementptr ptr, ptr %6, i64 3 + %8 = load ptr, ptr %7, align 8 + %9 = insertvalue { ptr, ptr } undef, ptr %8, 0 + %10 = insertvalue { ptr, ptr } %9, ptr %5, 1 + %11 = extractvalue { ptr, ptr } %10, 1 + %12 = extractvalue { ptr, ptr } %10, 0 + %13 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %12(ptr %11, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1) + %14 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %13, 0 + %15 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %13, 1 + %16 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } undef, i64 %14, 0 + %17 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %16, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %15, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %17 +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.iface" @"main.(*nopCloser).Close"(ptr %0) { +_llgo_0: + %1 = load %main.nopCloser, ptr %0, align 8 + %2 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.nopCloser.Close(%main.nopCloser %1) + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" %2 +} + +define { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"main.(*nopCloser).Read"(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1) { +_llgo_0: + %2 = getelementptr inbounds %main.nopCloser, ptr %0, i32 0, i32 0 + %3 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %2, align 8 + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %3) + %5 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %3, 0 + %6 = getelementptr ptr, ptr %5, i64 3 + %7 = load ptr, ptr %6, align 8 + %8 = insertvalue { ptr, ptr } undef, ptr %7, 0 + %9 = insertvalue { ptr, ptr } %8, ptr %4, 1 + %10 = extractvalue { ptr, ptr } %9, 1 + %11 = extractvalue { ptr, ptr } %9, 0 + %12 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %11(ptr %10, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1) + %13 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %12, 0 + %14 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %12, 1 + %15 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } undef, i64 %13, 0 + %16 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %15, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %14, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %16 +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.nopCloserWriterTo.Close(%main.nopCloserWriterTo %0) { +_llgo_0: + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer +} + +define { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @main.nopCloserWriterTo.Read(%main.nopCloserWriterTo %0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1) { +_llgo_0: + %2 = alloca %main.nopCloserWriterTo, align 8 + call void @llvm.memset(ptr %2, i8 0, i64 16, i1 false) + store %main.nopCloserWriterTo %0, ptr %2, align 8 + %3 = getelementptr inbounds %main.nopCloserWriterTo, ptr %2, i32 0, i32 0 + %4 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %3, align 8 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %4) + %6 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %4, 0 + %7 = getelementptr ptr, ptr %6, i64 3 + %8 = load ptr, ptr %7, align 8 + %9 = insertvalue { ptr, ptr } undef, ptr %8, 0 + %10 = insertvalue { ptr, ptr } %9, ptr %5, 1 + %11 = extractvalue { ptr, ptr } %10, 1 + %12 = extractvalue { ptr, ptr } %10, 0 + %13 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %12(ptr %11, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1) + %14 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %13, 0 + %15 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %13, 1 + %16 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } undef, i64 %14, 0 + %17 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %16, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %15, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %17 +} + +define { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @main.nopCloserWriterTo.WriteTo(%main.nopCloserWriterTo %0, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %1) { +_llgo_0: + %2 = alloca %main.nopCloserWriterTo, align 8 + call void @llvm.memset(ptr %2, i8 0, i64 16, i1 false) + store %main.nopCloserWriterTo %0, ptr %2, align 8 + %3 = getelementptr inbounds %main.nopCloserWriterTo, ptr %2, i32 0, i32 0 + %4 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %3, align 8 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %4) + %6 = load ptr, ptr @_llgo_main.WriterTo, align 8 + %7 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr %6, ptr %5) + br i1 %7, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %8 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %4, 1 + %9 = load ptr, ptr @"_llgo_iface$eN81k1zqixGTyagHw_4nqH4mGfwwehTOCTXUlbT9kzk", align 8 + %10 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %9, ptr %5) + %11 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %10, 0 + %12 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %11, ptr %8, 1 + %13 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %12) + %14 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %12, 0 + %15 = getelementptr ptr, ptr %14, i64 3 + %16 = load ptr, ptr %15, align 8 + %17 = insertvalue { ptr, ptr } undef, ptr %16, 0 + %18 = insertvalue { ptr, ptr } %17, ptr %13, 1 + %19 = extractvalue { ptr, ptr } %18, 1 + %20 = extractvalue { ptr, ptr } %18, 0 + %21 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %20(ptr %19, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %1) + %22 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %21, 0 + %23 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %21, 1 + %24 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } undef, i64 %22, 0 + %25 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %24, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %23, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %25 + +_llgo_2: ; preds = %_llgo_0 + %26 = load ptr, ptr @_llgo_string, align 8 + %27 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 21 }, ptr %27, align 8 + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %26, 0 + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %28, ptr %27, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %29) + unreachable +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.iface" @"main.(*nopCloserWriterTo).Close"(ptr %0) { +_llgo_0: + %1 = load %main.nopCloserWriterTo, ptr %0, align 8 + %2 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.nopCloserWriterTo.Close(%main.nopCloserWriterTo %1) + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" %2 +} + +define { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"main.(*nopCloserWriterTo).Read"(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1) { +_llgo_0: + %2 = getelementptr inbounds %main.nopCloserWriterTo, ptr %0, i32 0, i32 0 + %3 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %2, align 8 + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %3) + %5 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %3, 0 + %6 = getelementptr ptr, ptr %5, i64 3 + %7 = load ptr, ptr %6, align 8 + %8 = insertvalue { ptr, ptr } undef, ptr %7, 0 + %9 = insertvalue { ptr, ptr } %8, ptr %4, 1 + %10 = extractvalue { ptr, ptr } %9, 1 + %11 = extractvalue { ptr, ptr } %9, 0 + %12 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %11(ptr %10, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1) + %13 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %12, 0 + %14 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %12, 1 + %15 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } undef, i64 %13, 0 + %16 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %15, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %14, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %16 +} + +define { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"main.(*nopCloserWriterTo).WriteTo"(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %1) { +_llgo_0: + %2 = load %main.nopCloserWriterTo, ptr %0, align 8 + %3 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @main.nopCloserWriterTo.WriteTo(%main.nopCloserWriterTo %2, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %1) + %4 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %3, 0 + %5 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %3, 1 + %6 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } undef, i64 %4, 0 + %7 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %6, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %5, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %7 +} + +define i64 @"main.(*stringReader).Len"(ptr %0) { +_llgo_0: + %1 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %2 = load i64, ptr %1, align 4 + %3 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 + %4 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %3, align 8 + %5 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %4, 1 + %6 = icmp sge i64 %2, %5 + br i1 %6, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + ret i64 0 + +_llgo_2: ; preds = %_llgo_0 + %7 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 + %8 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %7, align 8 + %9 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %8, 1 + %10 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %11 = load i64, ptr %10, align 4 + %12 = sub i64 %9, %11 + ret i64 %12 +} + +define { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"main.(*stringReader).Read"(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1) { +_llgo_0: + %2 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %3 = load i64, ptr %2, align 4 + %4 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 + %5 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %4, align 8 + %6 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %5, 1 + %7 = icmp sge i64 %3, %6 + br i1 %7, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %8 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr @main.EOF, align 8 + %9 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } { i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef }, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %8, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %9 + +_llgo_2: ; preds = %_llgo_0 + %10 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 + store i64 -1, ptr %10, align 4 + %11 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 + %12 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %11, align 8 + %13 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %14 = load i64, ptr %13, align 4 + %15 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %12, 1 + %16 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %12, i64 %14, i64 %15) + %17 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %16, 0 + %18 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %16, 1 + %19 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.SliceCopy"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, ptr %17, i64 %18, i64 1) + %20 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %21 = load i64, ptr %20, align 4 + %22 = add i64 %21, %19 + %23 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + store i64 %22, ptr %23, align 4 + %24 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } undef, i64 %19, 0 + %25 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %24, %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %25 +} + +define { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"main.(*stringReader).ReadAt"(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, i64 %2) { +_llgo_0: + %3 = icmp slt i64 %2, 0 + br i1 %3, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %4 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 37 }) + %5 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } { i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef }, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %4, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %5 + +_llgo_2: ; preds = %_llgo_0 + %6 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 + %7 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %6, align 8 + %8 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %7, 1 + %9 = icmp sge i64 %2, %8 + br i1 %9, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %10 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr @main.EOF, align 8 + %11 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } { i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef }, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %10, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %11 + +_llgo_4: ; preds = %_llgo_2 + %12 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 + %13 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %12, align 8 + %14 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %13, 1 + %15 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %13, i64 %2, i64 %14) + %16 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %15, 0 + %17 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %15, 1 + %18 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.SliceCopy"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, ptr %16, i64 %17, i64 1) + %19 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, 1 + %20 = icmp slt i64 %18, %19 + br i1 %20, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %21 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr @main.EOF, align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %22 = phi %"github.com/goplus/llgo/runtime/internal/runtime.iface" [ zeroinitializer, %_llgo_4 ], [ %21, %_llgo_5 ] + %23 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } undef, i64 %18, 0 + %24 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %23, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %22, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %24 +} + +define { i8, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"main.(*stringReader).ReadByte"(ptr %0) { +_llgo_0: + %1 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 + store i64 -1, ptr %1, align 4 + %2 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %3 = load i64, ptr %2, align 4 + %4 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 + %5 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %4, align 8 + %6 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %5, 1 + %7 = icmp sge i64 %3, %6 + br i1 %7, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %8 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr @main.EOF, align 8 + %9 = insertvalue { i8, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } { i8 0, %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef }, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %8, 1 + ret { i8, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %9 + +_llgo_2: ; preds = %_llgo_0 + %10 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %11 = load i64, ptr %10, align 4 + %12 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 + %13 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %12, align 8 + %14 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %13, 0 + %15 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %13, 1 + %16 = icmp slt i64 %11, 0 + %17 = icmp sge i64 %11, %15 + %18 = or i1 %17, %16 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %18) + %19 = getelementptr inbounds i8, ptr %14, i64 %11 + %20 = load i8, ptr %19, align 1 + %21 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %22 = load i64, ptr %21, align 4 + %23 = add i64 %22, 1 + %24 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + store i64 %23, ptr %24, align 4 + %25 = insertvalue { i8, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } undef, i8 %20, 0 + %26 = insertvalue { i8, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %25, %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer, 1 + ret { i8, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %26 +} + +define { i32, i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"main.(*stringReader).ReadRune"(ptr %0) { +_llgo_0: + %1 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %2 = load i64, ptr %1, align 4 + %3 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 + %4 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %3, align 8 + %5 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %4, 1 + %6 = icmp sge i64 %2, %5 + br i1 %6, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %7 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 + store i64 -1, ptr %7, align 4 + %8 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr @main.EOF, align 8 + %9 = insertvalue { i32, i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } { i32 0, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef }, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %8, 2 + ret { i32, i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %9 + +_llgo_2: ; preds = %_llgo_0 + %10 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %11 = load i64, ptr %10, align 4 + %12 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 + store i64 %11, ptr %12, align 4 + %13 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %14 = load i64, ptr %13, align 4 + %15 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 + %16 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %15, align 8 + %17 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %16, 0 + %18 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %16, 1 + %19 = icmp slt i64 %14, 0 + %20 = icmp sge i64 %14, %18 + %21 = or i1 %20, %19 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %21) + %22 = getelementptr inbounds i8, ptr %17, i64 %14 + %23 = load i8, ptr %22, align 1 + %24 = icmp ult i8 %23, -128 + br i1 %24, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %25 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %26 = load i64, ptr %25, align 4 + %27 = add i64 %26, 1 + %28 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + store i64 %27, ptr %28, align 4 + %29 = sext i8 %23 to i32 + %30 = insertvalue { i32, i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } undef, i32 %29, 0 + %31 = insertvalue { i32, i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %30, i64 1, 1 + %32 = insertvalue { i32, i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %31, %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer, 2 + ret { i32, i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %32 + +_llgo_4: ; preds = %_llgo_2 + %33 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 + %34 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %33, align 8 + %35 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %36 = load i64, ptr %35, align 4 + %37 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %34, 1 + %38 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %34, i64 %36, i64 %37) + %39 = call { i32, i64 } @"unicode/utf8.DecodeRuneInString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %38) + %40 = extractvalue { i32, i64 } %39, 0 + %41 = extractvalue { i32, i64 } %39, 1 + %42 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %43 = load i64, ptr %42, align 4 + %44 = add i64 %43, %41 + %45 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + store i64 %44, ptr %45, align 4 + %46 = insertvalue { i32, i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } undef, i32 %40, 0 + %47 = insertvalue { i32, i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %46, i64 %41, 1 + %48 = insertvalue { i32, i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %47, %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer, 2 + ret { i32, i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %48 +} + +define { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"main.(*stringReader).Seek"(ptr %0, i64 %1, i64 %2) { +_llgo_0: + %3 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 + store i64 -1, ptr %3, align 4 + %4 = icmp eq i64 %2, 0 + br i1 %4, label %_llgo_2, label %_llgo_4 + +_llgo_1: ; preds = %_llgo_5, %_llgo_3, %_llgo_2 + %5 = phi i64 [ %1, %_llgo_2 ], [ %9, %_llgo_3 ], [ %14, %_llgo_5 ] + %6 = icmp slt i64 %5, 0 + br i1 %6, label %_llgo_8, label %_llgo_9 + +_llgo_2: ; preds = %_llgo_0 + br label %_llgo_1 + +_llgo_3: ; preds = %_llgo_4 + %7 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %8 = load i64, ptr %7, align 4 + %9 = add i64 %8, %1 + br label %_llgo_1 + +_llgo_4: ; preds = %_llgo_0 + %10 = icmp eq i64 %2, 1 + br i1 %10, label %_llgo_3, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_6 + %11 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 + %12 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %11, align 8 + %13 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %12, 1 + %14 = add i64 %13, %1 + br label %_llgo_1 + +_llgo_6: ; preds = %_llgo_4 + %15 = icmp eq i64 %2, 2 + br i1 %15, label %_llgo_5, label %_llgo_7 + +_llgo_7: ; preds = %_llgo_6 + %16 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 34 }) + %17 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } { i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef }, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %16, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %17 + +_llgo_8: ; preds = %_llgo_1 + %18 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @33, i64 37 }) + %19 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } { i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef }, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %18, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %19 + +_llgo_9: ; preds = %_llgo_1 + %20 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + store i64 %5, ptr %20, align 4 + %21 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } undef, i64 %5, 0 + %22 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %21, %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %22 +} + +define i64 @"main.(*stringReader).Size"(ptr %0) { +_llgo_0: + %1 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 + %2 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %1, align 8 + %3 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %2, 1 + ret i64 %3 +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.iface" @"main.(*stringReader).UnreadByte"(ptr %0) { +_llgo_0: + %1 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %2 = load i64, ptr %1, align 4 + %3 = icmp sle i64 %2, 0 + br i1 %3, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %4 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @34, i64 48 }) + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" %4 + +_llgo_2: ; preds = %_llgo_0 + %5 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 + store i64 -1, ptr %5, align 4 + %6 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %7 = load i64, ptr %6, align 4 + %8 = sub i64 %7, 1 + %9 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + store i64 %8, ptr %9, align 4 + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.iface" @"main.(*stringReader).UnreadRune"(ptr %0) { +_llgo_0: + %1 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %2 = load i64, ptr %1, align 4 + %3 = icmp sle i64 %2, 0 + br i1 %3, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %4 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @35, i64 49 }) + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" %4 + +_llgo_2: ; preds = %_llgo_0 + %5 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 + %6 = load i64, ptr %5, align 4 + %7 = icmp slt i64 %6, 0 + br i1 %7, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %8 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.newError(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @36, i64 62 }) + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" %8 + +_llgo_4: ; preds = %_llgo_2 + %9 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 + %10 = load i64, ptr %9, align 4 + %11 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + store i64 %10, ptr %11, align 4 + %12 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 + store i64 -1, ptr %12, align 4 + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer +} + +define { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"main.(*stringReader).WriteTo"(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %1) { +_llgo_0: + %2 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 2 + store i64 -1, ptr %2, align 4 + %3 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %4 = load i64, ptr %3, align 4 + %5 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 + %6 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %5, align 8 + %7 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %6, 1 + %8 = icmp sge i64 %4, %7 + br i1 %8, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } zeroinitializer + +_llgo_2: ; preds = %_llgo_0 + %9 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 0 + %10 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %9, align 8 + %11 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %12 = load i64, ptr %11, align 4 + %13 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %10, 1 + %14 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %10, i64 %12, i64 %13) + %15 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @main.WriteString(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %1, %"github.com/goplus/llgo/runtime/internal/runtime.String" %14) + %16 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %15, 0 + %17 = extractvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %15, 1 + %18 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %14, 1 + %19 = icmp sgt i64 %16, %18 + br i1 %19, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %20 = load ptr, ptr @_llgo_string, align 8 + %21 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @37, i64 48 }, ptr %21, align 8 + %22 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %20, 0 + %23 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %22, ptr %21, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %23) + unreachable + +_llgo_4: ; preds = %_llgo_2 + %24 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + %25 = load i64, ptr %24, align 4 + %26 = add i64 %25, %16 + %27 = getelementptr inbounds %main.stringReader, ptr %0, i32 0, i32 1 + store i64 %26, ptr %27, align 4 + %28 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %14, 1 + %29 = icmp ne i64 %16, %28 + br i1 %29, label %_llgo_7, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_7 + %30 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr @main.ErrShortWrite, align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_7, %_llgo_4 + %31 = phi %"github.com/goplus/llgo/runtime/internal/runtime.iface" [ %17, %_llgo_4 ], [ %17, %_llgo_7 ], [ %30, %_llgo_5 ] + %32 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } undef, i64 %16, 0 + %33 = insertvalue { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %32, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %31, 1 + ret { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %33 + +_llgo_7: ; preds = %_llgo_4 + %34 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %17) + %35 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %17, 1 + %36 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %34, 0 + %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %36, ptr %35, 1 + %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) + %39 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %38, 0 + %40 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %39, ptr null, 1 + %41 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %37, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %40) + br i1 %41, label %_llgo_5, label %_llgo_6 +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +define void @"main.init$after"() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 8 }) + %1 = load ptr, ptr @_llgo_main.WriterTo, align 8 + %2 = icmp eq ptr %1, null + br i1 %2, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + store ptr %0, ptr @_llgo_main.WriterTo, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 6 }) + %4 = load ptr, ptr @_llgo_main.Writer, align 8 + %5 = icmp eq ptr %4, null + br i1 %5, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + store ptr %3, ptr @_llgo_main.Writer, align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %6 = load ptr, ptr @_llgo_byte, align 8 + %7 = icmp eq ptr %6, null + br i1 %7, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + store ptr %8, ptr @_llgo_byte, align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %9 = load ptr, ptr @_llgo_byte, align 8 + %10 = load ptr, ptr @"[]_llgo_byte", align 8 + %11 = icmp eq ptr %10, null + br i1 %11, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %13 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %12) + store ptr %13, ptr @"[]_llgo_byte", align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %14 = load ptr, ptr @"[]_llgo_byte", align 8 + %15 = load ptr, ptr @_llgo_int, align 8 + %16 = icmp eq ptr %15, null + br i1 %16, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %17, ptr @_llgo_int, align 8 + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_8 + %18 = load ptr, ptr @_llgo_int, align 8 + %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 5 }) + %20 = load ptr, ptr @_llgo_error, align 8 + %21 = icmp eq ptr %20, null + br i1 %21, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + store ptr %19, ptr @_llgo_error, align 8 + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_10 + %22 = load ptr, ptr @_llgo_string, align 8 + %23 = icmp eq ptr %22, null + br i1 %23, label %_llgo_13, label %_llgo_14 + +_llgo_13: ; preds = %_llgo_12 + %24 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %24, ptr @_llgo_string, align 8 + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_12 + %25 = load ptr, ptr @_llgo_string, align 8 + %26 = load ptr, ptr @_llgo_string, align 8 + %27 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %28 = icmp eq ptr %27, null + br i1 %28, label %_llgo_15, label %_llgo_16 + +_llgo_15: ; preds = %_llgo_14 + %29 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %29, 0 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30, i64 0, 1 + %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %31, i64 0, 2 + %33 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %34 = getelementptr ptr, ptr %33, i64 0 + store ptr %26, ptr %34, align 8 + %35 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %33, 0 + %36 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %35, i64 1, 1 + %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %36, i64 1, 2 + %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %37, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %38) + store ptr %38, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + br label %_llgo_16 + +_llgo_16: ; preds = %_llgo_15, %_llgo_14 + %39 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + br i1 %21, label %_llgo_17, label %_llgo_18 + +_llgo_17: ; preds = %_llgo_16 + %40 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }, ptr undef }, ptr %39, 1 + %41 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %42 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %41, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %40, ptr %42, align 8 + %43 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %41, 0 + %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %43, i64 1, 1 + %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %44, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %19, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %45) + br label %_llgo_18 + +_llgo_18: ; preds = %_llgo_17, %_llgo_16 + %46 = load ptr, ptr @_llgo_error, align 8 + %47 = load ptr, ptr @"[]_llgo_byte", align 8 + %48 = load ptr, ptr @_llgo_int, align 8 + %49 = load ptr, ptr @_llgo_error, align 8 + %50 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %51 = icmp eq ptr %50, null + br i1 %51, label %_llgo_19, label %_llgo_20 + +_llgo_19: ; preds = %_llgo_18 + %52 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %53 = getelementptr ptr, ptr %52, i64 0 + store ptr %47, ptr %53, align 8 + %54 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %52, 0 + %55 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %54, i64 1, 1 + %56 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %55, i64 1, 2 + %57 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %58 = getelementptr ptr, ptr %57, i64 0 + store ptr %48, ptr %58, align 8 + %59 = getelementptr ptr, ptr %57, i64 1 + store ptr %49, ptr %59, align 8 + %60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %57, 0 + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, i64 2, 1 + %62 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61, i64 2, 2 + %63 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %56, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %62, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %63) + store ptr %63, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + br label %_llgo_20 + +_llgo_20: ; preds = %_llgo_19, %_llgo_18 + %64 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + br i1 %5, label %_llgo_21, label %_llgo_22 + +_llgo_21: ; preds = %_llgo_20 + %65 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 5 }, ptr undef }, ptr %64, 1 + %66 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %67 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %66, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %65, ptr %67, align 8 + %68 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %66, 0 + %69 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %68, i64 1, 1 + %70 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %69, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %3, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %70) + br label %_llgo_22 + +_llgo_22: ; preds = %_llgo_21, %_llgo_20 + %71 = load ptr, ptr @_llgo_main.Writer, align 8 + %72 = load ptr, ptr @_llgo_int64, align 8 + %73 = icmp eq ptr %72, null + br i1 %73, label %_llgo_23, label %_llgo_24 + +_llgo_23: ; preds = %_llgo_22 + %74 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 38) + store ptr %74, ptr @_llgo_int64, align 8 + br label %_llgo_24 + +_llgo_24: ; preds = %_llgo_23, %_llgo_22 + %75 = load ptr, ptr @_llgo_int64, align 8 + %76 = load ptr, ptr @_llgo_main.Writer, align 8 + %77 = load ptr, ptr @_llgo_int64, align 8 + %78 = load ptr, ptr @_llgo_error, align 8 + %79 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 + %80 = icmp eq ptr %79, null + br i1 %80, label %_llgo_25, label %_llgo_26 + +_llgo_25: ; preds = %_llgo_24 + %81 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %82 = getelementptr ptr, ptr %81, i64 0 + store ptr %76, ptr %82, align 8 + %83 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %81, 0 + %84 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %83, i64 1, 1 + %85 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %84, i64 1, 2 + %86 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %87 = getelementptr ptr, ptr %86, i64 0 + store ptr %77, ptr %87, align 8 + %88 = getelementptr ptr, ptr %86, i64 1 + store ptr %78, ptr %88, align 8 + %89 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %86, 0 + %90 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %89, i64 2, 1 + %91 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %90, i64 2, 2 + %92 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %85, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %91, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %92) + store ptr %92, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 + br label %_llgo_26 + +_llgo_26: ; preds = %_llgo_25, %_llgo_24 + %93 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 + br i1 %2, label %_llgo_27, label %_llgo_28 + +_llgo_27: ; preds = %_llgo_26 + %94 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 7 }, ptr undef }, ptr %93, 1 + %95 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %96 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %95, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %94, ptr %96, align 8 + %97 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %95, 0 + %98 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %97, i64 1, 1 + %99 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %98, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %99) + br label %_llgo_28 + +_llgo_28: ; preds = %_llgo_27, %_llgo_26 + %100 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 + %101 = load ptr, ptr @"_llgo_iface$eN81k1zqixGTyagHw_4nqH4mGfwwehTOCTXUlbT9kzk", align 8 + %102 = icmp eq ptr %101, null + br i1 %102, label %_llgo_29, label %_llgo_30 + +_llgo_29: ; preds = %_llgo_28 + %103 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 7 }, ptr undef }, ptr %100, 1 + %104 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %105 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %104, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %103, ptr %105, align 8 + %106 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %104, 0 + %107 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %106, i64 1, 1 + %108 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %107, i64 1, 2 + %109 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %108) + store ptr %109, ptr @"_llgo_iface$eN81k1zqixGTyagHw_4nqH4mGfwwehTOCTXUlbT9kzk", align 8 + br label %_llgo_30 + +_llgo_30: ; preds = %_llgo_29, %_llgo_28 + %110 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 17 }, i64 25, i64 16, i64 3, i64 3) + store ptr %110, ptr @_llgo_main.nopCloserWriterTo, align 8 + %111 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 6 }) + %112 = load ptr, ptr @_llgo_main.Reader, align 8 + %113 = icmp eq ptr %112, null + br i1 %113, label %_llgo_31, label %_llgo_32 + +_llgo_31: ; preds = %_llgo_30 + store ptr %111, ptr @_llgo_main.Reader, align 8 + br label %_llgo_32 + +_llgo_32: ; preds = %_llgo_31, %_llgo_30 + %114 = load ptr, ptr @"[]_llgo_byte", align 8 + %115 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + br i1 %113, label %_llgo_33, label %_llgo_34 + +_llgo_33: ; preds = %_llgo_32 + %116 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef }, ptr %115, 1 + %117 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %118 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %117, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %116, ptr %118, align 8 + %119 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %117, 0 + %120 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %119, i64 1, 1 + %121 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %120, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %111, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %121) + br label %_llgo_34 + +_llgo_34: ; preds = %_llgo_33, %_llgo_32 + %122 = load ptr, ptr @_llgo_main.Reader, align 8 + %123 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 6 }) + %124 = load ptr, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 + %125 = icmp eq ptr %124, null + br i1 %125, label %_llgo_35, label %_llgo_36 + +_llgo_35: ; preds = %_llgo_34 + %126 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 6 }, ptr %123, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) + %127 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %128 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %127, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %126, ptr %128, align 8 + %129 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %127, 0 + %130 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %129, i64 1, 1 + %131 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %130, i64 1, 2 + %132 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %131) + store ptr %132, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 + br label %_llgo_36 + +_llgo_36: ; preds = %_llgo_35, %_llgo_34 + %133 = load ptr, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 + %134 = load ptr, ptr @_llgo_error, align 8 + %135 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %136 = icmp eq ptr %135, null + br i1 %136, label %_llgo_37, label %_llgo_38 + +_llgo_37: ; preds = %_llgo_36 + %137 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %138 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %137, 0 + %139 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %138, i64 0, 1 + %140 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %139, i64 0, 2 + %141 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %142 = getelementptr ptr, ptr %141, i64 0 + store ptr %134, ptr %142, align 8 + %143 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %141, 0 + %144 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %143, i64 1, 1 + %145 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %144, i64 1, 2 + %146 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %140, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %145, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %146) + store ptr %146, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + br label %_llgo_38 + +_llgo_38: ; preds = %_llgo_37, %_llgo_36 + %147 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %148 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %147, 1 + %149 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %148, ptr @"main.(*nopCloserWriterTo).Close", 2 + %150 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %149, ptr @"main.(*nopCloserWriterTo).Close", 3 + %151 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %147, 1 + %152 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %151, ptr @"main.(*nopCloserWriterTo).Close", 2 + %153 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %152, ptr @main.nopCloserWriterTo.Close, 3 + %154 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %155 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %154, 1 + %156 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %155, ptr @"main.(*nopCloserWriterTo).Read", 2 + %157 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %156, ptr @"main.(*nopCloserWriterTo).Read", 3 + %158 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %154, 1 + %159 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %158, ptr @"main.(*nopCloserWriterTo).Read", 2 + %160 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %159, ptr @main.nopCloserWriterTo.Read, 3 + %161 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 + %162 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %161, 1 + %163 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %162, ptr @"main.(*nopCloserWriterTo).WriteTo", 2 + %164 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %163, ptr @"main.(*nopCloserWriterTo).WriteTo", 3 + %165 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %161, 1 + %166 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %165, ptr @"main.(*nopCloserWriterTo).WriteTo", 2 + %167 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %166, ptr @main.nopCloserWriterTo.WriteTo, 3 + %168 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 120) + %169 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %168, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %153, ptr %169, align 8 + %170 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %168, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %160, ptr %170, align 8 + %171 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %168, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %167, ptr %171, align 8 + %172 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %168, 0 + %173 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %172, i64 3, 1 + %174 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %173, i64 3, 2 + %175 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 120) + %176 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %175, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %150, ptr %176, align 8 + %177 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %175, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %157, ptr %177, align 8 + %178 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %175, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %164, ptr %178, align 8 + %179 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %175, 0 + %180 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %179, i64 3, 1 + %181 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %180, i64 3, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %110, ptr %133, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %174, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %181) + %182 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %183 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %184 = load ptr, ptr @"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I", align 8 + %185 = icmp eq ptr %184, null + br i1 %185, label %_llgo_39, label %_llgo_40 + +_llgo_39: ; preds = %_llgo_38 + %186 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 5 }, ptr undef }, ptr %182, 1 + %187 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef }, ptr %183, 1 + %188 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + %189 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %188, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %186, ptr %189, align 8 + %190 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %188, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %187, ptr %190, align 8 + %191 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %188, 0 + %192 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %191, i64 2, 1 + %193 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %192, i64 2, 2 + %194 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %193) + store ptr %194, ptr @"_llgo_iface$L2Ik-AJcd0jsoBw5fQ07pQpfUM-kh78Wn2bOeak6M3I", align 8 + br label %_llgo_40 + +_llgo_40: ; preds = %_llgo_39, %_llgo_38 + %195 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 9 }, i64 25, i64 16, i64 2, i64 2) + store ptr %195, ptr @_llgo_main.nopCloser, align 8 + %196 = load ptr, ptr @"_llgo_struct$_3ow4zXXILqvC0WDqDRNq5DPhjE1DInJgN924VHWc2Y", align 8 + %197 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %198 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %197, 1 + %199 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %198, ptr @"main.(*nopCloser).Close", 2 + %200 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %199, ptr @"main.(*nopCloser).Close", 3 + %201 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %197, 1 + %202 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %201, ptr @"main.(*nopCloser).Close", 2 + %203 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %202, ptr @main.nopCloser.Close, 3 + %204 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %205 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %204, 1 + %206 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %205, ptr @"main.(*nopCloser).Read", 2 + %207 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %206, ptr @"main.(*nopCloser).Read", 3 + %208 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %204, 1 + %209 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %208, ptr @"main.(*nopCloser).Read", 2 + %210 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %209, ptr @main.nopCloser.Read, 3 + %211 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %212 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %211, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %203, ptr %212, align 8 + %213 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %211, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %210, ptr %213, align 8 + %214 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %211, 0 + %215 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %214, i64 2, 1 + %216 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %215, i64 2, 2 + %217 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %218 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %217, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %200, ptr %218, align 8 + %219 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %217, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %207, ptr %219, align 8 + %220 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %217, 0 + %221 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %220, i64 2, 1 + %222 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %221, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %195, ptr %196, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %216, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %222) + %223 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 12 }) + %224 = load ptr, ptr @_llgo_main.StringWriter, align 8 + %225 = icmp eq ptr %224, null + br i1 %225, label %_llgo_41, label %_llgo_42 + +_llgo_41: ; preds = %_llgo_40 + store ptr %223, ptr @_llgo_main.StringWriter, align 8 + br label %_llgo_42 + +_llgo_42: ; preds = %_llgo_41, %_llgo_40 + %226 = load ptr, ptr @_llgo_string, align 8 + %227 = load ptr, ptr @_llgo_int, align 8 + %228 = load ptr, ptr @_llgo_error, align 8 + %229 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 + %230 = icmp eq ptr %229, null + br i1 %230, label %_llgo_43, label %_llgo_44 + +_llgo_43: ; preds = %_llgo_42 + %231 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %232 = getelementptr ptr, ptr %231, i64 0 + store ptr %226, ptr %232, align 8 + %233 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %231, 0 + %234 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %233, i64 1, 1 + %235 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %234, i64 1, 2 + %236 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %237 = getelementptr ptr, ptr %236, i64 0 + store ptr %227, ptr %237, align 8 + %238 = getelementptr ptr, ptr %236, i64 1 + store ptr %228, ptr %238, align 8 + %239 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %236, 0 + %240 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %239, i64 2, 1 + %241 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %240, i64 2, 2 + %242 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %235, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %241, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %242) + store ptr %242, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 + br label %_llgo_44 + +_llgo_44: ; preds = %_llgo_43, %_llgo_42 + %243 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 + br i1 %225, label %_llgo_45, label %_llgo_46 + +_llgo_45: ; preds = %_llgo_44 + %244 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 11 }, ptr undef }, ptr %243, 1 + %245 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %246 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %245, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %244, ptr %246, align 8 + %247 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %245, 0 + %248 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %247, i64 1, 1 + %249 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %248, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %223, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %249) + br label %_llgo_46 + +_llgo_46: ; preds = %_llgo_45, %_llgo_44 + %250 = load ptr, ptr @"_llgo_func$thH5FBpdXzJNnCpSfiLU5ItTntFU6LWp0RJhDm2XJjw", align 8 + %251 = load ptr, ptr @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU", align 8 + %252 = icmp eq ptr %251, null + br i1 %252, label %_llgo_47, label %_llgo_48 + +_llgo_47: ; preds = %_llgo_46 + %253 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 11 }, ptr undef }, ptr %250, 1 + %254 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %255 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %254, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %253, ptr %255, align 8 + %256 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %254, 0 + %257 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %256, i64 1, 1 + %258 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %257, i64 1, 2 + %259 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %258) + store ptr %259, ptr @"_llgo_iface$Ly4zXiUMEac-hYAMw6b6miJ1JEhGfLyBWyBOhpsRZcU", align 8 + br label %_llgo_48 + +_llgo_48: ; preds = %_llgo_47, %_llgo_46 + %260 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 12 }, i64 25, i64 32, i64 0, i64 10) + store ptr %260, ptr @_llgo_main.stringReader, align 8 + %261 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %262 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 1 }, ptr %261, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %263 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 38) + %264 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 1 }, ptr %263, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %265 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %266 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @20, i64 8 }, ptr %265, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %267 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 168) + %268 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %267, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %262, ptr %268, align 8 + %269 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %267, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %264, ptr %269, align 8 + %270 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %267, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %266, ptr %270, align 8 + %271 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %267, 0 + %272 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %271, i64 3, 1 + %273 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %272, i64 3, 2 + %274 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 32, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %273) + store ptr %274, ptr @"main.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk", align 8 + %275 = load ptr, ptr @"main.struct$Mdt84yjYYwxF9D2i4cRmpEPiWaO6tsjtrbGUjyESypk", align 8 + %276 = load ptr, ptr @_llgo_int, align 8 + %277 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %278 = icmp eq ptr %277, null + br i1 %278, label %_llgo_49, label %_llgo_50 + +_llgo_49: ; preds = %_llgo_48 + %279 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %280 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %279, 0 + %281 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %280, i64 0, 1 + %282 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %281, i64 0, 2 + %283 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %284 = getelementptr ptr, ptr %283, i64 0 + store ptr %276, ptr %284, align 8 + %285 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %283, 0 + %286 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %285, i64 1, 1 + %287 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %286, i64 1, 2 + %288 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %282, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %287, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %288) + store ptr %288, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + br label %_llgo_50 + +_llgo_50: ; preds = %_llgo_49, %_llgo_48 + %289 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %290 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %289, 1 + %291 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %290, ptr @"main.(*stringReader).Len", 2 + %292 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %291, ptr @"main.(*stringReader).Len", 3 + %293 = load ptr, ptr @"[]_llgo_byte", align 8 + %294 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %295 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %294, 1 + %296 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %295, ptr @"main.(*stringReader).Read", 2 + %297 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %296, ptr @"main.(*stringReader).Read", 3 + %298 = load ptr, ptr @"[]_llgo_byte", align 8 + %299 = load ptr, ptr @"[]_llgo_byte", align 8 + %300 = load ptr, ptr @_llgo_int64, align 8 + %301 = load ptr, ptr @_llgo_int, align 8 + %302 = load ptr, ptr @_llgo_error, align 8 + %303 = load ptr, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 + %304 = icmp eq ptr %303, null + br i1 %304, label %_llgo_51, label %_llgo_52 + +_llgo_51: ; preds = %_llgo_50 + %305 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %306 = getelementptr ptr, ptr %305, i64 0 + store ptr %299, ptr %306, align 8 + %307 = getelementptr ptr, ptr %305, i64 1 + store ptr %300, ptr %307, align 8 + %308 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %305, 0 + %309 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %308, i64 2, 1 + %310 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %309, i64 2, 2 + %311 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %312 = getelementptr ptr, ptr %311, i64 0 + store ptr %301, ptr %312, align 8 + %313 = getelementptr ptr, ptr %311, i64 1 + store ptr %302, ptr %313, align 8 + %314 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %311, 0 + %315 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %314, i64 2, 1 + %316 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %315, i64 2, 2 + %317 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %310, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %316, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %317) + store ptr %317, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 + br label %_llgo_52 + +_llgo_52: ; preds = %_llgo_51, %_llgo_50 + %318 = load ptr, ptr @"_llgo_func$TY5Etv7VBKM_-2um1BDEeQEE2lP06Pt6G54EuKiNC3c", align 8 + %319 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %318, 1 + %320 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %319, ptr @"main.(*stringReader).ReadAt", 2 + %321 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %320, ptr @"main.(*stringReader).ReadAt", 3 + %322 = load ptr, ptr @_llgo_byte, align 8 + %323 = load ptr, ptr @_llgo_error, align 8 + %324 = load ptr, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", align 8 + %325 = icmp eq ptr %324, null + br i1 %325, label %_llgo_53, label %_llgo_54 + +_llgo_53: ; preds = %_llgo_52 + %326 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %327 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %326, 0 + %328 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %327, i64 0, 1 + %329 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %328, i64 0, 2 + %330 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %331 = getelementptr ptr, ptr %330, i64 0 + store ptr %322, ptr %331, align 8 + %332 = getelementptr ptr, ptr %330, i64 1 + store ptr %323, ptr %332, align 8 + %333 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %330, 0 + %334 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %333, i64 2, 1 + %335 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %334, i64 2, 2 + %336 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %329, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %335, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %336) + store ptr %336, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", align 8 + br label %_llgo_54 + +_llgo_54: ; preds = %_llgo_53, %_llgo_52 + %337 = load ptr, ptr @"_llgo_func$6bvVpCcGPUc3z_EmsQTHB0AVT1hP5-NNLVRgm43teCM", align 8 + %338 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %337, 1 + %339 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %338, ptr @"main.(*stringReader).ReadByte", 2 + %340 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %339, ptr @"main.(*stringReader).ReadByte", 3 + %341 = load ptr, ptr @_llgo_rune, align 8 + %342 = icmp eq ptr %341, null + br i1 %342, label %_llgo_55, label %_llgo_56 + +_llgo_55: ; preds = %_llgo_54 + %343 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 37) + store ptr %343, ptr @_llgo_rune, align 8 + br label %_llgo_56 + +_llgo_56: ; preds = %_llgo_55, %_llgo_54 + %344 = load ptr, ptr @_llgo_rune, align 8 + %345 = load ptr, ptr @_llgo_rune, align 8 + %346 = load ptr, ptr @_llgo_int, align 8 + %347 = load ptr, ptr @_llgo_error, align 8 + %348 = load ptr, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 + %349 = icmp eq ptr %348, null + br i1 %349, label %_llgo_57, label %_llgo_58 + +_llgo_57: ; preds = %_llgo_56 + %350 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %351 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %350, 0 + %352 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %351, i64 0, 1 + %353 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %352, i64 0, 2 + %354 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %355 = getelementptr ptr, ptr %354, i64 0 + store ptr %345, ptr %355, align 8 + %356 = getelementptr ptr, ptr %354, i64 1 + store ptr %346, ptr %356, align 8 + %357 = getelementptr ptr, ptr %354, i64 2 + store ptr %347, ptr %357, align 8 + %358 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %354, 0 + %359 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %358, i64 3, 1 + %360 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %359, i64 3, 2 + %361 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %353, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %360, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %361) + store ptr %361, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 + br label %_llgo_58 + +_llgo_58: ; preds = %_llgo_57, %_llgo_56 + %362 = load ptr, ptr @"_llgo_func$CB0CO6hV_feSzhi4pz1P4omza2fKNK930wvOR1T33fU", align 8 + %363 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %362, 1 + %364 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %363, ptr @"main.(*stringReader).ReadRune", 2 + %365 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %364, ptr @"main.(*stringReader).ReadRune", 3 + %366 = load ptr, ptr @_llgo_int64, align 8 + %367 = load ptr, ptr @_llgo_int, align 8 + %368 = load ptr, ptr @_llgo_int64, align 8 + %369 = load ptr, ptr @_llgo_error, align 8 + %370 = load ptr, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 + %371 = icmp eq ptr %370, null + br i1 %371, label %_llgo_59, label %_llgo_60 + +_llgo_59: ; preds = %_llgo_58 + %372 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %373 = getelementptr ptr, ptr %372, i64 0 + store ptr %366, ptr %373, align 8 + %374 = getelementptr ptr, ptr %372, i64 1 + store ptr %367, ptr %374, align 8 + %375 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %372, 0 + %376 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %375, i64 2, 1 + %377 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %376, i64 2, 2 + %378 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %379 = getelementptr ptr, ptr %378, i64 0 + store ptr %368, ptr %379, align 8 + %380 = getelementptr ptr, ptr %378, i64 1 + store ptr %369, ptr %380, align 8 + %381 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %378, 0 + %382 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %381, i64 2, 1 + %383 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %382, i64 2, 2 + %384 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %377, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %383, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %384) + store ptr %384, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 + br label %_llgo_60 + +_llgo_60: ; preds = %_llgo_59, %_llgo_58 + %385 = load ptr, ptr @"_llgo_func$HE7H49xPa1uXmrkMDpqB3RCRGf3qzhLGrxKCEXOYjms", align 8 + %386 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @25, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %385, 1 + %387 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %386, ptr @"main.(*stringReader).Seek", 2 + %388 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %387, ptr @"main.(*stringReader).Seek", 3 + %389 = load ptr, ptr @_llgo_int64, align 8 + %390 = load ptr, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 + %391 = icmp eq ptr %390, null + br i1 %391, label %_llgo_61, label %_llgo_62 + +_llgo_61: ; preds = %_llgo_60 + %392 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %393 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %392, 0 + %394 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %393, i64 0, 1 + %395 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %394, i64 0, 2 + %396 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %397 = getelementptr ptr, ptr %396, i64 0 + store ptr %389, ptr %397, align 8 + %398 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %396, 0 + %399 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %398, i64 1, 1 + %400 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %399, i64 1, 2 + %401 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %395, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %400, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %401) + store ptr %401, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 + br label %_llgo_62 + +_llgo_62: ; preds = %_llgo_61, %_llgo_60 + %402 = load ptr, ptr @"_llgo_func$Eoig9xhJM5GShHH5aNPxTZZXp1IZxprRl4zPuv2hkug", align 8 + %403 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %402, 1 + %404 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %403, ptr @"main.(*stringReader).Size", 2 + %405 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %404, ptr @"main.(*stringReader).Size", 3 + %406 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %407 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @27, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %406, 1 + %408 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %407, ptr @"main.(*stringReader).UnreadByte", 2 + %409 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %408, ptr @"main.(*stringReader).UnreadByte", 3 + %410 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %411 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @28, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %410, 1 + %412 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %411, ptr @"main.(*stringReader).UnreadRune", 2 + %413 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %412, ptr @"main.(*stringReader).UnreadRune", 3 + %414 = load ptr, ptr @"_llgo_func$MrYxYl10p_I07B55pBsGw9la9zbzU2vGDPLWrT714Uk", align 8 + %415 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %414, 1 + %416 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %415, ptr @"main.(*stringReader).WriteTo", 2 + %417 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %416, ptr @"main.(*stringReader).WriteTo", 3 + %418 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 400) + %419 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %292, ptr %419, align 8 + %420 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %297, ptr %420, align 8 + %421 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %321, ptr %421, align 8 + %422 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 3 + store %"github.com/goplus/llgo/runtime/abi.Method" %340, ptr %422, align 8 + %423 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 4 + store %"github.com/goplus/llgo/runtime/abi.Method" %365, ptr %423, align 8 + %424 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 5 + store %"github.com/goplus/llgo/runtime/abi.Method" %388, ptr %424, align 8 + %425 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 6 + store %"github.com/goplus/llgo/runtime/abi.Method" %405, ptr %425, align 8 + %426 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 7 + store %"github.com/goplus/llgo/runtime/abi.Method" %409, ptr %426, align 8 + %427 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 8 + store %"github.com/goplus/llgo/runtime/abi.Method" %413, ptr %427, align 8 + %428 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %418, i64 9 + store %"github.com/goplus/llgo/runtime/abi.Method" %417, ptr %428, align 8 + %429 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %418, 0 + %430 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %429, i64 10, 1 + %431 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %430, i64 10, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %260, ptr %275, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %431) + %432 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 12 }, i64 25, i64 32, i64 0, i64 10) + %433 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %432) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %433) + store ptr %433, ptr @"*_llgo_main.stringReader", align 8 + %434 = load ptr, ptr @"_llgo_func$06yPPin-fnDnxFKkLLcJ1GEUhIobjPimde7T_Id_hmY", align 8 + %435 = load ptr, ptr @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE", align 8 + %436 = icmp eq ptr %435, null + br i1 %436, label %_llgo_63, label %_llgo_64 + +_llgo_63: ; preds = %_llgo_62 + %437 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr undef }, ptr %434, 1 + %438 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %439 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %438, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %437, ptr %439, align 8 + %440 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %438, 0 + %441 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %440, i64 1, 1 + %442 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %441, i64 1, 2 + %443 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %442) + store ptr %443, ptr @"_llgo_iface$OFO8Us9n8ajWCabGedeuoJ-Za2zAMk4Jh0FunAcUCFE", align 8 + br label %_llgo_64 + +_llgo_64: ; preds = %_llgo_63, %_llgo_62 + %444 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 11 }, i64 25, i64 16, i64 0, i64 1) + store ptr %444, ptr @_llgo_main.errorString, align 8 + %445 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %446 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 1 }, ptr %445, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %447 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %448 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %447, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %446, ptr %448, align 8 + %449 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %447, 0 + %450 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %449, i64 1, 1 + %451 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %450, i64 1, 2 + %452 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %451) + store ptr %452, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + %453 = load ptr, ptr @"main.struct$QTufDJA9wEDzuzgkA-ZSrLqW-B6lWN8O25mTSglAoLQ", align 8 + %454 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %455 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %454, 1 + %456 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %455, ptr @"main.(*errorString).Error", 2 + %457 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %456, ptr @"main.(*errorString).Error", 3 + %458 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %459 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %458, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %457, ptr %459, align 8 + %460 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %458, 0 + %461 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %460, i64 1, 1 + %462 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %461, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %444, ptr %453, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %462) + %463 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 11 }, i64 25, i64 16, i64 0, i64 1) + %464 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %463) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %464) + store ptr %464, ptr @"*_llgo_main.errorString", align 8 + %465 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %466 = load ptr, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 + %467 = icmp eq ptr %466, null + br i1 %467, label %_llgo_65, label %_llgo_66 + +_llgo_65: ; preds = %_llgo_64 + %468 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }, ptr undef }, ptr %465, 1 + %469 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %470 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %469, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %468, ptr %470, align 8 + %471 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %469, 0 + %472 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %471, i64 1, 1 + %473 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %472, i64 1, 2 + %474 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %473) + store ptr %474, ptr @"_llgo_iface$Fh8eUJ-Gw4e6TYuajcFIOSCuqSPKAt5nS4ow7xeGXEU", align 8 + br label %_llgo_66 + +_llgo_66: ; preds = %_llgo_65, %_llgo_64 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.Implements"(ptr, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr, ptr) + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr, i64, i64, i64, i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface", %"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr, i64, i64) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"unicode/utf8.init"() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintIface"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64) + +declare i64 @"github.com/goplus/llgo/runtime/internal/runtime.SliceCopy"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr, i64, i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) + +declare { i32, i64 } @"unicode/utf8.DecodeRuneInString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testgo/reflect/in.go b/compiler/cl/_testgo/reflect/in.go similarity index 100% rename from cl/_testgo/reflect/in.go rename to compiler/cl/_testgo/reflect/in.go diff --git a/compiler/cl/_testgo/reflect/out.ll b/compiler/cl/_testgo/reflect/out.ll new file mode 100644 index 00000000..c25ba795 --- /dev/null +++ b/compiler/cl/_testgo/reflect/out.ll @@ -0,0 +1,1522 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%main.T = type { i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%reflect.Value = type { ptr, ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } +%"github.com/goplus/llgo/runtime/abi.Method" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, ptr, ptr } +%"github.com/goplus/llgo/runtime/abi.Imethod" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr } + +@"main.init$guard" = global i1 false, align 1 +@0 = private unnamed_addr constant [11 x i8] c"call.method", align 1 +@_llgo_int = linkonce global ptr null, align 8 +@"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU" = linkonce global ptr null, align 8 +@_llgo_Pointer = linkonce global ptr null, align 8 +@"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk" = linkonce global ptr null, align 8 +@1 = private unnamed_addr constant [2 x i8] c"$f", align 1 +@2 = private unnamed_addr constant [5 x i8] c"$data", align 1 +@3 = private unnamed_addr constant [4 x i8] c"main", align 1 +@4 = private unnamed_addr constant [7 x i8] c"closure", align 1 +@5 = private unnamed_addr constant [5 x i8] c"error", align 1 +@_llgo_string = linkonce global ptr null, align 8 +@6 = private unnamed_addr constant [12 x i8] c"call.closure", align 1 +@7 = private unnamed_addr constant [4 x i8] c"func", align 1 +@8 = private unnamed_addr constant [9 x i8] c"call.func", align 1 +@_llgo_main.T = linkonce global ptr null, align 8 +@9 = private unnamed_addr constant [1 x i8] c"T", align 1 +@"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U" = linkonce global ptr null, align 8 +@10 = private unnamed_addr constant [1 x i8] c"n", align 1 +@11 = private unnamed_addr constant [3 x i8] c"Add", align 1 +@"*_llgo_main.T" = linkonce global ptr null, align 8 +@"_llgo_iface$VdBKYV8-gcMjZtZfcf-u2oKoj9Lu3VXwuG8TGCW2S4A" = linkonce global ptr null, align 8 +@12 = private unnamed_addr constant [7 x i8] c"imethod", align 1 +@13 = private unnamed_addr constant [6 x i8] c"method", align 1 +@_llgo_any = linkonce global ptr null, align 8 +@"[]_llgo_any" = linkonce global ptr null, align 8 +@"_llgo_func$KK0iU4Wpi3BdRqssvycXqtgNe2Dq1riBlM61Rds1QsU" = linkonce global ptr null, align 8 +@"main.struct$FjMjjQr3-2iTiWyZP1IIQFOz0hUCa0OS6pEm5uVV6Pk" = linkonce global ptr null, align 8 +@14 = private unnamed_addr constant [10 x i8] c"call.slice", align 1 +@15 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@"map[_llgo_int]_llgo_string" = linkonce global ptr null, align 8 +@16 = private unnamed_addr constant [7 x i8] c"topbits", align 1 +@17 = private unnamed_addr constant [4 x i8] c"keys", align 1 +@18 = private unnamed_addr constant [5 x i8] c"elems", align 1 +@19 = private unnamed_addr constant [8 x i8] c"overflow", align 1 +@20 = private unnamed_addr constant [5 x i8] c"hello", align 1 +@21 = private unnamed_addr constant [5 x i8] c"world", align 1 +@22 = private unnamed_addr constant [14 x i8] c"MapIndex error", align 1 +@23 = private unnamed_addr constant [4 x i8] c"todo", align 1 +@24 = private unnamed_addr constant [12 x i8] c"must invalid", align 1 +@25 = private unnamed_addr constant [13 x i8] c"MapIter error", align 1 + +define i64 @"main.(*T).Add"(ptr %0, i64 %1) { +_llgo_0: + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 11 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %2 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 0 + %3 = load i64, ptr %2, align 4 + %4 = add i64 %3, %1 + %5 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 0 + store i64 %4, ptr %5, align 4 + %6 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 0 + %7 = load i64, ptr %6, align 4 + ret i64 %7 +} + +define void @main.callClosure() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + store i64 100, ptr %0, align 4 + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %2 = getelementptr inbounds { ptr }, ptr %1, i32 0, i32 0 + store ptr %0, ptr %2, align 8 + %3 = insertvalue { ptr, ptr } { ptr @"main.callClosure$1", ptr undef }, ptr %1, 1 + %4 = load ptr, ptr @_llgo_int, align 8 + %5 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 + %6 = load ptr, ptr @_llgo_Pointer, align 8 + %7 = load ptr, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store { ptr, ptr } %3, ptr %8, align 8 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %7, 0 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %9, ptr %8, 1 + %11 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %10) + %12 = call i64 @reflect.Value.Kind(%reflect.Value %11) + %13 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @reflect.Value.Type(%reflect.Value %11) + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %13) + %15 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %13, 0 + %16 = getelementptr ptr, ptr %15, i64 37 + %17 = load ptr, ptr %16, align 8 + %18 = insertvalue { ptr, ptr } undef, ptr %17, 0 + %19 = insertvalue { ptr, ptr } %18, ptr %14, 1 + %20 = extractvalue { ptr, ptr } %19, 1 + %21 = extractvalue { ptr, ptr } %19, 0 + %22 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %21(ptr %20) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 7 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %12) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %22) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) + %24 = getelementptr inbounds %reflect.Value, ptr %23, i64 0 + %25 = load ptr, ptr @_llgo_int, align 8 + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %25, 0 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %26, ptr inttoptr (i64 100 to ptr), 1 + %28 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %27) + store %reflect.Value %28, ptr %24, align 8 + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %23, 0 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %29, i64 1, 1 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30, i64 1, 2 + %32 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @reflect.Value.Call(%reflect.Value %11, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %31) + %33 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32, 0 + %34 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32, 1 + %35 = icmp sge i64 0, %34 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %35) + %36 = getelementptr inbounds %reflect.Value, ptr %33, i64 0 + %37 = load %reflect.Value, ptr %36, align 8 + %38 = call i64 @reflect.Value.Int(%reflect.Value %37) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %38) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %39 = call %"github.com/goplus/llgo/runtime/internal/runtime.eface" @reflect.Value.Interface(%reflect.Value %11) + %40 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %39, 0 + %41 = load ptr, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 + %42 = icmp eq ptr %40, %41 + br i1 %42, label %_llgo_3, label %_llgo_4 + +_llgo_1: ; preds = %_llgo_5 + %43 = load ptr, ptr @_llgo_string, align 8 + %44 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 5 }, ptr %44, align 8 + %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %43, 0 + %46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %45, ptr %44, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %46) + unreachable + +_llgo_2: ; preds = %_llgo_5 + %47 = extractvalue { ptr, ptr } %55, 1 + %48 = extractvalue { ptr, ptr } %55, 0 + %49 = call i64 %48(ptr %47, i64 100) + ret void + +_llgo_3: ; preds = %_llgo_0 + %50 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %39, 1 + %51 = load { ptr, ptr }, ptr %50, align 8 + %52 = insertvalue { { ptr, ptr }, i1 } undef, { ptr, ptr } %51, 0 + %53 = insertvalue { { ptr, ptr }, i1 } %52, i1 true, 1 + br label %_llgo_5 + +_llgo_4: ; preds = %_llgo_0 + br label %_llgo_5 + +_llgo_5: ; preds = %_llgo_4, %_llgo_3 + %54 = phi { { ptr, ptr }, i1 } [ %53, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] + %55 = extractvalue { { ptr, ptr }, i1 } %54, 0 + %56 = extractvalue { { ptr, ptr }, i1 } %54, 1 + br i1 %56, label %_llgo_2, label %_llgo_1 +} + +define i64 @"main.callClosure$1"(ptr %0, i64 %1) { +_llgo_0: + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 12 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %2 = load { ptr }, ptr %0, align 8 + %3 = extractvalue { ptr } %2, 0 + %4 = load i64, ptr %3, align 4 + %5 = add i64 %4, %1 + %6 = add i64 %5, 1 + ret i64 %6 +} + +define void @main.callFunc() { +_llgo_0: + %0 = load ptr, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store { ptr, ptr } { ptr @"__llgo_stub.main.callFunc$1", ptr null }, ptr %1, align 8 + %2 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %0, 0 + %3 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %2, ptr %1, 1 + %4 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %3) + %5 = call i64 @reflect.Value.Kind(%reflect.Value %4) + %6 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @reflect.Value.Type(%reflect.Value %4) + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %6) + %8 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %6, 0 + %9 = getelementptr ptr, ptr %8, i64 37 + %10 = load ptr, ptr %9, align 8 + %11 = insertvalue { ptr, ptr } undef, ptr %10, 0 + %12 = insertvalue { ptr, ptr } %11, ptr %7, 1 + %13 = extractvalue { ptr, ptr } %12, 1 + %14 = extractvalue { ptr, ptr } %12, 0 + %15 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %14(ptr %13) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %5) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %15) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) + %17 = getelementptr inbounds %reflect.Value, ptr %16, i64 0 + %18 = load ptr, ptr @_llgo_int, align 8 + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %18, 0 + %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %19, ptr inttoptr (i64 100 to ptr), 1 + %21 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %20) + store %reflect.Value %21, ptr %17, align 8 + %22 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %16, 0 + %23 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %22, i64 1, 1 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %23, i64 1, 2 + %25 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @reflect.Value.Call(%reflect.Value %4, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24) + %26 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25, 0 + %27 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25, 1 + %28 = icmp sge i64 0, %27 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %28) + %29 = getelementptr inbounds %reflect.Value, ptr %26, i64 0 + %30 = load %reflect.Value, ptr %29, align 8 + %31 = call i64 @reflect.Value.Int(%reflect.Value %30) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %31) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %32 = call %"github.com/goplus/llgo/runtime/internal/runtime.eface" @reflect.Value.Interface(%reflect.Value %4) + %33 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %32, 0 + %34 = load ptr, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 + %35 = icmp eq ptr %33, %34 + br i1 %35, label %_llgo_3, label %_llgo_4 + +_llgo_1: ; preds = %_llgo_5 + %36 = load ptr, ptr @_llgo_string, align 8 + %37 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 5 }, ptr %37, align 8 + %38 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %36, 0 + %39 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %38, ptr %37, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %39) + unreachable + +_llgo_2: ; preds = %_llgo_5 + %40 = extractvalue { ptr, ptr } %48, 1 + %41 = extractvalue { ptr, ptr } %48, 0 + %42 = call i64 %41(ptr %40, i64 100) + ret void + +_llgo_3: ; preds = %_llgo_0 + %43 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %32, 1 + %44 = load { ptr, ptr }, ptr %43, align 8 + %45 = insertvalue { { ptr, ptr }, i1 } undef, { ptr, ptr } %44, 0 + %46 = insertvalue { { ptr, ptr }, i1 } %45, i1 true, 1 + br label %_llgo_5 + +_llgo_4: ; preds = %_llgo_0 + br label %_llgo_5 + +_llgo_5: ; preds = %_llgo_4, %_llgo_3 + %47 = phi { { ptr, ptr }, i1 } [ %46, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] + %48 = extractvalue { { ptr, ptr }, i1 } %47, 0 + %49 = extractvalue { { ptr, ptr }, i1 } %47, 1 + br i1 %49, label %_llgo_2, label %_llgo_1 +} + +define i64 @"main.callFunc$1"(i64 %0) { +_llgo_0: + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 9 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %1 = add i64 %0, 1 + ret i64 %1 +} + +define void @main.callIMethod() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %1 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 0 + store i64 1, ptr %1, align 4 + %2 = load ptr, ptr @_llgo_main.T, align 8 + %3 = load ptr, ptr @"*_llgo_main.T", align 8 + %4 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 + %5 = load ptr, ptr @"_llgo_iface$VdBKYV8-gcMjZtZfcf-u2oKoj9Lu3VXwuG8TGCW2S4A", align 8 + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %5, ptr %3) + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %6, 0 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %7, ptr %0, 1 + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %8) + %10 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %8, 1 + %11 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %9, 0 + %12 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %11, ptr %10, 1 + %13 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %12) + %14 = call %reflect.Value @reflect.Value.Method(%reflect.Value %13, i64 0) + %15 = call i64 @reflect.Value.Kind(%reflect.Value %14) + %16 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @reflect.Value.Type(%reflect.Value %14) + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %16) + %18 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %16, 0 + %19 = getelementptr ptr, ptr %18, i64 37 + %20 = load ptr, ptr %19, align 8 + %21 = insertvalue { ptr, ptr } undef, ptr %20, 0 + %22 = insertvalue { ptr, ptr } %21, ptr %17, 1 + %23 = extractvalue { ptr, ptr } %22, 1 + %24 = extractvalue { ptr, ptr } %22, 0 + %25 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %24(ptr %23) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 7 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %15) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %25) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) + %27 = getelementptr inbounds %reflect.Value, ptr %26, i64 0 + %28 = load ptr, ptr @_llgo_int, align 8 + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %28, 0 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %29, ptr inttoptr (i64 100 to ptr), 1 + %31 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %30) + store %reflect.Value %31, ptr %27, align 8 + %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %26, 0 + %33 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32, i64 1, 1 + %34 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %33, i64 1, 2 + %35 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @reflect.Value.Call(%reflect.Value %14, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %34) + %36 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %35, 0 + %37 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %35, 1 + %38 = icmp sge i64 0, %37 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %38) + %39 = getelementptr inbounds %reflect.Value, ptr %36, i64 0 + %40 = load %reflect.Value, ptr %39, align 8 + %41 = call i64 @reflect.Value.Int(%reflect.Value %40) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %41) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %42 = call %"github.com/goplus/llgo/runtime/internal/runtime.eface" @reflect.Value.Interface(%reflect.Value %14) + %43 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %42, 0 + %44 = load ptr, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 + %45 = icmp eq ptr %43, %44 + br i1 %45, label %_llgo_3, label %_llgo_4 + +_llgo_1: ; preds = %_llgo_5 + %46 = load ptr, ptr @_llgo_string, align 8 + %47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 5 }, ptr %47, align 8 + %48 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %46, 0 + %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %48, ptr %47, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %49) + unreachable + +_llgo_2: ; preds = %_llgo_5 + %50 = extractvalue { ptr, ptr } %76, 1 + %51 = extractvalue { ptr, ptr } %76, 0 + %52 = call i64 %51(ptr %50, i64 1) + %53 = call %"github.com/goplus/llgo/runtime/internal/runtime.eface" @reflect.Value.Interface(%reflect.Value %14) + %54 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %53) + %55 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) + %56 = getelementptr inbounds %reflect.Value, ptr %55, i64 0 + %57 = load ptr, ptr @_llgo_int, align 8 + %58 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %57, 0 + %59 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %58, ptr inttoptr (i64 100 to ptr), 1 + %60 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %59) + store %reflect.Value %60, ptr %56, align 8 + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %55, 0 + %62 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61, i64 1, 1 + %63 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %62, i64 1, 2 + %64 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @reflect.Value.Call(%reflect.Value %54, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %63) + %65 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %64, 0 + %66 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %64, 1 + %67 = icmp sge i64 0, %66 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %67) + %68 = getelementptr inbounds %reflect.Value, ptr %65, i64 0 + %69 = load %reflect.Value, ptr %68, align 8 + %70 = call i64 @reflect.Value.Int(%reflect.Value %69) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %70) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void + +_llgo_3: ; preds = %_llgo_0 + %71 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %42, 1 + %72 = load { ptr, ptr }, ptr %71, align 8 + %73 = insertvalue { { ptr, ptr }, i1 } undef, { ptr, ptr } %72, 0 + %74 = insertvalue { { ptr, ptr }, i1 } %73, i1 true, 1 + br label %_llgo_5 + +_llgo_4: ; preds = %_llgo_0 + br label %_llgo_5 + +_llgo_5: ; preds = %_llgo_4, %_llgo_3 + %75 = phi { { ptr, ptr }, i1 } [ %74, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] + %76 = extractvalue { { ptr, ptr }, i1 } %75, 0 + %77 = extractvalue { { ptr, ptr }, i1 } %75, 1 + br i1 %77, label %_llgo_2, label %_llgo_1 +} + +define void @main.callMethod() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %1 = getelementptr inbounds %main.T, ptr %0, i32 0, i32 0 + store i64 1, ptr %1, align 4 + %2 = load ptr, ptr @"*_llgo_main.T", align 8 + %3 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %2, 0 + %4 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %3, ptr %0, 1 + %5 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %4) + %6 = call %reflect.Value @reflect.Value.Method(%reflect.Value %5, i64 0) + %7 = call i64 @reflect.Value.Kind(%reflect.Value %6) + %8 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @reflect.Value.Type(%reflect.Value %6) + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %8) + %10 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %8, 0 + %11 = getelementptr ptr, ptr %10, i64 37 + %12 = load ptr, ptr %11, align 8 + %13 = insertvalue { ptr, ptr } undef, ptr %12, 0 + %14 = insertvalue { ptr, ptr } %13, ptr %9, 1 + %15 = extractvalue { ptr, ptr } %14, 1 + %16 = extractvalue { ptr, ptr } %14, 0 + %17 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" %16(ptr %15) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 6 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %7) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %17) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %18 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) + %19 = getelementptr inbounds %reflect.Value, ptr %18, i64 0 + %20 = load ptr, ptr @_llgo_int, align 8 + %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %20, 0 + %22 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %21, ptr inttoptr (i64 100 to ptr), 1 + %23 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %22) + store %reflect.Value %23, ptr %19, align 8 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %18, 0 + %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24, i64 1, 1 + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25, i64 1, 2 + %27 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @reflect.Value.Call(%reflect.Value %6, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %26) + %28 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %27, 0 + %29 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %27, 1 + %30 = icmp sge i64 0, %29 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %30) + %31 = getelementptr inbounds %reflect.Value, ptr %28, i64 0 + %32 = load %reflect.Value, ptr %31, align 8 + %33 = call i64 @reflect.Value.Int(%reflect.Value %32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %33) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %34 = call %"github.com/goplus/llgo/runtime/internal/runtime.eface" @reflect.Value.Interface(%reflect.Value %6) + %35 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %34, 0 + %36 = load ptr, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 + %37 = icmp eq ptr %35, %36 + br i1 %37, label %_llgo_3, label %_llgo_4 + +_llgo_1: ; preds = %_llgo_5 + %38 = load ptr, ptr @_llgo_string, align 8 + %39 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 5 }, ptr %39, align 8 + %40 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %38, 0 + %41 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %40, ptr %39, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %41) + unreachable + +_llgo_2: ; preds = %_llgo_5 + %42 = extractvalue { ptr, ptr } %68, 1 + %43 = extractvalue { ptr, ptr } %68, 0 + %44 = call i64 %43(ptr %42, i64 1) + %45 = call %"github.com/goplus/llgo/runtime/internal/runtime.eface" @reflect.Value.Interface(%reflect.Value %6) + %46 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %45) + %47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) + %48 = getelementptr inbounds %reflect.Value, ptr %47, i64 0 + %49 = load ptr, ptr @_llgo_int, align 8 + %50 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %49, 0 + %51 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %50, ptr inttoptr (i64 100 to ptr), 1 + %52 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %51) + store %reflect.Value %52, ptr %48, align 8 + %53 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %47, 0 + %54 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %53, i64 1, 1 + %55 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %54, i64 1, 2 + %56 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @reflect.Value.Call(%reflect.Value %46, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %55) + %57 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %56, 0 + %58 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %56, 1 + %59 = icmp sge i64 0, %58 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %59) + %60 = getelementptr inbounds %reflect.Value, ptr %57, i64 0 + %61 = load %reflect.Value, ptr %60, align 8 + %62 = call i64 @reflect.Value.Int(%reflect.Value %61) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %62) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void + +_llgo_3: ; preds = %_llgo_0 + %63 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %34, 1 + %64 = load { ptr, ptr }, ptr %63, align 8 + %65 = insertvalue { { ptr, ptr }, i1 } undef, { ptr, ptr } %64, 0 + %66 = insertvalue { { ptr, ptr }, i1 } %65, i1 true, 1 + br label %_llgo_5 + +_llgo_4: ; preds = %_llgo_0 + br label %_llgo_5 + +_llgo_5: ; preds = %_llgo_4, %_llgo_3 + %67 = phi { { ptr, ptr }, i1 } [ %66, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] + %68 = extractvalue { { ptr, ptr }, i1 } %67, 0 + %69 = extractvalue { { ptr, ptr }, i1 } %67, 1 + br i1 %69, label %_llgo_2, label %_llgo_1 +} + +define void @main.callSlice() { +_llgo_0: + %0 = load ptr, ptr @_llgo_any, align 8 + %1 = load ptr, ptr @"[]_llgo_any", align 8 + %2 = load ptr, ptr @"_llgo_func$KK0iU4Wpi3BdRqssvycXqtgNe2Dq1riBlM61Rds1QsU", align 8 + %3 = load ptr, ptr @"main.struct$FjMjjQr3-2iTiWyZP1IIQFOz0hUCa0OS6pEm5uVV6Pk", align 8 + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store { ptr, ptr } { ptr @__llgo_stub.main.demo, ptr null }, ptr %4, align 8 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %3, 0 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %5, ptr %4, 1 + %7 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %6) + %8 = load ptr, ptr @_llgo_int, align 8 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %8, 0 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %9, ptr inttoptr (i64 1 to ptr), 1 + %11 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %10) + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 288) + %13 = getelementptr inbounds %reflect.Value, ptr %12, i64 0 + store %reflect.Value %11, ptr %13, align 8 + %14 = getelementptr inbounds %reflect.Value, ptr %12, i64 1 + store %reflect.Value %11, ptr %14, align 8 + %15 = getelementptr inbounds %reflect.Value, ptr %12, i64 2 + store %reflect.Value %11, ptr %15, align 8 + %16 = getelementptr inbounds %reflect.Value, ptr %12, i64 3 + store %reflect.Value %11, ptr %16, align 8 + %17 = getelementptr inbounds %reflect.Value, ptr %12, i64 4 + store %reflect.Value %11, ptr %17, align 8 + %18 = getelementptr inbounds %reflect.Value, ptr %12, i64 5 + store %reflect.Value %11, ptr %18, align 8 + %19 = getelementptr inbounds %reflect.Value, ptr %12, i64 6 + store %reflect.Value %11, ptr %19, align 8 + %20 = getelementptr inbounds %reflect.Value, ptr %12, i64 7 + store %reflect.Value %11, ptr %20, align 8 + %21 = getelementptr inbounds %reflect.Value, ptr %12, i64 8 + store %reflect.Value %11, ptr %21, align 8 + %22 = getelementptr inbounds %reflect.Value, ptr %12, i64 9 + %23 = load ptr, ptr @_llgo_int, align 8 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %23, 0 + %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %24, ptr inttoptr (i64 1 to ptr), 1 + %26 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %25) + store %reflect.Value %26, ptr %22, align 8 + %27 = getelementptr inbounds %reflect.Value, ptr %12, i64 10 + %28 = load ptr, ptr @_llgo_int, align 8 + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %28, 0 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %29, ptr inttoptr (i64 2 to ptr), 1 + %31 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %30) + store %reflect.Value %31, ptr %27, align 8 + %32 = getelementptr inbounds %reflect.Value, ptr %12, i64 11 + %33 = load ptr, ptr @_llgo_int, align 8 + %34 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %33, 0 + %35 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %34, ptr inttoptr (i64 3 to ptr), 1 + %36 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %35) + store %reflect.Value %36, ptr %32, align 8 + %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %12, 0 + %38 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %37, i64 12, 1 + %39 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %38, i64 12, 2 + %40 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @reflect.Value.Call(%reflect.Value %7, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %39) + %41 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %40, 0 + %42 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %40, 1 + %43 = icmp sge i64 0, %42 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %43) + %44 = getelementptr inbounds %reflect.Value, ptr %41, i64 0 + %45 = load %reflect.Value, ptr %44, align 8 + %46 = call i64 @reflect.Value.Int(%reflect.Value %45) + %47 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %40, 0 + %48 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %40, 1 + %49 = icmp sge i64 1, %48 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %49) + %50 = getelementptr inbounds %reflect.Value, ptr %47, i64 1 + %51 = load %reflect.Value, ptr %50, align 8 + %52 = call i64 @reflect.Value.Int(%reflect.Value %51) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @14, i64 10 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %46) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %52) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %53 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 240) + %54 = getelementptr inbounds %reflect.Value, ptr %53, i64 0 + store %reflect.Value %11, ptr %54, align 8 + %55 = getelementptr inbounds %reflect.Value, ptr %53, i64 1 + store %reflect.Value %11, ptr %55, align 8 + %56 = getelementptr inbounds %reflect.Value, ptr %53, i64 2 + store %reflect.Value %11, ptr %56, align 8 + %57 = getelementptr inbounds %reflect.Value, ptr %53, i64 3 + store %reflect.Value %11, ptr %57, align 8 + %58 = getelementptr inbounds %reflect.Value, ptr %53, i64 4 + store %reflect.Value %11, ptr %58, align 8 + %59 = getelementptr inbounds %reflect.Value, ptr %53, i64 5 + store %reflect.Value %11, ptr %59, align 8 + %60 = getelementptr inbounds %reflect.Value, ptr %53, i64 6 + store %reflect.Value %11, ptr %60, align 8 + %61 = getelementptr inbounds %reflect.Value, ptr %53, i64 7 + store %reflect.Value %11, ptr %61, align 8 + %62 = getelementptr inbounds %reflect.Value, ptr %53, i64 8 + store %reflect.Value %11, ptr %62, align 8 + %63 = getelementptr inbounds %reflect.Value, ptr %53, i64 9 + %64 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 48) + %65 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %64, i64 0 + %66 = load ptr, ptr @_llgo_int, align 8 + %67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %66, 0 + %68 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %67, ptr inttoptr (i64 1 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %68, ptr %65, align 8 + %69 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %64, i64 1 + %70 = load ptr, ptr @_llgo_int, align 8 + %71 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %70, 0 + %72 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %71, ptr inttoptr (i64 2 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %72, ptr %69, align 8 + %73 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %64, i64 2 + %74 = load ptr, ptr @_llgo_int, align 8 + %75 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %74, 0 + %76 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %75, ptr inttoptr (i64 3 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %76, ptr %73, align 8 + %77 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %64, 0 + %78 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %77, i64 3, 1 + %79 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %78, i64 3, 2 + %80 = load ptr, ptr @"[]_llgo_any", align 8 + %81 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + store %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %79, ptr %81, align 8 + %82 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %80, 0 + %83 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %82, ptr %81, 1 + %84 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %83) + store %reflect.Value %84, ptr %63, align 8 + %85 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %53, 0 + %86 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %85, i64 10, 1 + %87 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %86, i64 10, 2 + %88 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @reflect.Value.CallSlice(%reflect.Value %7, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %87) + %89 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %88, 0 + %90 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %88, 1 + %91 = icmp sge i64 0, %90 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %91) + %92 = getelementptr inbounds %reflect.Value, ptr %89, i64 0 + %93 = load %reflect.Value, ptr %92, align 8 + %94 = call i64 @reflect.Value.Int(%reflect.Value %93) + %95 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %88, 0 + %96 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %88, 1 + %97 = icmp sge i64 1, %96 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %97) + %98 = getelementptr inbounds %reflect.Value, ptr %95, i64 1 + %99 = load %reflect.Value, ptr %98, align 8 + %100 = call i64 @reflect.Value.Int(%reflect.Value %99) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @14, i64 10 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %94) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %100) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define { i64, i64 } @main.demo(i64 %0, i64 %1, i64 %2, i64 %3, i64 %4, i64 %5, i64 %6, i64 %7, i64 %8, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9) { +_llgo_0: + %10 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 1 + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_4, %_llgo_0 + %11 = phi i64 [ 0, %_llgo_0 ], [ %37, %_llgo_4 ] + %12 = phi i64 [ -1, %_llgo_0 ], [ %13, %_llgo_4 ] + %13 = add i64 %12, 1 + %14 = icmp slt i64 %13, %10 + br i1 %14, label %_llgo_2, label %_llgo_3 + +_llgo_2: ; preds = %_llgo_1 + %15 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 0 + %16 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 1 + %17 = icmp slt i64 %13, 0 + %18 = icmp sge i64 %13, %16 + %19 = or i1 %18, %17 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %19) + %20 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %15, i64 %13 + %21 = load %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %20, align 8 + %22 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %21, 0 + %23 = load ptr, ptr @_llgo_int, align 8 + %24 = icmp eq ptr %22, %23 + br i1 %24, label %_llgo_4, label %_llgo_5 + +_llgo_3: ; preds = %_llgo_1 + %25 = add i64 %0, %1 + %26 = add i64 %25, %2 + %27 = add i64 %26, %3 + %28 = add i64 %27, %4 + %29 = add i64 %28, %5 + %30 = add i64 %29, %6 + %31 = add i64 %30, %7 + %32 = add i64 %31, %8 + %33 = insertvalue { i64, i64 } undef, i64 %32, 0 + %34 = insertvalue { i64, i64 } %33, i64 %11, 1 + ret { i64, i64 } %34 + +_llgo_4: ; preds = %_llgo_2 + %35 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %21, 1 + %36 = ptrtoint ptr %35 to i64 + %37 = add i64 %11, %36 + br label %_llgo_1 + +_llgo_5: ; preds = %_llgo_2 + %38 = load ptr, ptr @_llgo_string, align 8 + %39 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @15, i64 21 }, ptr %39, align 8 + %40 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %38, 0 + %41 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %40, ptr %39, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %41) + unreachable +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @reflect.init() + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + call void @main.callSlice() + call void @main.callFunc() + call void @main.callClosure() + call void @main.callMethod() + call void @main.callIMethod() + call void @main.mapDemo1() + call void @main.mapDemo2() + ret i32 0 +} + +define void @main.mapDemo1() { +_llgo_0: + %0 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr %0, i64 2) + %2 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 1, ptr %3, align 4 + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %2, ptr %1, ptr %3) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @20, i64 5 }, ptr %4, align 8 + %5 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 2, ptr %6, align 4 + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %5, ptr %1, ptr %6) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 5 }, ptr %7, align 8 + %8 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %8, 0 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %9, ptr %1, 1 + %11 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %10) + %12 = call i64 @reflect.Value.Len(%reflect.Value %11) + %13 = icmp ne i64 %12, 2 + br i1 %13, label %_llgo_1, label %_llgo_3 + +_llgo_1: ; preds = %_llgo_3, %_llgo_0 + %14 = load ptr, ptr @_llgo_string, align 8 + %15 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 5 }, ptr %15, align 8 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %14, 0 + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %16, ptr %15, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %17) + unreachable + +_llgo_2: ; preds = %_llgo_3 + %18 = load ptr, ptr @_llgo_int, align 8 + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %18, 0 + %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %19, ptr inttoptr (i64 2 to ptr), 1 + %21 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %20) + %22 = call %reflect.Value @reflect.Value.MapIndex(%reflect.Value %11, %reflect.Value %21) + %23 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @reflect.Value.String(%reflect.Value %22) + %24 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %23, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 5 }) + %25 = xor i1 %24, true + br i1 %25, label %_llgo_4, label %_llgo_5 + +_llgo_3: ; preds = %_llgo_0 + %26 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @reflect.Value.MapKeys(%reflect.Value %11) + %27 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %26, 1 + %28 = icmp ne i64 %27, 2 + br i1 %28, label %_llgo_1, label %_llgo_2 + +_llgo_4: ; preds = %_llgo_2 + %29 = load ptr, ptr @_llgo_string, align 8 + %30 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 14 }, ptr %30, align 8 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %29, 0 + %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %31, ptr %30, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %32) + unreachable + +_llgo_5: ; preds = %_llgo_2 + %33 = load ptr, ptr @_llgo_int, align 8 + %34 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %33, 0 + %35 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %34, ptr inttoptr (i64 2 to ptr), 1 + %36 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %35) + %37 = load ptr, ptr @_llgo_string, align 8 + %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 4 }, ptr %38, align 8 + %39 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %37, 0 + %40 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %39, ptr %38, 1 + %41 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %40) + call void @reflect.Value.SetMapIndex(%reflect.Value %11, %reflect.Value %36, %reflect.Value %41) + %42 = load ptr, ptr @_llgo_int, align 8 + %43 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %42, 0 + %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %43, ptr inttoptr (i64 2 to ptr), 1 + %45 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %44) + %46 = call %reflect.Value @reflect.Value.MapIndex(%reflect.Value %11, %reflect.Value %45) + %47 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @reflect.Value.String(%reflect.Value %46) + %48 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %47, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 4 }) + %49 = xor i1 %48, true + br i1 %49, label %_llgo_6, label %_llgo_7 + +_llgo_6: ; preds = %_llgo_5 + %50 = load ptr, ptr @_llgo_string, align 8 + %51 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 14 }, ptr %51, align 8 + %52 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %50, 0 + %53 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %52, ptr %51, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %53) + unreachable + +_llgo_7: ; preds = %_llgo_5 + %54 = load ptr, ptr @_llgo_int, align 8 + %55 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %54, 0 + %56 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %55, ptr null, 1 + %57 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %56) + %58 = call %reflect.Value @reflect.Value.MapIndex(%reflect.Value %11, %reflect.Value %57) + %59 = call i1 @reflect.Value.IsValid(%reflect.Value %58) + br i1 %59, label %_llgo_8, label %_llgo_9 + +_llgo_8: ; preds = %_llgo_7 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 12 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + br label %_llgo_9 + +_llgo_9: ; preds = %_llgo_8, %_llgo_7 + %60 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @reflect.Value.Type(%reflect.Value %11) + %61 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %60) + %62 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %60, 0 + %63 = getelementptr ptr, ptr %62, i64 20 + %64 = load ptr, ptr %63, align 8 + %65 = insertvalue { ptr, ptr } undef, ptr %64, 0 + %66 = insertvalue { ptr, ptr } %65, ptr %61, 1 + %67 = extractvalue { ptr, ptr } %66, 1 + %68 = extractvalue { ptr, ptr } %66, 0 + %69 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" %68(ptr %67) + %70 = call %reflect.Value @reflect.New(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %69) + %71 = call %reflect.Value @reflect.Value.Elem(%reflect.Value %70) + %72 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @reflect.Value.Type(%reflect.Value %11) + %73 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %72) + %74 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %72, 0 + %75 = getelementptr ptr, ptr %74, i64 11 + %76 = load ptr, ptr %75, align 8 + %77 = insertvalue { ptr, ptr } undef, ptr %76, 0 + %78 = insertvalue { ptr, ptr } %77, ptr %73, 1 + %79 = extractvalue { ptr, ptr } %78, 1 + %80 = extractvalue { ptr, ptr } %78, 0 + %81 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" %80(ptr %79) + %82 = call %reflect.Value @reflect.New(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %81) + %83 = call %reflect.Value @reflect.Value.Elem(%reflect.Value %82) + %84 = call ptr @reflect.Value.MapRange(%reflect.Value %11) + br label %_llgo_12 + +_llgo_10: ; preds = %_llgo_12 + call void @reflect.Value.SetIterKey(%reflect.Value %71, ptr %84) + call void @reflect.Value.SetIterValue(%reflect.Value %83, ptr %84) + %85 = call i64 @reflect.Value.Int(%reflect.Value %71) + %86 = call %reflect.Value @"reflect.(*MapIter).Key"(ptr %84) + %87 = call i64 @reflect.Value.Int(%reflect.Value %86) + %88 = icmp ne i64 %85, %87 + br i1 %88, label %_llgo_13, label %_llgo_14 + +_llgo_11: ; preds = %_llgo_12 + ret void + +_llgo_12: ; preds = %_llgo_14, %_llgo_9 + %89 = call i1 @"reflect.(*MapIter).Next"(ptr %84) + br i1 %89, label %_llgo_10, label %_llgo_11 + +_llgo_13: ; preds = %_llgo_14, %_llgo_10 + %90 = load ptr, ptr @_llgo_string, align 8 + %91 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @25, i64 13 }, ptr %91, align 8 + %92 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %90, 0 + %93 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %92, ptr %91, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %93) + unreachable + +_llgo_14: ; preds = %_llgo_10 + %94 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @reflect.Value.String(%reflect.Value %83) + %95 = call %reflect.Value @"reflect.(*MapIter).Value"(ptr %84) + %96 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @reflect.Value.String(%reflect.Value %95) + %97 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %94, %"github.com/goplus/llgo/runtime/internal/runtime.String" %96) + %98 = xor i1 %97, true + br i1 %98, label %_llgo_13, label %_llgo_12 +} + +define void @main.mapDemo2() { +_llgo_0: + %0 = load ptr, ptr @_llgo_int, align 8 + %1 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %0, 0 + %2 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %1, ptr null, 1 + %3 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @reflect.TypeOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %2) + %4 = load ptr, ptr @_llgo_string, align 8 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + %8 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @reflect.TypeOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) + %9 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @reflect.MapOf(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %3, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %8) + %10 = call %reflect.Value @reflect.MakeMap(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %9) + %11 = load ptr, ptr @_llgo_int, align 8 + %12 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %11, 0 + %13 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %12, ptr inttoptr (i64 1 to ptr), 1 + %14 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %13) + %15 = load ptr, ptr @_llgo_string, align 8 + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @20, i64 5 }, ptr %16, align 8 + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %15, 0 + %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %17, ptr %16, 1 + %19 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %18) + call void @reflect.Value.SetMapIndex(%reflect.Value %10, %reflect.Value %14, %reflect.Value %19) + %20 = load ptr, ptr @_llgo_int, align 8 + %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %20, 0 + %22 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %21, ptr inttoptr (i64 2 to ptr), 1 + %23 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %22) + %24 = load ptr, ptr @_llgo_string, align 8 + %25 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 5 }, ptr %25, align 8 + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %24, 0 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %26, ptr %25, 1 + %28 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %27) + call void @reflect.Value.SetMapIndex(%reflect.Value %10, %reflect.Value %23, %reflect.Value %28) + %29 = call i64 @reflect.Value.Len(%reflect.Value %10) + %30 = icmp ne i64 %29, 2 + br i1 %30, label %_llgo_1, label %_llgo_3 + +_llgo_1: ; preds = %_llgo_3, %_llgo_0 + %31 = load ptr, ptr @_llgo_string, align 8 + %32 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 5 }, ptr %32, align 8 + %33 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %31, 0 + %34 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %33, ptr %32, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %34) + unreachable + +_llgo_2: ; preds = %_llgo_3 + %35 = load ptr, ptr @_llgo_int, align 8 + %36 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %35, 0 + %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %36, ptr inttoptr (i64 2 to ptr), 1 + %38 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %37) + %39 = call %reflect.Value @reflect.Value.MapIndex(%reflect.Value %10, %reflect.Value %38) + %40 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @reflect.Value.String(%reflect.Value %39) + %41 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %40, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 5 }) + %42 = xor i1 %41, true + br i1 %42, label %_llgo_4, label %_llgo_5 + +_llgo_3: ; preds = %_llgo_0 + %43 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @reflect.Value.MapKeys(%reflect.Value %10) + %44 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %43, 1 + %45 = icmp ne i64 %44, 2 + br i1 %45, label %_llgo_1, label %_llgo_2 + +_llgo_4: ; preds = %_llgo_2 + %46 = load ptr, ptr @_llgo_string, align 8 + %47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 14 }, ptr %47, align 8 + %48 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %46, 0 + %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %48, ptr %47, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %49) + unreachable + +_llgo_5: ; preds = %_llgo_2 + %50 = load ptr, ptr @_llgo_int, align 8 + %51 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %50, 0 + %52 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %51, ptr inttoptr (i64 2 to ptr), 1 + %53 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %52) + %54 = load ptr, ptr @_llgo_string, align 8 + %55 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 4 }, ptr %55, align 8 + %56 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %54, 0 + %57 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %56, ptr %55, 1 + %58 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %57) + call void @reflect.Value.SetMapIndex(%reflect.Value %10, %reflect.Value %53, %reflect.Value %58) + %59 = load ptr, ptr @_llgo_int, align 8 + %60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %59, 0 + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %60, ptr inttoptr (i64 2 to ptr), 1 + %62 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %61) + %63 = call %reflect.Value @reflect.Value.MapIndex(%reflect.Value %10, %reflect.Value %62) + %64 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @reflect.Value.String(%reflect.Value %63) + %65 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %64, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 4 }) + %66 = xor i1 %65, true + br i1 %66, label %_llgo_6, label %_llgo_7 + +_llgo_6: ; preds = %_llgo_5 + %67 = load ptr, ptr @_llgo_string, align 8 + %68 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 14 }, ptr %68, align 8 + %69 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %67, 0 + %70 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %69, ptr %68, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %70) + unreachable + +_llgo_7: ; preds = %_llgo_5 + %71 = load ptr, ptr @_llgo_int, align 8 + %72 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %71, 0 + %73 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %72, ptr null, 1 + %74 = call %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %73) + %75 = call %reflect.Value @reflect.Value.MapIndex(%reflect.Value %10, %reflect.Value %74) + %76 = call i1 @reflect.Value.IsValid(%reflect.Value %75) + br i1 %76, label %_llgo_8, label %_llgo_9 + +_llgo_8: ; preds = %_llgo_7 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 12 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + br label %_llgo_9 + +_llgo_9: ; preds = %_llgo_8, %_llgo_7 + %77 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @reflect.Value.Type(%reflect.Value %10) + %78 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %77) + %79 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %77, 0 + %80 = getelementptr ptr, ptr %79, i64 20 + %81 = load ptr, ptr %80, align 8 + %82 = insertvalue { ptr, ptr } undef, ptr %81, 0 + %83 = insertvalue { ptr, ptr } %82, ptr %78, 1 + %84 = extractvalue { ptr, ptr } %83, 1 + %85 = extractvalue { ptr, ptr } %83, 0 + %86 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" %85(ptr %84) + %87 = call %reflect.Value @reflect.New(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %86) + %88 = call %reflect.Value @reflect.Value.Elem(%reflect.Value %87) + %89 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @reflect.Value.Type(%reflect.Value %10) + %90 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %89) + %91 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %89, 0 + %92 = getelementptr ptr, ptr %91, i64 11 + %93 = load ptr, ptr %92, align 8 + %94 = insertvalue { ptr, ptr } undef, ptr %93, 0 + %95 = insertvalue { ptr, ptr } %94, ptr %90, 1 + %96 = extractvalue { ptr, ptr } %95, 1 + %97 = extractvalue { ptr, ptr } %95, 0 + %98 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" %97(ptr %96) + %99 = call %reflect.Value @reflect.New(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %98) + %100 = call %reflect.Value @reflect.Value.Elem(%reflect.Value %99) + %101 = call ptr @reflect.Value.MapRange(%reflect.Value %10) + br label %_llgo_12 + +_llgo_10: ; preds = %_llgo_12 + call void @reflect.Value.SetIterKey(%reflect.Value %88, ptr %101) + call void @reflect.Value.SetIterValue(%reflect.Value %100, ptr %101) + %102 = call i64 @reflect.Value.Int(%reflect.Value %88) + %103 = call %reflect.Value @"reflect.(*MapIter).Key"(ptr %101) + %104 = call i64 @reflect.Value.Int(%reflect.Value %103) + %105 = icmp ne i64 %102, %104 + br i1 %105, label %_llgo_13, label %_llgo_14 + +_llgo_11: ; preds = %_llgo_12 + ret void + +_llgo_12: ; preds = %_llgo_14, %_llgo_9 + %106 = call i1 @"reflect.(*MapIter).Next"(ptr %101) + br i1 %106, label %_llgo_10, label %_llgo_11 + +_llgo_13: ; preds = %_llgo_14, %_llgo_10 + %107 = load ptr, ptr @_llgo_string, align 8 + %108 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @25, i64 13 }, ptr %108, align 8 + %109 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %107, 0 + %110 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %109, ptr %108, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %110) + unreachable + +_llgo_14: ; preds = %_llgo_10 + %111 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @reflect.Value.String(%reflect.Value %100) + %112 = call %reflect.Value @"reflect.(*MapIter).Value"(ptr %101) + %113 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @reflect.Value.String(%reflect.Value %112) + %114 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %111, %"github.com/goplus/llgo/runtime/internal/runtime.String" %113) + %115 = xor i1 %114, true + br i1 %115, label %_llgo_13, label %_llgo_12 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare %reflect.Value @reflect.ValueOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_int, align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %2, ptr @_llgo_int, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @_llgo_int, align 8 + %4 = load ptr, ptr @_llgo_int, align 8 + %5 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 + %6 = icmp eq ptr %5, null + br i1 %6, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %8 = getelementptr ptr, ptr %7, i64 0 + store ptr %3, ptr %8, align 8 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %7, 0 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, i64 1, 1 + %11 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %10, i64 1, 2 + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %13 = getelementptr ptr, ptr %12, i64 0 + store ptr %4, ptr %13, align 8 + %14 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %12, 0 + %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %14, i64 1, 1 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %15, i64 1, 2 + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %11, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %17) + store ptr %17, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %18 = load ptr, ptr @_llgo_Pointer, align 8 + %19 = icmp eq ptr %18, null + br i1 %19, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %20 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %20) + store ptr %20, ptr @_llgo_Pointer, align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %21 = load ptr, ptr @_llgo_int, align 8 + %22 = load ptr, ptr @_llgo_int, align 8 + %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %24 = getelementptr ptr, ptr %23, i64 0 + store ptr %21, ptr %24, align 8 + %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %23, 0 + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25, i64 1, 1 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %26, i64 1, 2 + %28 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %29 = getelementptr ptr, ptr %28, i64 0 + store ptr %22, ptr %29, align 8 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %28, 0 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30, i64 1, 1 + %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %31, i64 1, 2 + %33 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %27, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32, i1 false) + %34 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 2 }, ptr %33, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %36 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 5 }, ptr %35, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %37 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %38 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %37, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %34, ptr %38, align 8 + %39 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %37, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %36, ptr %39, align 8 + %40 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %37, 0 + %41 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %40, i64 2, 1 + %42 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %41, i64 2, 2 + %43 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %42) + store ptr %43, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 + %44 = load ptr, ptr @_llgo_string, align 8 + %45 = icmp eq ptr %44, null + br i1 %45, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %46 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %46, ptr @_llgo_string, align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 1 }, i64 25, i64 8, i64 0, i64 1) + %48 = load ptr, ptr @_llgo_main.T, align 8 + %49 = icmp eq ptr %48, null + br i1 %49, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + store ptr %47, ptr @_llgo_main.T, align 8 + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_8 + %50 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %51 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 1 }, ptr %50, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %52 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %53 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %52, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %51, ptr %53, align 8 + %54 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %52, 0 + %55 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %54, i64 1, 1 + %56 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %55, i64 1, 2 + %57 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %56) + store ptr %57, ptr @"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U", align 8 + %58 = load ptr, ptr @"main.struct$eovYmOhZg4X0zMSsuscSshndnbbAGvB2E3cyG8E7Y4U", align 8 + br i1 %49, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + %59 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 + %60 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %59, 1 + %61 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %60, ptr @"main.(*T).Add", 2 + %62 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %61, ptr @"main.(*T).Add", 3 + %63 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %64 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %63, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %62, ptr %64, align 8 + %65 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %63, 0 + %66 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %65, i64 1, 1 + %67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %66, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %47, ptr %58, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %67) + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_10 + %68 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 1 }, i64 25, i64 8, i64 0, i64 1) + %69 = load ptr, ptr @"*_llgo_main.T", align 8 + %70 = icmp eq ptr %69, null + br i1 %70, label %_llgo_13, label %_llgo_14 + +_llgo_13: ; preds = %_llgo_12 + %71 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %68) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %71) + store ptr %71, ptr @"*_llgo_main.T", align 8 + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_12 + %72 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 + %73 = load ptr, ptr @"_llgo_iface$VdBKYV8-gcMjZtZfcf-u2oKoj9Lu3VXwuG8TGCW2S4A", align 8 + %74 = icmp eq ptr %73, null + br i1 %74, label %_llgo_15, label %_llgo_16 + +_llgo_15: ; preds = %_llgo_14 + %75 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 3 }, ptr undef }, ptr %72, 1 + %76 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %77 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %76, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %75, ptr %77, align 8 + %78 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %76, 0 + %79 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %78, i64 1, 1 + %80 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %79, i64 1, 2 + %81 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %80) + store ptr %81, ptr @"_llgo_iface$VdBKYV8-gcMjZtZfcf-u2oKoj9Lu3VXwuG8TGCW2S4A", align 8 + br label %_llgo_16 + +_llgo_16: ; preds = %_llgo_15, %_llgo_14 + %82 = load ptr, ptr @_llgo_any, align 8 + %83 = icmp eq ptr %82, null + br i1 %83, label %_llgo_17, label %_llgo_18 + +_llgo_17: ; preds = %_llgo_16 + %84 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %85 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %84, 0 + %86 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %85, i64 0, 1 + %87 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %86, i64 0, 2 + %88 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %87) + store ptr %88, ptr @_llgo_any, align 8 + br label %_llgo_18 + +_llgo_18: ; preds = %_llgo_17, %_llgo_16 + %89 = load ptr, ptr @"[]_llgo_any", align 8 + %90 = icmp eq ptr %89, null + br i1 %90, label %_llgo_19, label %_llgo_20 + +_llgo_19: ; preds = %_llgo_18 + %91 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %92 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %91, 0 + %93 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %92, i64 0, 1 + %94 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %93, i64 0, 2 + %95 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %94) + %96 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %95) + store ptr %96, ptr @"[]_llgo_any", align 8 + br label %_llgo_20 + +_llgo_20: ; preds = %_llgo_19, %_llgo_18 + %97 = load ptr, ptr @_llgo_int, align 8 + %98 = load ptr, ptr @_llgo_int, align 8 + %99 = load ptr, ptr @_llgo_int, align 8 + %100 = load ptr, ptr @_llgo_int, align 8 + %101 = load ptr, ptr @_llgo_int, align 8 + %102 = load ptr, ptr @_llgo_int, align 8 + %103 = load ptr, ptr @_llgo_int, align 8 + %104 = load ptr, ptr @_llgo_int, align 8 + %105 = load ptr, ptr @_llgo_int, align 8 + %106 = load ptr, ptr @"[]_llgo_any", align 8 + %107 = load ptr, ptr @_llgo_int, align 8 + %108 = load ptr, ptr @_llgo_int, align 8 + %109 = load ptr, ptr @"_llgo_func$KK0iU4Wpi3BdRqssvycXqtgNe2Dq1riBlM61Rds1QsU", align 8 + %110 = icmp eq ptr %109, null + br i1 %110, label %_llgo_21, label %_llgo_22 + +_llgo_21: ; preds = %_llgo_20 + %111 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %112 = getelementptr ptr, ptr %111, i64 0 + store ptr %97, ptr %112, align 8 + %113 = getelementptr ptr, ptr %111, i64 1 + store ptr %98, ptr %113, align 8 + %114 = getelementptr ptr, ptr %111, i64 2 + store ptr %99, ptr %114, align 8 + %115 = getelementptr ptr, ptr %111, i64 3 + store ptr %100, ptr %115, align 8 + %116 = getelementptr ptr, ptr %111, i64 4 + store ptr %101, ptr %116, align 8 + %117 = getelementptr ptr, ptr %111, i64 5 + store ptr %102, ptr %117, align 8 + %118 = getelementptr ptr, ptr %111, i64 6 + store ptr %103, ptr %118, align 8 + %119 = getelementptr ptr, ptr %111, i64 7 + store ptr %104, ptr %119, align 8 + %120 = getelementptr ptr, ptr %111, i64 8 + store ptr %105, ptr %120, align 8 + %121 = getelementptr ptr, ptr %111, i64 9 + store ptr %106, ptr %121, align 8 + %122 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %111, 0 + %123 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %122, i64 10, 1 + %124 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %123, i64 10, 2 + %125 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %126 = getelementptr ptr, ptr %125, i64 0 + store ptr %107, ptr %126, align 8 + %127 = getelementptr ptr, ptr %125, i64 1 + store ptr %108, ptr %127, align 8 + %128 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %125, 0 + %129 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %128, i64 2, 1 + %130 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %129, i64 2, 2 + %131 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %124, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %130, i1 true) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %131) + store ptr %131, ptr @"_llgo_func$KK0iU4Wpi3BdRqssvycXqtgNe2Dq1riBlM61Rds1QsU", align 8 + br label %_llgo_22 + +_llgo_22: ; preds = %_llgo_21, %_llgo_20 + %132 = load ptr, ptr @_llgo_int, align 8 + %133 = load ptr, ptr @_llgo_int, align 8 + %134 = load ptr, ptr @_llgo_int, align 8 + %135 = load ptr, ptr @_llgo_int, align 8 + %136 = load ptr, ptr @_llgo_int, align 8 + %137 = load ptr, ptr @_llgo_int, align 8 + %138 = load ptr, ptr @_llgo_int, align 8 + %139 = load ptr, ptr @_llgo_int, align 8 + %140 = load ptr, ptr @_llgo_int, align 8 + %141 = load ptr, ptr @"[]_llgo_any", align 8 + %142 = load ptr, ptr @_llgo_int, align 8 + %143 = load ptr, ptr @_llgo_int, align 8 + %144 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %145 = getelementptr ptr, ptr %144, i64 0 + store ptr %132, ptr %145, align 8 + %146 = getelementptr ptr, ptr %144, i64 1 + store ptr %133, ptr %146, align 8 + %147 = getelementptr ptr, ptr %144, i64 2 + store ptr %134, ptr %147, align 8 + %148 = getelementptr ptr, ptr %144, i64 3 + store ptr %135, ptr %148, align 8 + %149 = getelementptr ptr, ptr %144, i64 4 + store ptr %136, ptr %149, align 8 + %150 = getelementptr ptr, ptr %144, i64 5 + store ptr %137, ptr %150, align 8 + %151 = getelementptr ptr, ptr %144, i64 6 + store ptr %138, ptr %151, align 8 + %152 = getelementptr ptr, ptr %144, i64 7 + store ptr %139, ptr %152, align 8 + %153 = getelementptr ptr, ptr %144, i64 8 + store ptr %140, ptr %153, align 8 + %154 = getelementptr ptr, ptr %144, i64 9 + store ptr %141, ptr %154, align 8 + %155 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %144, 0 + %156 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %155, i64 10, 1 + %157 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %156, i64 10, 2 + %158 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %159 = getelementptr ptr, ptr %158, i64 0 + store ptr %142, ptr %159, align 8 + %160 = getelementptr ptr, ptr %158, i64 1 + store ptr %143, ptr %160, align 8 + %161 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %158, 0 + %162 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %161, i64 2, 1 + %163 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %162, i64 2, 2 + %164 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %157, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %163, i1 true) + %165 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 2 }, ptr %164, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %166 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %167 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 5 }, ptr %166, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %168 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %169 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %168, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %165, ptr %169, align 8 + %170 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %168, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %167, ptr %170, align 8 + %171 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %168, 0 + %172 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %171, i64 2, 1 + %173 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %172, i64 2, 2 + %174 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %173) + store ptr %174, ptr @"main.struct$FjMjjQr3-2iTiWyZP1IIQFOz0hUCa0OS6pEm5uVV6Pk", align 8 + %175 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %176 = icmp eq ptr %175, null + br i1 %176, label %_llgo_23, label %_llgo_24 + +_llgo_23: ; preds = %_llgo_22 + %177 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %178 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %179 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %180 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %179) + %181 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @16, i64 7 }, ptr %180, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %182 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %183 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %182) + %184 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 4 }, ptr %183, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %185 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %186 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %185) + %187 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 5 }, ptr %186, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %188 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %189 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 8 }, ptr %188, i64 200, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %190 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %191 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %190, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %181, ptr %191, align 8 + %192 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %190, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %184, ptr %192, align 8 + %193 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %190, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %187, ptr %193, align 8 + %194 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %190, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %189, ptr %194, align 8 + %195 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %190, 0 + %196 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %195, i64 4, 1 + %197 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %196, i64 4, 2 + %198 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 208, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %197) + %199 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr %177, ptr %178, ptr %198, i64 4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %199) + store ptr %199, ptr @"map[_llgo_int]_llgo_string", align 8 + br label %_llgo_24 + +_llgo_24: ; preds = %_llgo_23, %_llgo_22 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice", i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare i64 @reflect.Value.Kind(%reflect.Value) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.iface" @reflect.Value.Type(%reflect.Value) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @reflect.Value.Call(%reflect.Value, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) + +declare i64 @reflect.Value.Int(%reflect.Value) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.eface" @reflect.Value.Interface(%reflect.Value) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +define linkonce i64 @"__llgo_stub.main.callFunc$1"(ptr %0, i64 %1) { +_llgo_0: + %2 = tail call i64 @"main.callFunc$1"(i64 %1) + ret i64 %2 +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare %reflect.Value @reflect.Value.Method(%reflect.Value, i64) + +define linkonce { i64, i64 } @__llgo_stub.main.demo(ptr %0, i64 %1, i64 %2, i64 %3, i64 %4, i64 %5, i64 %6, i64 %7, i64 %8, i64 %9, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %10) { +_llgo_0: + %11 = tail call { i64, i64 } @main.demo(i64 %1, i64 %2, i64 %3, i64 %4, i64 %5, i64 %6, i64 %7, i64 %8, i64 %9, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %10) + ret { i64, i64 } %11 +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @reflect.Value.CallSlice(%reflect.Value, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare void @reflect.init() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr, ptr, ptr, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr, ptr, ptr) + +declare i64 @reflect.Value.Len(%reflect.Value) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @reflect.Value.MapKeys(%reflect.Value) + +declare %reflect.Value @reflect.Value.MapIndex(%reflect.Value, %reflect.Value) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @reflect.Value.String(%reflect.Value) + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @reflect.Value.SetMapIndex(%reflect.Value, %reflect.Value, %reflect.Value) + +declare i1 @reflect.Value.IsValid(%reflect.Value) + +declare %reflect.Value @reflect.New(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare %reflect.Value @reflect.Value.Elem(%reflect.Value) + +declare ptr @reflect.Value.MapRange(%reflect.Value) + +declare i1 @"reflect.(*MapIter).Next"(ptr) + +declare void @reflect.Value.SetIterKey(%reflect.Value, ptr) + +declare void @reflect.Value.SetIterValue(%reflect.Value, ptr) + +declare %reflect.Value @"reflect.(*MapIter).Key"(ptr) + +declare %reflect.Value @"reflect.(*MapIter).Value"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.iface" @reflect.TypeOf(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare %"github.com/goplus/llgo/runtime/internal/runtime.iface" @reflect.MapOf(%"github.com/goplus/llgo/runtime/internal/runtime.iface", %"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare %reflect.Value @reflect.MakeMap(%"github.com/goplus/llgo/runtime/internal/runtime.iface") diff --git a/cl/_testgo/select/in.go b/compiler/cl/_testgo/select/in.go similarity index 100% rename from cl/_testgo/select/in.go rename to compiler/cl/_testgo/select/in.go diff --git a/cl/_testgo/select/out.ll b/compiler/cl/_testgo/select/out.ll similarity index 100% rename from cl/_testgo/select/out.ll rename to compiler/cl/_testgo/select/out.ll diff --git a/cl/_testgo/selects/in.go b/compiler/cl/_testgo/selects/in.go similarity index 100% rename from cl/_testgo/selects/in.go rename to compiler/cl/_testgo/selects/in.go diff --git a/compiler/cl/_testgo/selects/out.ll b/compiler/cl/_testgo/selects/out.ll new file mode 100644 index 00000000..8b3338e8 --- /dev/null +++ b/compiler/cl/_testgo/selects/out.ll @@ -0,0 +1,266 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" = type { ptr, ptr, i32, i1 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [4 x i8] c"c1<-", align 1 +@1 = private unnamed_addr constant [4 x i8] c"<-c2", align 1 +@2 = private unnamed_addr constant [4 x i8] c"<-c4", align 1 +@3 = private unnamed_addr constant [31 x i8] c"blocking select matched no case", align 1 +@_llgo_string = linkonce global ptr null, align 8 +@4 = private unnamed_addr constant [4 x i8] c"<-c1", align 1 +@5 = private unnamed_addr constant [4 x i8] c"c2<-", align 1 +@6 = private unnamed_addr constant [4 x i8] c"<-c3", align 1 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewChan"(i64 0, i64 1) + store ptr %3, ptr %2, align 8 + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewChan"(i64 0, i64 1) + store ptr %5, ptr %4, align 8 + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewChan"(i64 0, i64 1) + store ptr %7, ptr %6, align 8 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewChan"(i64 0, i64 1) + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %10 = getelementptr inbounds { ptr, ptr, ptr }, ptr %9, i32 0, i32 0 + store ptr %2, ptr %10, align 8 + %11 = getelementptr inbounds { ptr, ptr, ptr }, ptr %9, i32 0, i32 1 + store ptr %4, ptr %11, align 8 + %12 = getelementptr inbounds { ptr, ptr, ptr }, ptr %9, i32 0, i32 2 + store ptr %6, ptr %12, align 8 + %13 = insertvalue { ptr, ptr } { ptr @"main.main$1", ptr undef }, ptr %9, 1 + %14 = call ptr @malloc(i64 16) + %15 = getelementptr inbounds { { ptr, ptr } }, ptr %14, i32 0, i32 0 + store { ptr, ptr } %13, ptr %15, align 8 + %16 = alloca i8, i64 8, align 1 + %17 = call i32 @"github.com/goplus/llgo/runtime/internal/runtime.CreateThread"(ptr %16, ptr null, ptr @"main._llgo_routine$1", ptr %14) + %18 = load ptr, ptr %2, align 8 + %19 = alloca {}, align 8 + call void @llvm.memset(ptr %19, i8 0, i64 0, i1 false) + store {} zeroinitializer, ptr %19, align 1 + %20 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.ChanSend"(ptr %18, ptr %19, i64 0) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %21 = load ptr, ptr %4, align 8 + %22 = alloca {}, align 8 + call void @llvm.memset(ptr %22, i8 0, i64 0, i1 false) + %23 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" undef, ptr %21, 0 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %23, ptr %22, 1 + %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %24, i32 0, 2 + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %25, i1 false, 3 + %27 = alloca {}, align 8 + call void @llvm.memset(ptr %27, i8 0, i64 0, i1 false) + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" undef, ptr %8, 0 + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %28, ptr %27, 1 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %29, i32 0, 2 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %30, i1 false, 3 + %32 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + %33 = getelementptr %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp", ptr %32, i64 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %26, ptr %33, align 8 + %34 = getelementptr %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp", ptr %32, i64 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %31, ptr %34, align 8 + %35 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %32, 0 + %36 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %35, i64 2, 1 + %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %36, i64 2, 2 + %38 = call { i64, i1 } @"github.com/goplus/llgo/runtime/internal/runtime.Select"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %37) + %39 = extractvalue { i64, i1 } %38, 0 + %40 = extractvalue { i64, i1 } %38, 1 + %41 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %26, 1 + %42 = load {}, ptr %41, align 1 + %43 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %31, 1 + %44 = load {}, ptr %43, align 1 + %45 = insertvalue { i64, i1, {}, {} } undef, i64 %39, 0 + %46 = insertvalue { i64, i1, {}, {} } %45, i1 %40, 1 + %47 = insertvalue { i64, i1, {}, {} } %46, {} %42, 2 + %48 = insertvalue { i64, i1, {}, {} } %47, {} %44, 3 + %49 = extractvalue { i64, i1, {}, {} } %48, 0 + %50 = icmp eq i64 %49, 0 + br i1 %50, label %_llgo_2, label %_llgo_3 + +_llgo_1: ; preds = %_llgo_4, %_llgo_2 + ret i32 0 + +_llgo_2: ; preds = %_llgo_0 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_3: ; preds = %_llgo_0 + %51 = icmp eq i64 %49, 1 + br i1 %51, label %_llgo_4, label %_llgo_5 + +_llgo_4: ; preds = %_llgo_3 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_5: ; preds = %_llgo_3 + %52 = load ptr, ptr @_llgo_string, align 8 + %53 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 31 }, ptr %53, align 8 + %54 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %52, 0 + %55 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %54, ptr %53, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %55) + unreachable +} + +define void @"main.main$1"(ptr %0) { +_llgo_0: + %1 = load { ptr, ptr, ptr }, ptr %0, align 8 + %2 = extractvalue { ptr, ptr, ptr } %1, 0 + %3 = load ptr, ptr %2, align 8 + %4 = alloca {}, align 8 + call void @llvm.memset(ptr %4, i8 0, i64 0, i1 false) + %5 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.ChanRecv"(ptr %3, ptr %4, i64 0) + %6 = load {}, ptr %4, align 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %7 = extractvalue { ptr, ptr, ptr } %1, 1 + %8 = load ptr, ptr %7, align 8 + %9 = extractvalue { ptr, ptr, ptr } %1, 2 + %10 = load ptr, ptr %9, align 8 + %11 = alloca {}, align 8 + call void @llvm.memset(ptr %11, i8 0, i64 0, i1 false) + store {} zeroinitializer, ptr %11, align 1 + %12 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" undef, ptr %8, 0 + %13 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %12, ptr %11, 1 + %14 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %13, i32 0, 2 + %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %14, i1 true, 3 + %16 = alloca {}, align 8 + call void @llvm.memset(ptr %16, i8 0, i64 0, i1 false) + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" undef, ptr %10, 0 + %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %17, ptr %16, 1 + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %18, i32 0, 2 + %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %19, i1 false, 3 + %21 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + %22 = getelementptr %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp", ptr %21, i64 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %15, ptr %22, align 8 + %23 = getelementptr %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp", ptr %21, i64 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %20, ptr %23, align 8 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %21, 0 + %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24, i64 2, 1 + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25, i64 2, 2 + %27 = call { i64, i1 } @"github.com/goplus/llgo/runtime/internal/runtime.Select"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %26) + %28 = extractvalue { i64, i1 } %27, 0 + %29 = extractvalue { i64, i1 } %27, 1 + %30 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.ChanOp" %20, 1 + %31 = load {}, ptr %30, align 1 + %32 = insertvalue { i64, i1, {} } undef, i64 %28, 0 + %33 = insertvalue { i64, i1, {} } %32, i1 %29, 1 + %34 = insertvalue { i64, i1, {} } %33, {} %31, 2 + %35 = extractvalue { i64, i1, {} } %34, 0 + %36 = icmp eq i64 %35, 0 + br i1 %36, label %_llgo_2, label %_llgo_3 + +_llgo_1: ; preds = %_llgo_4, %_llgo_2 + ret void + +_llgo_2: ; preds = %_llgo_0 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_3: ; preds = %_llgo_0 + %37 = icmp eq i64 %35, 1 + br i1 %37, label %_llgo_4, label %_llgo_5 + +_llgo_4: ; preds = %_llgo_3 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_5: ; preds = %_llgo_3 + %38 = load ptr, ptr @_llgo_string, align 8 + %39 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 31 }, ptr %39, align 8 + %40 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %38, 0 + %41 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %40, ptr %39, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %41) + unreachable +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewChan"(i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare ptr @malloc(i64) + +define ptr @"main._llgo_routine$1"(ptr %0) { +_llgo_0: + %1 = load { { ptr, ptr } }, ptr %0, align 8 + %2 = extractvalue { { ptr, ptr } } %1, 0 + %3 = extractvalue { ptr, ptr } %2, 1 + %4 = extractvalue { ptr, ptr } %2, 0 + call void %4(ptr %3) + call void @free(ptr %0) + ret ptr null +} + +declare void @free(ptr) + +declare i32 @"github.com/goplus/llgo/runtime/internal/runtime.CreateThread"(ptr, ptr, ptr, ptr) + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.ChanSend"(ptr, ptr, i64) + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare { i64, i1 } @"github.com/goplus/llgo/runtime/internal/runtime.Select"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_string, align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %2, ptr @_llgo_string, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.ChanRecv"(ptr, ptr, i64) + +attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testgo/sigsegv/in.go b/compiler/cl/_testgo/sigsegv/in.go similarity index 100% rename from cl/_testgo/sigsegv/in.go rename to compiler/cl/_testgo/sigsegv/in.go diff --git a/cl/_testgo/sigsegv/out.ll b/compiler/cl/_testgo/sigsegv/out.ll similarity index 100% rename from cl/_testgo/sigsegv/out.ll rename to compiler/cl/_testgo/sigsegv/out.ll diff --git a/cl/_testgo/strucintf/in.go b/compiler/cl/_testgo/strucintf/in.go similarity index 87% rename from cl/_testgo/strucintf/in.go rename to compiler/cl/_testgo/strucintf/in.go index dabc1718..4fb44d9a 100644 --- a/cl/_testgo/strucintf/in.go +++ b/compiler/cl/_testgo/strucintf/in.go @@ -1,6 +1,6 @@ package main -import "github.com/goplus/llgo/cl/internal/foo" +import "github.com/goplus/llgo/compiler/cl/_testdata/foo" func Foo() any { return struct{ v int }{1} diff --git a/cl/_testgo/strucintf/out.ll b/compiler/cl/_testgo/strucintf/out.ll similarity index 51% rename from cl/_testgo/strucintf/out.ll rename to compiler/cl/_testgo/strucintf/out.ll index daa813c8..79c20677 100644 --- a/cl/_testgo/strucintf/out.ll +++ b/compiler/cl/_testgo/strucintf/out.ll @@ -1,10 +1,10 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/abi.StructField" = type { %"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } @"main.init$guard" = global i1 false, align 1 @_llgo_int = linkonce global ptr null, align 8 @@ -19,7 +19,7 @@ source_filename = "main" @4 = private unnamed_addr constant [11 x i8] c"Bar: not ok", align 1 @5 = private unnamed_addr constant [9 x i8] c"F: not ok", align 1 -define %"github.com/goplus/llgo/internal/runtime.eface" @main.Foo() { +define %"github.com/goplus/llgo/runtime/internal/runtime.eface" @main.Foo() { _llgo_0: %0 = alloca { i64 }, align 8 call void @llvm.memset(ptr %0, i8 0, i64 8, i1 false) @@ -30,9 +30,9 @@ _llgo_0: %4 = load ptr, ptr @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8 %5 = extractvalue { i64 } %2, 0 %6 = inttoptr i64 %5 to ptr - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %7, ptr %6, 1 - ret %"github.com/goplus/llgo/internal/runtime.eface" %8 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %7, ptr %6, 1 + ret %"github.com/goplus/llgo/runtime/internal/runtime.eface" %8 } define void @main.init() { @@ -42,7 +42,7 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 store i1 true, ptr @"main.init$guard", align 1 - call void @"github.com/goplus/llgo/cl/internal/foo.init"() + call void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.init"() call void @"main.init$after"() br label %_llgo_2 @@ -54,12 +54,12 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - %2 = call %"github.com/goplus/llgo/internal/runtime.eface" @main.Foo() + %2 = call %"github.com/goplus/llgo/runtime/internal/runtime.eface" @main.Foo() %3 = alloca { i64 }, align 8 call void @llvm.memset(ptr %3, i8 0, i64 8, i1 false) - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %2, 0 + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %2, 0 %5 = load ptr, ptr @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8 %6 = icmp eq ptr %4, %5 br i1 %6, label %_llgo_10, label %_llgo_11 @@ -67,62 +67,62 @@ _llgo_0: _llgo_1: ; preds = %_llgo_12 %7 = getelementptr inbounds { i64 }, ptr %3, i32 0, i32 0 %8 = load i64, ptr %7, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %8) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %8) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) br label %_llgo_2 _llgo_2: ; preds = %_llgo_3, %_llgo_1 - %9 = call %"github.com/goplus/llgo/internal/runtime.eface" @"github.com/goplus/llgo/cl/internal/foo.Bar"() + %9 = call %"github.com/goplus/llgo/runtime/internal/runtime.eface" @"github.com/goplus/llgo/compiler/cl/_testdata/foo.Bar"() %10 = alloca { i64 }, align 8 call void @llvm.memset(ptr %10, i8 0, i64 8, i1 false) - %11 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %9, 0 + %11 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %9, 0 %12 = load ptr, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8 %13 = icmp eq ptr %11, %12 br i1 %13, label %_llgo_13, label %_llgo_14 _llgo_3: ; preds = %_llgo_12 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 11 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 11 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) br label %_llgo_2 _llgo_4: ; preds = %_llgo_15 %14 = getelementptr inbounds { i64 }, ptr %10, i32 0, i32 0 %15 = load i64, ptr %14, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %15) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %15) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) br label %_llgo_5 _llgo_5: ; preds = %_llgo_6, %_llgo_4 %16 = alloca { i64 }, align 8 call void @llvm.memset(ptr %16, i8 0, i64 8, i1 false) - %17 = call %"github.com/goplus/llgo/internal/runtime.eface" @"github.com/goplus/llgo/cl/internal/foo.F"() - %18 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %17, 0 + %17 = call %"github.com/goplus/llgo/runtime/internal/runtime.eface" @"github.com/goplus/llgo/compiler/cl/_testdata/foo.F"() + %18 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %17, 0 %19 = load ptr, ptr @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8 %20 = icmp eq ptr %18, %19 br i1 %20, label %_llgo_16, label %_llgo_17 _llgo_6: ; preds = %_llgo_15 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @4, i64 11 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 11 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) br label %_llgo_5 _llgo_7: ; preds = %_llgo_18 %21 = getelementptr inbounds { i64 }, ptr %16, i32 0, i32 0 %22 = load i64, ptr %21, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %22) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %22) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) br label %_llgo_8 _llgo_8: ; preds = %_llgo_9, %_llgo_7 ret i32 0 _llgo_9: ; preds = %_llgo_18 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @5, i64 9 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 9 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) br label %_llgo_8 _llgo_10: ; preds = %_llgo_0 - %23 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %2, 1 + %23 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %2, 1 %24 = ptrtoint ptr %23 to i64 %25 = insertvalue { i64 } undef, i64 %24, 0 %26 = insertvalue { { i64 }, i1 } undef, { i64 } %25, 0 @@ -140,7 +140,7 @@ _llgo_12: ; preds = %_llgo_11, %_llgo_10 br i1 %30, label %_llgo_1, label %_llgo_3 _llgo_13: ; preds = %_llgo_2 - %31 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %9, 1 + %31 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %9, 1 %32 = ptrtoint ptr %31 to i64 %33 = insertvalue { i64 } undef, i64 %32, 0 %34 = insertvalue { { i64 }, i1 } undef, { i64 } %33, 0 @@ -158,7 +158,7 @@ _llgo_15: ; preds = %_llgo_14, %_llgo_13 br i1 %38, label %_llgo_4, label %_llgo_6 _llgo_16: ; preds = %_llgo_5 - %39 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %17, 1 + %39 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %17, 1 %40 = ptrtoint ptr %39 to i64 %41 = insertvalue { i64 } undef, i64 %40, 0 %42 = insertvalue { { i64 }, i1 } undef, { i64 } %41, 0 @@ -186,35 +186,35 @@ _llgo_0: br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) store ptr %2, ptr @_llgo_int, align 8 br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %4 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 1 }, ptr %3, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %6 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %5, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %4, ptr %6, align 8 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %5, 0 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %7, i64 1, 1 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %8, i64 1, 2 - %10 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %9) + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %4 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 1 }, ptr %3, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %6 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %5, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %4, ptr %6, align 8 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %5, 0 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %7, i64 1, 1 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %8, i64 1, 2 + %10 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9) store ptr %10, ptr @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8 %11 = load ptr, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8 %12 = icmp eq ptr %11, null br i1 %12, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %13 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) - %14 = call %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @3, i64 1 }, ptr %13, i64 0, %"github.com/goplus/llgo/internal/runtime.String" zeroinitializer, i1 false) - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 56) - %16 = getelementptr %"github.com/goplus/llgo/internal/abi.StructField", ptr %15, i64 0 - store %"github.com/goplus/llgo/internal/abi.StructField" %14, ptr %16, align 8 - %17 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %15, 0 - %18 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %17, i64 1, 1 - %19 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %18, i64 1, 2 - %20 = call ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 4 }, i64 8, %"github.com/goplus/llgo/internal/runtime.Slice" %19) + %13 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %14 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 1 }, ptr %13, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %15 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %16 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %15, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %14, ptr %16, align 8 + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %15, 0 + %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %17, i64 1, 1 + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %18, i64 1, 2 + %20 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %19) store ptr %20, ptr @"_llgo_struct$K-dZ9QotZfVPz2a0YdRa9vmZUuDXPTqZOlMShKEDJtk", align 8 br label %_llgo_4 @@ -222,26 +222,26 @@ _llgo_4: ; preds = %_llgo_3, %_llgo_2 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) -declare ptr @"github.com/goplus/llgo/internal/runtime.Struct"(%"github.com/goplus/llgo/internal/runtime.String", i64, %"github.com/goplus/llgo/internal/runtime.Slice") +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") -declare %"github.com/goplus/llgo/internal/abi.StructField" @"github.com/goplus/llgo/internal/runtime.StructField"(%"github.com/goplus/llgo/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/internal/runtime.String", i1) +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) -declare void @"github.com/goplus/llgo/cl/internal/foo.init"() +declare void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.init"() -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") -declare %"github.com/goplus/llgo/internal/runtime.eface" @"github.com/goplus/llgo/cl/internal/foo.Bar"() +declare %"github.com/goplus/llgo/runtime/internal/runtime.eface" @"github.com/goplus/llgo/compiler/cl/_testdata/foo.Bar"() -declare %"github.com/goplus/llgo/internal/runtime.eface" @"github.com/goplus/llgo/cl/internal/foo.F"() +declare %"github.com/goplus/llgo/runtime/internal/runtime.eface" @"github.com/goplus/llgo/compiler/cl/_testdata/foo.F"() attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testgo/struczero/in.go b/compiler/cl/_testgo/struczero/in.go similarity index 85% rename from cl/_testgo/struczero/in.go rename to compiler/cl/_testgo/struczero/in.go index ce583d11..9bb44d4e 100644 --- a/cl/_testgo/struczero/in.go +++ b/compiler/cl/_testgo/struczero/in.go @@ -1,6 +1,6 @@ package main -import "github.com/goplus/llgo/cl/internal/foo" +import "github.com/goplus/llgo/compiler/cl/_testdata/foo" type bar struct { pb *byte diff --git a/compiler/cl/_testgo/struczero/out.ll b/compiler/cl/_testgo/struczero/out.ll new file mode 100644 index 00000000..c4217937 --- /dev/null +++ b/compiler/cl/_testgo/struczero/out.ll @@ -0,0 +1,325 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo" = type { ptr, float } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%main.bar = type { ptr, float } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/abi.Method" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, ptr, ptr } + +@"main.init$guard" = global i1 false, align 1 +@"_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo" = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [48 x i8] c"github.com/goplus/llgo/compiler/cl/_testdata/foo", align 1 +@1 = private unnamed_addr constant [3 x i8] c"Foo", align 1 +@_llgo_byte = linkonce global ptr null, align 8 +@"*_llgo_byte" = linkonce global ptr null, align 8 +@_llgo_float32 = linkonce global ptr null, align 8 +@"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs" = linkonce global ptr null, align 8 +@2 = private unnamed_addr constant [2 x i8] c"pb", align 1 +@3 = private unnamed_addr constant [1 x i8] c"F", align 1 +@4 = private unnamed_addr constant [4 x i8] c"main", align 1 +@5 = private unnamed_addr constant [2 x i8] c"Pb", align 1 +@"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE" = linkonce global ptr null, align 8 +@_llgo_main.bar = linkonce global ptr null, align 8 +@6 = private unnamed_addr constant [3 x i8] c"bar", align 1 +@"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo" = linkonce global ptr null, align 8 +@7 = private unnamed_addr constant [1 x i8] c"f", align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@8 = private unnamed_addr constant [6 x i8] c"notOk:", align 1 + +define { %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", i1 } @main.Bar(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %0) { +_llgo_0: + %1 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 + %2 = load ptr, ptr @"_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", align 8 + %3 = icmp eq ptr %1, %2 + br i1 %3, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 + %5 = load %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", ptr %4, align 8 + %6 = insertvalue { %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", i1 } undef, %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo" %5, 0 + %7 = insertvalue { %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", i1 } %6, i1 true, 1 + br label %_llgo_3 + +_llgo_2: ; preds = %_llgo_0 + br label %_llgo_3 + +_llgo_3: ; preds = %_llgo_2, %_llgo_1 + %8 = phi { %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", i1 } [ %7, %_llgo_1 ], [ zeroinitializer, %_llgo_2 ] + %9 = extractvalue { %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", i1 } %8, 0 + %10 = extractvalue { %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", i1 } %8, 1 + %11 = insertvalue { %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", i1 } undef, %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo" %9, 0 + %12 = insertvalue { %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", i1 } %11, i1 %10, 1 + ret { %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", i1 } %12 +} + +define { %main.bar, i1 } @main.Foo(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %0) { +_llgo_0: + %1 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 + %2 = load ptr, ptr @_llgo_main.bar, align 8 + %3 = icmp eq ptr %1, %2 + br i1 %3, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 + %5 = load %main.bar, ptr %4, align 8 + %6 = insertvalue { %main.bar, i1 } undef, %main.bar %5, 0 + %7 = insertvalue { %main.bar, i1 } %6, i1 true, 1 + br label %_llgo_3 + +_llgo_2: ; preds = %_llgo_0 + br label %_llgo_3 + +_llgo_3: ; preds = %_llgo_2, %_llgo_1 + %8 = phi { %main.bar, i1 } [ %7, %_llgo_1 ], [ zeroinitializer, %_llgo_2 ] + %9 = extractvalue { %main.bar, i1 } %8, 0 + %10 = extractvalue { %main.bar, i1 } %8, 1 + %11 = insertvalue { %main.bar, i1 } undef, %main.bar %9, 0 + %12 = insertvalue { %main.bar, i1 } %11, i1 %10, 1 + ret { %main.bar, i1 } %12 +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.init"() + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = alloca %main.bar, align 8 + call void @llvm.memset(ptr %2, i8 0, i64 16, i1 false) + %3 = call { %main.bar, i1 } @main.Foo(%"github.com/goplus/llgo/runtime/internal/runtime.eface" zeroinitializer) + %4 = extractvalue { %main.bar, i1 } %3, 0 + store %main.bar %4, ptr %2, align 8 + %5 = extractvalue { %main.bar, i1 } %3, 1 + %6 = getelementptr inbounds %main.bar, ptr %2, i32 0, i32 0 + %7 = load ptr, ptr %6, align 8 + %8 = getelementptr inbounds %main.bar, ptr %2, i32 0, i32 1 + %9 = load float, ptr %8, align 4 + %10 = xor i1 %5, true + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %7) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %11 = fpext float %9 to double + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %11) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 6 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %12 = alloca %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", align 8 + call void @llvm.memset(ptr %12, i8 0, i64 16, i1 false) + %13 = load ptr, ptr @"_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", align 8 + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo" zeroinitializer, ptr %14, align 8 + %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %13, 0 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %15, ptr %14, 1 + %17 = call { %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", i1 } @main.Bar(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %16) + %18 = extractvalue { %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", i1 } %17, 0 + store %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo" %18, ptr %12, align 8 + %19 = extractvalue { %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", i1 } %17, 1 + %20 = load %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", ptr %12, align 8 + %21 = call ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo.Pb"(%"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo" %20) + %22 = getelementptr inbounds %"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", ptr %12, i32 0, i32 1 + %23 = load float, ptr %22, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %21) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %24 = fpext float %23 to double + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %24) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %19) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +define void @"main.init$after"() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 48 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 3 }, i64 25, i64 16, i64 1, i64 1) + %1 = load ptr, ptr @"_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", align 8 + %2 = icmp eq ptr %1, null + br i1 %2, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + store ptr %0, ptr @"_llgo_github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo", align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @_llgo_byte, align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + store ptr %5, ptr @_llgo_byte, align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %6 = load ptr, ptr @_llgo_byte, align 8 + %7 = load ptr, ptr @"*_llgo_byte", align 8 + %8 = icmp eq ptr %7, null + br i1 %8, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %10 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %9) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %10) + store ptr %10, ptr @"*_llgo_byte", align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %11 = load ptr, ptr @"*_llgo_byte", align 8 + %12 = load ptr, ptr @_llgo_float32, align 8 + %13 = icmp eq ptr %12, null + br i1 %13, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 45) + store ptr %14, ptr @_llgo_float32, align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %15 = load ptr, ptr @_llgo_float32, align 8 + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %16) + %18 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 2 }, ptr %17, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 45) + %20 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 1 }, ptr %19, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %21 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %22 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %21, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %18, ptr %22, align 8 + %23 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %21, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %20, ptr %23, align 8 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %21, 0 + %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24, i64 2, 1 + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25, i64 2, 2 + %27 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %26) + store ptr %27, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8 + %28 = load ptr, ptr @"main.struct$qQwZyFy_4JRalRxVVsVD8R09X5t58tWjTrtJPtHbEjs", align 8 + br i1 %2, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %29 = load ptr, ptr @"*_llgo_byte", align 8 + %30 = load ptr, ptr @"*_llgo_byte", align 8 + %31 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 + %32 = icmp eq ptr %31, null + br i1 %32, label %_llgo_11, label %_llgo_12 + +_llgo_10: ; preds = %_llgo_12, %_llgo_8 + %33 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 3 }, i64 25, i64 16, i64 0, i64 0) + store ptr %33, ptr @_llgo_main.bar, align 8 + %34 = load ptr, ptr @"*_llgo_byte", align 8 + %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %36 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %35) + %37 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 2 }, ptr %36, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 45) + %39 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 1 }, ptr %38, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %40 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %41 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %40, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %37, ptr %41, align 8 + %42 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %40, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %39, ptr %42, align 8 + %43 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %40, 0 + %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %43, i64 2, 1 + %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %44, i64 2, 2 + %46 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %45) + store ptr %46, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8 + %47 = load ptr, ptr @"main.struct$Ci43nzKYkRLddRL_N4mkykxLXfJlqJGS5n04LKThPNo", align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %33, ptr %47, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + ret void + +_llgo_11: ; preds = %_llgo_9 + %48 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %48, 0 + %50 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %49, i64 0, 1 + %51 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %50, i64 0, 2 + %52 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %53 = getelementptr ptr, ptr %52, i64 0 + store ptr %30, ptr %53, align 8 + %54 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %52, 0 + %55 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %54, i64 1, 1 + %56 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %55, i64 1, 2 + %57 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %51, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %56, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %57) + store ptr %57, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_9 + %58 = load ptr, ptr @"_llgo_func$NfGSLZ1QiKRoFkKeqYSXE5hUU5bpeteSJKrbMNUzYRE", align 8 + %59 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, ptr undef, ptr undef, ptr undef }, ptr %58, 1 + %60 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %59, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Foo).Pb", 2 + %61 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %60, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Foo).Pb", 3 + %62 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, ptr undef, ptr undef, ptr undef }, ptr %58, 1 + %63 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %62, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Foo).Pb", 2 + %64 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %63, ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo.Pb", 3 + %65 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %66 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %65, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %64, ptr %66, align 8 + %67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %65, 0 + %68 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %67, i64 1, 1 + %69 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %68, i64 1, 2 + %70 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %71 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %70, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %61, ptr %71, align 8 + %72 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %70, 0 + %73 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %72, i64 1, 1 + %74 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %73, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %28, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %69, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %74) + br label %_llgo_10 +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice", i1) + +declare ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.(*Foo).Pb"(ptr) + +declare ptr @"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo.Pb"(%"github.com/goplus/llgo/compiler/cl/_testdata/foo.Foo") + +declare void @"github.com/goplus/llgo/compiler/cl/_testdata/foo.init"() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1) + +attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testgo/syncmap/in.go b/compiler/cl/_testgo/syncmap/in.go similarity index 100% rename from cl/_testgo/syncmap/in.go rename to compiler/cl/_testgo/syncmap/in.go diff --git a/cl/_testgo/syncmap/out.ll b/compiler/cl/_testgo/syncmap/out.ll similarity index 100% rename from cl/_testgo/syncmap/out.ll rename to compiler/cl/_testgo/syncmap/out.ll diff --git a/cl/_testgo/tpindex/in.go b/compiler/cl/_testgo/tpindex/in.go similarity index 100% rename from cl/_testgo/tpindex/in.go rename to compiler/cl/_testgo/tpindex/in.go diff --git a/cl/_testgo/tpindex/out.ll b/compiler/cl/_testgo/tpindex/out.ll similarity index 51% rename from cl/_testgo/tpindex/out.ll rename to compiler/cl/_testgo/tpindex/out.ll index fdf6db3d..cbbf1fc9 100644 --- a/cl/_testgo/tpindex/out.ll +++ b/compiler/cl/_testgo/tpindex/out.ll @@ -1,7 +1,7 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @@ -24,9 +24,9 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 40) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 40) %3 = getelementptr inbounds i64, ptr %2, i64 0 store i64 1, ptr %3, align 4 %4 = getelementptr inbounds i64, ptr %2, i64 1 @@ -37,25 +37,25 @@ _llgo_0: store i64 2, ptr %6, align 4 %7 = getelementptr inbounds i64, ptr %2, i64 4 store i64 4, ptr %7, align 4 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %2, 0 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %8, i64 5, 1 - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, i64 5, 2 - %11 = call i64 @"main.index[int]"(%"github.com/goplus/llgo/internal/runtime.Slice" %10, i64 3) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %11) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %12 = call i64 @"main.index[int]"(%"github.com/goplus/llgo/internal/runtime.Slice" %10, i64 6) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %12) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %2, 0 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %8, i64 5, 1 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, i64 5, 2 + %11 = call i64 @"main.index[int]"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %10, i64 3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %11) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %12 = call i64 @"main.index[int]"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %10, i64 6) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %12) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) -define linkonce i64 @"main.index[int]"(%"github.com/goplus/llgo/internal/runtime.Slice" %0, i64 %1) { +define linkonce i64 @"main.index[int]"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, i64 %1) { _llgo_0: - %2 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 1 + %2 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 1 br label %_llgo_1 _llgo_1: ; preds = %_llgo_2, %_llgo_0 @@ -65,12 +65,12 @@ _llgo_1: ; preds = %_llgo_2, %_llgo_0 br i1 %5, label %_llgo_2, label %_llgo_3 _llgo_2: ; preds = %_llgo_1 - %6 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 0 - %7 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 1 + %6 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 0 + %7 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 1 %8 = icmp slt i64 %4, 0 %9 = icmp sge i64 %4, %7 %10 = or i1 %9, %8 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %10) %11 = getelementptr inbounds i64, ptr %6, i64 %4 %12 = load i64, ptr %11, align 4 %13 = icmp eq i64 %1, %12 @@ -83,8 +83,8 @@ _llgo_4: ; preds = %_llgo_2 ret i64 %4 } -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) diff --git a/cl/_testgo/tpnamed/in.go b/compiler/cl/_testgo/tpnamed/in.go similarity index 100% rename from cl/_testgo/tpnamed/in.go rename to compiler/cl/_testgo/tpnamed/in.go diff --git a/cl/_testgo/tpnamed/out.ll b/compiler/cl/_testgo/tpnamed/out.ll similarity index 75% rename from cl/_testgo/tpnamed/out.ll rename to compiler/cl/_testgo/tpnamed/out.ll index d7eb5ea6..f726cec4 100644 --- a/cl/_testgo/tpnamed/out.ll +++ b/compiler/cl/_testgo/tpnamed/out.ll @@ -2,9 +2,9 @@ source_filename = "main" %"main.IO[error]" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } %"main.Future[error]" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } %"main.IO[[0]byte]" = type { ptr, ptr } %"main.Future[[0]byte]" = type { ptr, ptr } @@ -12,7 +12,7 @@ source_filename = "main" @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 -define %"main.IO[error]" @main.WriteFile(%"github.com/goplus/llgo/internal/runtime.String" %0) { +define %"main.IO[error]" @main.WriteFile(%"github.com/goplus/llgo/runtime/internal/runtime.String" %0) { _llgo_0: ret %"main.IO[error]" { ptr @"__llgo_stub.main.WriteFile$1", ptr null } } @@ -22,9 +22,9 @@ _llgo_0: ret %"main.Future[error]" { ptr @"__llgo_stub.main.WriteFile$1$1", ptr null } } -define %"github.com/goplus/llgo/internal/runtime.iface" @"main.WriteFile$1$1"() { +define %"github.com/goplus/llgo/runtime/internal/runtime.iface" @"main.WriteFile$1$1"() { _llgo_0: - ret %"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer } define void @main.init() { @@ -44,7 +44,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call [0 x i8] @"main.RunIO[[0]byte]"(%"main.IO[[0]byte]" { ptr @"__llgo_stub.main.main$1", ptr null }) ret i32 0 @@ -66,13 +66,13 @@ _llgo_0: ret %"main.Future[error]" %1 } -define linkonce %"github.com/goplus/llgo/internal/runtime.iface" @"__llgo_stub.main.WriteFile$1$1"(ptr %0) { +define linkonce %"github.com/goplus/llgo/runtime/internal/runtime.iface" @"__llgo_stub.main.WriteFile$1$1"(ptr %0) { _llgo_0: - %1 = tail call %"github.com/goplus/llgo/internal/runtime.iface" @"main.WriteFile$1$1"() - ret %"github.com/goplus/llgo/internal/runtime.iface" %1 + %1 = tail call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @"main.WriteFile$1$1"() + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" %1 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() define linkonce %"main.Future[[0]byte]" @"__llgo_stub.main.main$1"(ptr %0) { _llgo_0: diff --git a/cl/_testgo/tprecur/in.go b/compiler/cl/_testgo/tprecur/in.go similarity index 100% rename from cl/_testgo/tprecur/in.go rename to compiler/cl/_testgo/tprecur/in.go diff --git a/cl/_testgo/tprecur/out.ll b/compiler/cl/_testgo/tprecur/out.ll similarity index 61% rename from cl/_testgo/tprecur/out.ll rename to compiler/cl/_testgo/tprecur/out.ll index 079d15df..4e8654a0 100644 --- a/cl/_testgo/tprecur/out.ll +++ b/compiler/cl/_testgo/tprecur/out.ll @@ -1,9 +1,9 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @@ -29,7 +29,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() call void @main.recursive() ret i32 0 @@ -43,18 +43,18 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %2 = load ptr, ptr @_llgo_string, align 8 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %3, align 8 - %4 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %2, 0 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %4, ptr %3, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %5) + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %3, align 8 + %4 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %2, 0 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %4, ptr %3, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %5) unreachable _llgo_2: ; preds = %_llgo_0 ret void } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() define linkonce i64 @"main.recur1[main.T]"(i64 %0) { _llgo_0: @@ -82,7 +82,7 @@ _llgo_0: br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) store ptr %2, ptr @_llgo_string, align 8 br label %_llgo_2 @@ -90,16 +90,16 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") define linkonce i64 @"main.recur2[main.T]"(i64 %0) { _llgo_0: - %1 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.MakeSlice"(i64 %0, i64 %0, i64 8) - %2 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1, 1 + %1 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.MakeSlice"(i64 %0, i64 %0, i64 8) + %2 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, 1 br label %_llgo_1 _llgo_1: ; preds = %_llgo_2, %_llgo_0 @@ -110,18 +110,18 @@ _llgo_1: ; preds = %_llgo_2, %_llgo_0 _llgo_2: ; preds = %_llgo_1 %6 = add i64 %4, 1 - %7 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1, 0 - %8 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1, 1 + %7 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, 0 + %8 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, 1 %9 = icmp slt i64 %4, 0 %10 = icmp sge i64 %4, %8 %11 = or i1 %10, %9 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %11) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %11) %12 = getelementptr inbounds i64, ptr %7, i64 %4 store i64 %6, ptr %12, align 4 br label %_llgo_1 _llgo_3: ; preds = %_llgo_1 - %13 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1, 1 + %13 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, 1 br label %_llgo_4 _llgo_4: ; preds = %_llgo_5, %_llgo_3 @@ -132,12 +132,12 @@ _llgo_4: ; preds = %_llgo_5, %_llgo_3 br i1 %17, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %18 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1, 0 - %19 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %1, 1 + %18 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, 0 + %19 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, 1 %20 = icmp slt i64 %16, 0 %21 = icmp sge i64 %16, %19 %22 = or i1 %21, %20 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %22) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %22) %23 = getelementptr inbounds i64, ptr %18, i64 %16 %24 = load i64, ptr %23, align 4 %25 = add i64 %14, %24 @@ -150,6 +150,6 @@ _llgo_6: ; preds = %_llgo_4 ret i64 %28 } -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.MakeSlice"(i64, i64, i64) +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.MakeSlice"(i64, i64, i64) -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) diff --git a/cl/_testgo/tprecurfn/in.go b/compiler/cl/_testgo/tprecurfn/in.go similarity index 100% rename from cl/_testgo/tprecurfn/in.go rename to compiler/cl/_testgo/tprecurfn/in.go diff --git a/cl/_testgo/tprecurfn/out.ll b/compiler/cl/_testgo/tprecurfn/out.ll similarity index 68% rename from cl/_testgo/tprecurfn/out.ll rename to compiler/cl/_testgo/tprecurfn/out.ll index abb374ce..adafcf8e 100644 --- a/cl/_testgo/tprecurfn/out.ll +++ b/compiler/cl/_testgo/tprecurfn/out.ll @@ -24,11 +24,11 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) %3 = getelementptr inbounds %"main.My[int]", ptr %2, i32 0, i32 1 - %4 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) %5 = getelementptr inbounds %"main.My[int]", ptr %4, i32 0, i32 0 store { ptr, ptr } { ptr @"__llgo_stub.main.main$1", ptr null }, ptr %5, align 8 store ptr %4, ptr %3, align 8 @@ -44,14 +44,14 @@ _llgo_0: define void @"main.main$1"(i64 %0) { _llgo_0: - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %0) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %0) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) ret void } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) define linkonce void @"__llgo_stub.main.main$1"(ptr %0, i64 %1) { _llgo_0: @@ -59,6 +59,6 @@ _llgo_0: ret void } -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) diff --git a/cl/_testgo/tptypes/in.go b/compiler/cl/_testgo/tptypes/in.go similarity index 100% rename from cl/_testgo/tptypes/in.go rename to compiler/cl/_testgo/tptypes/in.go diff --git a/compiler/cl/_testgo/tptypes/out.ll b/compiler/cl/_testgo/tptypes/out.ll new file mode 100644 index 00000000..69bb5529 --- /dev/null +++ b/compiler/cl/_testgo/tptypes/out.ll @@ -0,0 +1,218 @@ +; ModuleID = 'main' +source_filename = "main" + +%"main.Data[int]" = type { i64 } +%"main.Data[string]" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String" } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"main.Slice[[]int,int]" = type { %"github.com/goplus/llgo/runtime/internal/runtime.Slice" } +%"main.Slice[[]string,string]" = type { %"github.com/goplus/llgo/runtime/internal/runtime.Slice" } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [5 x i8] c"hello", align 1 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = alloca %"main.Data[int]", align 8 + call void @llvm.memset(ptr %2, i8 0, i64 8, i1 false) + %3 = getelementptr inbounds %"main.Data[int]", ptr %2, i32 0, i32 0 + store i64 1, ptr %3, align 4 + %4 = load %"main.Data[int]", ptr %2, align 4 + %5 = extractvalue %"main.Data[int]" %4, 0 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %5) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %6 = alloca %"main.Data[string]", align 8 + call void @llvm.memset(ptr %6, i8 0, i64 16, i1 false) + %7 = getelementptr inbounds %"main.Data[string]", ptr %6, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %7, align 8 + %8 = load %"main.Data[string]", ptr %6, align 8 + %9 = extractvalue %"main.Data[string]" %8, 0 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %9) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %10 = alloca %"main.Data[int]", align 8 + call void @llvm.memset(ptr %10, i8 0, i64 8, i1 false) + %11 = getelementptr inbounds %"main.Data[int]", ptr %10, i32 0, i32 0 + store i64 100, ptr %11, align 4 + %12 = load %"main.Data[int]", ptr %10, align 4 + %13 = extractvalue %"main.Data[int]" %12, 0 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %13) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %14 = alloca %"main.Data[string]", align 8 + call void @llvm.memset(ptr %14, i8 0, i64 16, i1 false) + %15 = getelementptr inbounds %"main.Data[string]", ptr %14, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %15, align 8 + %16 = load %"main.Data[string]", ptr %14, align 8 + %17 = extractvalue %"main.Data[string]" %16, 0 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %17) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 0) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %18 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) + %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %20 = getelementptr inbounds i64, ptr %19, i64 0 + store i64 100, ptr %20, align 4 + %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %19, 0 + %22 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %21, i64 1, 1 + %23 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %22, i64 1, 2 + %24 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"main.(*Slice[[]int,int]).Append"(ptr %18, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %23) + %25 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) + %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + %27 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %26, i64 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %27, align 8 + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %26, 0 + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %28, i64 1, 1 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %29, i64 1, 2 + %31 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"main.(*Slice[[]string,string]).Append"(ptr %25, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30) + %32 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) + %33 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) + %34 = getelementptr inbounds i64, ptr %33, i64 0 + store i64 1, ptr %34, align 4 + %35 = getelementptr inbounds i64, ptr %33, i64 1 + store i64 2, ptr %35, align 4 + %36 = getelementptr inbounds i64, ptr %33, i64 2 + store i64 3, ptr %36, align 4 + %37 = getelementptr inbounds i64, ptr %33, i64 3 + store i64 4, ptr %37, align 4 + %38 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %33, 0 + %39 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %38, i64 4, 1 + %40 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %39, i64 4, 2 + %41 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"main.(*Slice[[]int,int]).Append"(ptr %32, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %40) + %42 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) + %43 = getelementptr inbounds i64, ptr %42, i64 0 + store i64 1, ptr %43, align 4 + %44 = getelementptr inbounds i64, ptr %42, i64 1 + store i64 2, ptr %44, align 4 + %45 = getelementptr inbounds i64, ptr %42, i64 2 + store i64 3, ptr %45, align 4 + %46 = getelementptr inbounds i64, ptr %42, i64 3 + store i64 4, ptr %46, align 4 + %47 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %42, 0 + %48 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %47, i64 4, 1 + %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %48, i64 4, 2 + %50 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"main.(*Slice[[]int,int]).Append2"(ptr %32, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %49) + %51 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %18, i32 0, i32 0 + %52 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %51, align 8 + %53 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %18, i32 0, i32 0 + %54 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %53, align 8 + %55 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %54, 0 + %56 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %54, 1 + %57 = icmp sge i64 0, %56 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %57) + %58 = getelementptr inbounds i64, ptr %55, i64 0 + %59 = load i64, ptr %58, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %52) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %59) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %60 = getelementptr inbounds %"main.Slice[[]string,string]", ptr %25, i32 0, i32 0 + %61 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %60, align 8 + %62 = getelementptr inbounds %"main.Slice[[]string,string]", ptr %25, i32 0, i32 0 + %63 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %62, align 8 + %64 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %63, 0 + %65 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %63, 1 + %66 = icmp sge i64 0, %65 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %66) + %67 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %64, i64 0 + %68 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %67, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %68) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %69 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %32, i32 0, i32 0 + %70 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %69, align 8 + %71 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %32, i32 0, i32 0 + %72 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %71, align 8 + %73 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %72, 0 + %74 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %72, 1 + %75 = icmp sge i64 0, %74 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %75) + %76 = getelementptr inbounds i64, ptr %73, i64 0 + %77 = load i64, ptr %76, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %70) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %77) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +define linkonce %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"main.(*Slice[[]int,int]).Append"(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1) { +_llgo_0: + %2 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %0, i32 0, i32 0 + %3 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %2, align 8 + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, 0 + %5 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, 1 + %6 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %3, ptr %4, i64 %5, i64 8) + %7 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %0, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %6, ptr %7, align 8 + %8 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %0, i32 0, i32 0 + %9 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %8, align 8 + ret %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9 +} + +define linkonce %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"main.(*Slice[[]string,string]).Append"(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1) { +_llgo_0: + %2 = getelementptr inbounds %"main.Slice[[]string,string]", ptr %0, i32 0, i32 0 + %3 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %2, align 8 + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, 0 + %5 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, 1 + %6 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %3, ptr %4, i64 %5, i64 16) + %7 = getelementptr inbounds %"main.Slice[[]string,string]", ptr %0, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %6, ptr %7, align 8 + %8 = getelementptr inbounds %"main.Slice[[]string,string]", ptr %0, i32 0, i32 0 + %9 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %8, align 8 + ret %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9 +} + +define linkonce %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"main.(*Slice[[]int,int]).Append2"(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1) { +_llgo_0: + %2 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %0, i32 0, i32 0 + %3 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %2, align 8 + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, 0 + %5 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1, 1 + %6 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %3, ptr %4, i64 %5, i64 8) + %7 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %0, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %6, ptr %7, align 8 + %8 = getelementptr inbounds %"main.Slice[[]int,int]", ptr %0, i32 0, i32 0 + %9 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %8, align 8 + ret %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr, i64, i64) + +attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testlibc/allocacstrs/in.go b/compiler/cl/_testlibc/allocacstrs/in.go similarity index 100% rename from cl/_testlibc/allocacstrs/in.go rename to compiler/cl/_testlibc/allocacstrs/in.go diff --git a/compiler/cl/_testlibc/allocacstrs/out.ll b/compiler/cl/_testlibc/allocacstrs/out.ll new file mode 100644 index 00000000..c61ab832 --- /dev/null +++ b/compiler/cl/_testlibc/allocacstrs/out.ll @@ -0,0 +1,101 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [1 x i8] c"a", align 1 +@1 = private unnamed_addr constant [1 x i8] c"b", align 1 +@2 = private unnamed_addr constant [1 x i8] c"c", align 1 +@3 = private unnamed_addr constant [4 x i8] c"%s\0A\00", align 1 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 48) + %3 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %2, i64 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 1 }, ptr %3, align 8 + %4 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %2, i64 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 1 }, ptr %4, align 8 + %5 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %2, i64 2 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 1 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %2, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %6, i64 3, 1 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %7, i64 3, 2 + %9 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %8, 1 + %10 = add i64 %9, 1 + %11 = alloca ptr, i64 %10, align 8 + br label %_llgo_4 + +_llgo_1: ; preds = %_llgo_3, %_llgo_6 + %12 = phi i64 [ 0, %_llgo_6 ], [ %17, %_llgo_3 ] + %13 = getelementptr ptr, ptr %11, i64 %12 + %14 = load ptr, ptr %13, align 8 + %15 = icmp eq ptr %14, null + br i1 %15, label %_llgo_2, label %_llgo_3 + +_llgo_2: ; preds = %_llgo_1 + ret i32 0 + +_llgo_3: ; preds = %_llgo_1 + %16 = call i32 (ptr, ...) @printf(ptr @3, ptr %14) + %17 = add i64 %12, 1 + br label %_llgo_1 + +_llgo_4: ; preds = %_llgo_5, %_llgo_0 + %18 = phi i64 [ 0, %_llgo_0 ], [ %32, %_llgo_5 ] + %19 = icmp slt i64 %18, %9 + br i1 %19, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %20 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %8, 0 + %21 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %8, 1 + %22 = icmp slt i64 %18, 0 + %23 = icmp sge i64 %18, %21 + %24 = or i1 %23, %22 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %24) + %25 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %20, i64 %18 + %26 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %25, align 8 + %27 = getelementptr ptr, ptr %11, i64 %18 + %28 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %26, 1 + %29 = add i64 %28, 1 + %30 = alloca i8, i64 %29, align 1 + %31 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.CStrCopy"(ptr %30, %"github.com/goplus/llgo/runtime/internal/runtime.String" %26) + store ptr %31, ptr %27, align 8 + %32 = add i64 %18, 1 + br label %_llgo_4 + +_llgo_6: ; preds = %_llgo_4 + %33 = getelementptr ptr, ptr %11, i64 %9 + store ptr null, ptr %33, align 8 + br label %_llgo_1 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.CStrCopy"(ptr, %"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare i32 @printf(ptr, ...) diff --git a/cl/_testlibc/argv/in.go b/compiler/cl/_testlibc/argv/in.go similarity index 100% rename from cl/_testlibc/argv/in.go rename to compiler/cl/_testlibc/argv/in.go diff --git a/cl/_testlibc/argv/out.ll b/compiler/cl/_testlibc/argv/out.ll similarity index 63% rename from cl/_testlibc/argv/out.ll rename to compiler/cl/_testlibc/argv/out.ll index 0b4d904b..2bda712d 100644 --- a/cl/_testlibc/argv/out.ll +++ b/compiler/cl/_testlibc/argv/out.ll @@ -23,28 +23,28 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - br label %_llgo_3 + br label %_llgo_1 -_llgo_1: ; preds = %_llgo_3 - %2 = load ptr, ptr @__llgo_argv, align 8 - %3 = getelementptr ptr, ptr %2, i32 %7 - %4 = load ptr, ptr %3, align 8 - %5 = call i32 (ptr, ...) @printf(ptr @0, ptr %4) - %6 = add i32 %7, 1 - br label %_llgo_3 +_llgo_1: ; preds = %_llgo_2, %_llgo_0 + %2 = phi i32 [ 0, %_llgo_0 ], [ %9, %_llgo_2 ] + %3 = load i32, ptr @__llgo_argc, align 4 + %4 = icmp slt i32 %2, %3 + br i1 %4, label %_llgo_2, label %_llgo_3 -_llgo_2: ; preds = %_llgo_3 +_llgo_2: ; preds = %_llgo_1 + %5 = load ptr, ptr @__llgo_argv, align 8 + %6 = getelementptr ptr, ptr %5, i32 %2 + %7 = load ptr, ptr %6, align 8 + %8 = call i32 (ptr, ...) @printf(ptr @0, ptr %7) + %9 = add i32 %2, 1 + br label %_llgo_1 + +_llgo_3: ; preds = %_llgo_1 ret i32 0 - -_llgo_3: ; preds = %_llgo_1, %_llgo_0 - %7 = phi i32 [ 0, %_llgo_0 ], [ %6, %_llgo_1 ] - %8 = load i32, ptr @__llgo_argc, align 4 - %9 = icmp slt i32 %7, %8 - br i1 %9, label %_llgo_1, label %_llgo_2 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare i32 @printf(ptr, ...) diff --git a/cl/_testlibc/atomic/in.go b/compiler/cl/_testlibc/atomic/in.go similarity index 100% rename from cl/_testlibc/atomic/in.go rename to compiler/cl/_testlibc/atomic/in.go diff --git a/cl/_testlibc/atomic/out.ll b/compiler/cl/_testlibc/atomic/out.ll similarity index 87% rename from cl/_testlibc/atomic/out.ll rename to compiler/cl/_testlibc/atomic/out.ll index bbe00131..436b2cf5 100644 --- a/cl/_testlibc/atomic/out.ll +++ b/compiler/cl/_testlibc/atomic/out.ll @@ -27,9 +27,9 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) store atomic i64 100, ptr %2 seq_cst, align 4 %3 = load atomic i64, ptr %2 seq_cst, align 4 %4 = call i32 (ptr, ...) @printf(ptr @0, i64 %3) @@ -52,8 +52,8 @@ _llgo_0: ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) declare i32 @printf(ptr, ...) diff --git a/cl/_testlibc/complex/in.go b/compiler/cl/_testlibc/complex/in.go similarity index 100% rename from cl/_testlibc/complex/in.go rename to compiler/cl/_testlibc/complex/in.go diff --git a/compiler/cl/_testlibc/complex/out.ll b/compiler/cl/_testlibc/complex/out.ll new file mode 100644 index 00000000..177fcf1e --- /dev/null +++ b/compiler/cl/_testlibc/complex/out.ll @@ -0,0 +1,74 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } + +@"main.init$guard" = global i1 false, align 1 +@0 = private unnamed_addr constant [5 x i8] c"addr:", align 1 +@1 = private unnamed_addr constant [10 x i8] c"abs(3+4i):", align 1 +@2 = private unnamed_addr constant [11 x i8] c"real(3+4i):", align 1 +@3 = private unnamed_addr constant [11 x i8] c"imag(3+4i):", align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 + +define void @main.f({ float, float } %0, { float, float } %1, ptr %2) { +_llgo_0: + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %3 = call float @cabsf({ float, float } %0) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 10 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %4 = fpext float %3 to double + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %5 = extractvalue { float, float } %1, 0 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 11 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %6 = fpext float %5 to double + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %6) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %7 = extractvalue { float, float } %1, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 11 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %8 = fpext float %7 to double + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %8) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + call void @main.f({ float, float } { float 3.000000e+00, float 4.000000e+00 }, { float, float } { float 3.000000e+00, float 4.000000e+00 }, ptr @main.f) + ret i32 0 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr) + +declare float @cabsf({ float, float }) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() diff --git a/cl/_testlibc/defer/in.go b/compiler/cl/_testlibc/defer/in.go similarity index 100% rename from cl/_testlibc/defer/in.go rename to compiler/cl/_testlibc/defer/in.go diff --git a/cl/_testlibc/defer/out.ll b/compiler/cl/_testlibc/defer/out.ll similarity index 100% rename from cl/_testlibc/defer/out.ll rename to compiler/cl/_testlibc/defer/out.ll diff --git a/cl/_testlibc/demangle/in.go b/compiler/cl/_testlibc/demangle/in.go similarity index 100% rename from cl/_testlibc/demangle/in.go rename to compiler/cl/_testlibc/demangle/in.go diff --git a/cl/_testlibc/demangle/out.ll b/compiler/cl/_testlibc/demangle/out.ll similarity index 62% rename from cl/_testlibc/demangle/out.ll rename to compiler/cl/_testlibc/demangle/out.ll index 45438d96..9cd62d7b 100644 --- a/cl/_testlibc/demangle/out.ll +++ b/compiler/cl/_testlibc/demangle/out.ll @@ -1,7 +1,7 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @@ -27,9 +27,9 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - %2 = call ptr @_ZN4llvm15itaniumDemangleENSt3__117basic_string_viewIcNS0_11char_traitsIcEEEEb(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 29 }, i1 true) + %2 = call ptr @_ZN4llvm15itaniumDemangleENSt3__117basic_string_viewIcNS0_11char_traitsIcEEEEb(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 29 }, i1 true) %3 = icmp ne ptr %2, null br i1 %3, label %_llgo_1, label %_llgo_3 @@ -41,17 +41,17 @@ _llgo_2: ; preds = %_llgo_3, %_llgo_1 ret i32 0 _llgo_3: ; preds = %_llgo_0 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 18 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 18 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) br label %_llgo_2 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare ptr @_ZN4llvm15itaniumDemangleENSt3__117basic_string_viewIcNS0_11char_traitsIcEEEEb(%"github.com/goplus/llgo/internal/runtime.String", i1) +declare ptr @_ZN4llvm15itaniumDemangleENSt3__117basic_string_viewIcNS0_11char_traitsIcEEEEb(%"github.com/goplus/llgo/runtime/internal/runtime.String", i1) declare i32 @printf(ptr, ...) -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) diff --git a/cl/_testlibc/once/in.go b/compiler/cl/_testlibc/once/in.go similarity index 100% rename from cl/_testlibc/once/in.go rename to compiler/cl/_testlibc/once/in.go diff --git a/cl/_testlibc/once/out.ll b/compiler/cl/_testlibc/once/out.ll similarity index 100% rename from cl/_testlibc/once/out.ll rename to compiler/cl/_testlibc/once/out.ll diff --git a/cl/_testlibc/setjmp/in.go b/compiler/cl/_testlibc/setjmp/in.go similarity index 100% rename from cl/_testlibc/setjmp/in.go rename to compiler/cl/_testlibc/setjmp/in.go diff --git a/cl/_testlibc/setjmp/out.ll b/compiler/cl/_testlibc/setjmp/out.ll similarity index 100% rename from cl/_testlibc/setjmp/out.ll rename to compiler/cl/_testlibc/setjmp/out.ll diff --git a/cl/_testlibc/sqlite/in.go b/compiler/cl/_testlibc/sqlite/in.go similarity index 100% rename from cl/_testlibc/sqlite/in.go rename to compiler/cl/_testlibc/sqlite/in.go diff --git a/cl/_testlibc/sqlite/out.ll b/compiler/cl/_testlibc/sqlite/out.ll similarity index 92% rename from cl/_testlibc/sqlite/out.ll rename to compiler/cl/_testlibc/sqlite/out.ll index 2d19d3a0..bd535eee 100644 --- a/cl/_testlibc/sqlite/out.ll +++ b/compiler/cl/_testlibc/sqlite/out.ll @@ -39,7 +39,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call { ptr, i32 } @"github.com/goplus/llgo/c/sqlite.OpenV2"(ptr @1, i32 130, ptr null) %3 = extractvalue { ptr, i32 } %2, 0 @@ -55,7 +55,7 @@ declare i32 @printf(ptr, ...) declare void @exit(i32) -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare { ptr, i32 } @"github.com/goplus/llgo/c/sqlite.OpenV2"(ptr, i32, ptr) diff --git a/cl/_testlibgo/atomic/in.go b/compiler/cl/_testlibgo/atomic/in.go similarity index 100% rename from cl/_testlibgo/atomic/in.go rename to compiler/cl/_testlibgo/atomic/in.go diff --git a/compiler/cl/_testlibgo/atomic/out.ll b/compiler/cl/_testlibgo/atomic/out.ll new file mode 100644 index 00000000..682cd4f0 --- /dev/null +++ b/compiler/cl/_testlibgo/atomic/out.ll @@ -0,0 +1,100 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [6 x i8] c"store:", align 1 +@1 = private unnamed_addr constant [4 x i8] c"ret:", align 1 +@2 = private unnamed_addr constant [2 x i8] c"v:", align 1 +@3 = private unnamed_addr constant [4 x i8] c"swp:", align 1 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"sync/atomic.init"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + store atomic i64 100, ptr %2 seq_cst, align 4 + %3 = load atomic i64, ptr %2 seq_cst, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 6 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %4 = call i64 @"sync/atomic.AddInt64"(ptr %2, i64 1) + %5 = load i64, ptr %2, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 2 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %5) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %6 = call i1 @"sync/atomic.CompareAndSwapInt64"(ptr %2, i64 100, i64 102) + %7 = load i64, ptr %2, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %6) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 2 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %7) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %8 = call i1 @"sync/atomic.CompareAndSwapInt64"(ptr %2, i64 101, i64 102) + %9 = load i64, ptr %2, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %8) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 2 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %9) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %10 = call i64 @"sync/atomic.AddInt64"(ptr %2, i64 -1) + %11 = load i64, ptr %2, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 2 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %11) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +declare void @"sync/atomic.init"() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) + +declare i64 @"sync/atomic.AddInt64"(ptr, i64) + +declare i1 @"sync/atomic.CompareAndSwapInt64"(ptr, i64, i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1) diff --git a/cl/_testlibgo/bytes/in.go b/compiler/cl/_testlibgo/bytes/in.go similarity index 100% rename from cl/_testlibgo/bytes/in.go rename to compiler/cl/_testlibgo/bytes/in.go diff --git a/compiler/cl/_testlibgo/bytes/out.ll b/compiler/cl/_testlibgo/bytes/out.ll new file mode 100644 index 00000000..4dd5b018 --- /dev/null +++ b/compiler/cl/_testlibgo/bytes/out.ll @@ -0,0 +1,81 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [6 x i8] c"Hello ", align 1 +@1 = private unnamed_addr constant [5 x i8] c"World", align 1 +@2 = private unnamed_addr constant [3 x i8] c"buf", align 1 +@3 = private unnamed_addr constant [2 x i8] c"Go", align 1 +@4 = private unnamed_addr constant [2 x i8] c"go", align 1 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @bytes.init() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 40) + %3 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 6 }) + %4 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"bytes.(*Buffer).Write"(ptr %2, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %3) + %5 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"bytes.(*Buffer).WriteString"(ptr %2, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 5 }) + %6 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"bytes.(*Buffer).Bytes"(ptr %2) + %7 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"bytes.(*Buffer).String"(ptr %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 3 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %6) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %7) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %8 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 2 }) + %9 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 2 }) + %10 = call i1 @bytes.EqualFold(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %8, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +declare void @bytes.init() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"bytes.(*Buffer).Write"(ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"bytes.(*Buffer).WriteString"(ptr, %"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"bytes.(*Buffer).Bytes"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"bytes.(*Buffer).String"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare i1 @bytes.EqualFold(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1) diff --git a/cl/_testlibgo/complex/in.go b/compiler/cl/_testlibgo/complex/in.go similarity index 100% rename from cl/_testlibgo/complex/in.go rename to compiler/cl/_testlibgo/complex/in.go diff --git a/compiler/cl/_testlibgo/complex/out.ll b/compiler/cl/_testlibgo/complex/out.ll new file mode 100644 index 00000000..e25e563d --- /dev/null +++ b/compiler/cl/_testlibgo/complex/out.ll @@ -0,0 +1,67 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } + +@"main.init$guard" = global i1 false, align 1 +@0 = private unnamed_addr constant [10 x i8] c"abs(3+4i):", align 1 +@1 = private unnamed_addr constant [11 x i8] c"real(3+4i):", align 1 +@2 = private unnamed_addr constant [11 x i8] c"imag(3+4i):", align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 + +define void @main.f({ double, double } %0, { double, double } %1) { +_llgo_0: + %2 = call double @cabs({ double, double } %0) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 10 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %3 = extractvalue { double, double } %1, 0 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 11 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %4 = extractvalue { double, double } %1, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 11 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"math/cmplx.init"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + call void @main.f({ double, double } { double 3.000000e+00, double 4.000000e+00 }, { double, double } { double 3.000000e+00, double 4.000000e+00 }) + ret i32 0 +} + +declare double @cabs({ double, double }) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double) + +declare void @"math/cmplx.init"() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() diff --git a/cl/_testlibgo/errors/in.go b/compiler/cl/_testlibgo/errors/in.go similarity index 100% rename from cl/_testlibgo/errors/in.go rename to compiler/cl/_testlibgo/errors/in.go diff --git a/compiler/cl/_testlibgo/errors/out.ll b/compiler/cl/_testlibgo/errors/out.ll new file mode 100644 index 00000000..39cbd43e --- /dev/null +++ b/compiler/cl/_testlibgo/errors/out.ll @@ -0,0 +1,50 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [5 x i8] c"error", align 1 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @errors.init() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @errors.New(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }) + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %2) + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %2, 1 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %3, 0 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %5, ptr %4, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %6) + unreachable +} + +declare void @errors.init() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare %"github.com/goplus/llgo/runtime/internal/runtime.iface" @errors.New(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") diff --git a/cl/_testlibgo/math/in.go b/compiler/cl/_testlibgo/math/in.go similarity index 100% rename from cl/_testlibgo/math/in.go rename to compiler/cl/_testlibgo/math/in.go diff --git a/cl/_testlibgo/math/out.ll b/compiler/cl/_testlibgo/math/out.ll similarity index 55% rename from cl/_testlibgo/math/out.ll rename to compiler/cl/_testlibgo/math/out.ll index deb4b57e..500ae362 100644 --- a/cl/_testlibgo/math/out.ll +++ b/compiler/cl/_testlibgo/math/out.ll @@ -23,29 +23,29 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call double @sqrt(double 2.000000e+00) - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double %2) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %3 = call double @math.Abs(double -1.200000e+00) - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %4 = call double @math.Ldexp(double 1.200000e+00, i64 3) - call void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double %4) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) ret i32 0 } declare void @math.init() -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare double @sqrt(double) -declare void @"github.com/goplus/llgo/internal/runtime.PrintFloat"(double) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double) -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) declare double @math.Abs(double) diff --git a/cl/_testlibgo/mathbits/in.go b/compiler/cl/_testlibgo/mathbits/in.go similarity index 100% rename from cl/_testlibgo/mathbits/in.go rename to compiler/cl/_testlibgo/mathbits/in.go diff --git a/cl/_testlibgo/mathbits/out.ll b/compiler/cl/_testlibgo/mathbits/out.ll similarity index 60% rename from cl/_testlibgo/mathbits/out.ll rename to compiler/cl/_testlibgo/mathbits/out.ll index 95ac3a40..843caec6 100644 --- a/cl/_testlibgo/mathbits/out.ll +++ b/compiler/cl/_testlibgo/mathbits/out.ll @@ -23,25 +23,25 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call i64 @"math/bits.Len8"(i8 20) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %2) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %3 = call i64 @"math/bits.OnesCount"(i64 20) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) ret i32 0 } declare void @"math/bits.init"() -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare i64 @"math/bits.Len8"(i8) -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) declare i64 @"math/bits.OnesCount"(i64) diff --git a/cl/_testlibgo/nettextproto/in.go b/compiler/cl/_testlibgo/nettextproto/in.go similarity index 100% rename from cl/_testlibgo/nettextproto/in.go rename to compiler/cl/_testlibgo/nettextproto/in.go diff --git a/compiler/cl/_testlibgo/nettextproto/out.ll b/compiler/cl/_testlibgo/nettextproto/out.ll new file mode 100644 index 00000000..bee86d3d --- /dev/null +++ b/compiler/cl/_testlibgo/nettextproto/out.ll @@ -0,0 +1,45 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [4 x i8] c"host", align 1 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"net/textproto.init"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"net/textproto.CanonicalMIMEHeaderKey"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +declare void @"net/textproto.init"() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"net/textproto.CanonicalMIMEHeaderKey"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) diff --git a/cl/_testlibgo/os/in.go b/compiler/cl/_testlibgo/os/in.go similarity index 100% rename from cl/_testlibgo/os/in.go rename to compiler/cl/_testlibgo/os/in.go diff --git a/compiler/cl/_testlibgo/os/out.ll b/compiler/cl/_testlibgo/os/out.ll new file mode 100644 index 00000000..98c3a820 --- /dev/null +++ b/compiler/cl/_testlibgo/os/out.ll @@ -0,0 +1,77 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [4 x i8] c"cwd:", align 1 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @os.init() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call { %"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @os.Getwd() + %3 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %2, 0 + %4 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.iface" } %2, 1 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %4) + %6 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %4, 1 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %5, 0 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %7, ptr %6, 1 + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %9, 0 + %11 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %10, ptr null, 1 + %12 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %8, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %11) + %13 = xor i1 %12, true + br i1 %13, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %4) + %15 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %4, 1 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %14, 0 + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %16, ptr %15, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %17) + unreachable + +_llgo_2: ; preds = %_llgo_0 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +declare void @os.init() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare { %"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @os.Getwd() + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface", %"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) diff --git a/cl/_testlibgo/strings/in.go b/compiler/cl/_testlibgo/strings/in.go similarity index 100% rename from cl/_testlibgo/strings/in.go rename to compiler/cl/_testlibgo/strings/in.go diff --git a/compiler/cl/_testlibgo/strings/out.ll b/compiler/cl/_testlibgo/strings/out.ll new file mode 100644 index 00000000..eb1f1494 --- /dev/null +++ b/compiler/cl/_testlibgo/strings/out.ll @@ -0,0 +1,110 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [6 x i8] c"Hello ", align 1 +@1 = private unnamed_addr constant [5 x i8] c"World", align 1 +@2 = private unnamed_addr constant [4 x i8] c"len:", align 1 +@3 = private unnamed_addr constant [4 x i8] c"cap:", align 1 +@4 = private unnamed_addr constant [7 x i8] c"string:", align 1 +@5 = private unnamed_addr constant [13 x i8] c"Hello, \E4\B8\96\E7\95\8C", align 1 +@6 = private unnamed_addr constant [12 x i8] c"Hello, world", align 1 +@unicode.Han = external global ptr, align 8 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @strings.init() + call void @unicode.init() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) + %3 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 6 }) + %4 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"strings.(*Builder).Write"(ptr %2, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %3) + %5 = call { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"strings.(*Builder).WriteString"(ptr %2, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 5 }) + %6 = call i64 @"strings.(*Builder).Len"(ptr %2) + %7 = call i64 @"strings.(*Builder).Cap"(ptr %2) + %8 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"strings.(*Builder).String"(ptr %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %6) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %7) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 7 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %8) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %9 = call i64 @strings.IndexFunc(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 13 }, { ptr, ptr } { ptr @"__llgo_stub.main.main$1", ptr null }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %9) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %10 = call i64 @strings.IndexFunc(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 12 }, { ptr, ptr } { ptr @"__llgo_stub.main.main$1", ptr null }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +define i1 @"main.main$1"(i32 %0) { +_llgo_0: + %1 = load ptr, ptr @unicode.Han, align 8 + %2 = call i1 @unicode.Is(ptr %1, i32 %0) + ret i1 %2 +} + +declare void @strings.init() + +declare void @unicode.init() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"strings.(*Builder).Write"(ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare { i64, %"github.com/goplus/llgo/runtime/internal/runtime.iface" } @"strings.(*Builder).WriteString"(ptr, %"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare i64 @"strings.(*Builder).Len"(ptr) + +declare i64 @"strings.(*Builder).Cap"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"strings.(*Builder).String"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) + +declare i64 @strings.IndexFunc(%"github.com/goplus/llgo/runtime/internal/runtime.String", { ptr, ptr }) + +define linkonce i1 @"__llgo_stub.main.main$1"(ptr %0, i32 %1) { +_llgo_0: + %2 = tail call i1 @"main.main$1"(i32 %1) + ret i1 %2 +} + +declare i1 @unicode.Is(ptr, i32) diff --git a/cl/_testlibgo/sync/in.go b/compiler/cl/_testlibgo/sync/in.go similarity index 100% rename from cl/_testlibgo/sync/in.go rename to compiler/cl/_testlibgo/sync/in.go diff --git a/cl/_testlibgo/sync/out.ll b/compiler/cl/_testlibgo/sync/out.ll similarity index 100% rename from cl/_testlibgo/sync/out.ll rename to compiler/cl/_testlibgo/sync/out.ll diff --git a/cl/_testlibgo/waitgroup/in.go b/compiler/cl/_testlibgo/waitgroup/in.go similarity index 100% rename from cl/_testlibgo/waitgroup/in.go rename to compiler/cl/_testlibgo/waitgroup/in.go diff --git a/cl/_testlibgo/waitgroup/out.ll b/compiler/cl/_testlibgo/waitgroup/out.ll similarity index 100% rename from cl/_testlibgo/waitgroup/out.ll rename to compiler/cl/_testlibgo/waitgroup/out.ll diff --git a/cl/_testpy/callpy/in.go b/compiler/cl/_testpy/callpy/in.go similarity index 100% rename from cl/_testpy/callpy/in.go rename to compiler/cl/_testpy/callpy/in.go diff --git a/cl/_testpy/callpy/out.ll b/compiler/cl/_testpy/callpy/out.ll similarity index 95% rename from cl/_testpy/callpy/out.ll rename to compiler/cl/_testpy/callpy/out.ll index 484cf44e..be2ec827 100644 --- a/cl/_testpy/callpy/out.ll +++ b/compiler/cl/_testpy/callpy/out.ll @@ -42,7 +42,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call ptr @PyFloat_FromDouble(double 2.000000e+00) %3 = load ptr, ptr @__llgo_py.math.sqrt, align 8 @@ -63,7 +63,7 @@ declare void @"github.com/goplus/llgo/py/os.init"() declare void @"github.com/goplus/llgo/py/std.init"() -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare ptr @PyFloat_FromDouble(double) diff --git a/cl/_testpy/gcd/in.go b/compiler/cl/_testpy/gcd/in.go similarity index 100% rename from cl/_testpy/gcd/in.go rename to compiler/cl/_testpy/gcd/in.go diff --git a/cl/_testpy/gcd/out.ll b/compiler/cl/_testpy/gcd/out.ll similarity index 92% rename from cl/_testpy/gcd/out.ll rename to compiler/cl/_testpy/gcd/out.ll index 0fdec606..34a2000b 100644 --- a/cl/_testpy/gcd/out.ll +++ b/compiler/cl/_testpy/gcd/out.ll @@ -29,7 +29,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call ptr @PyLong_FromLong(i64 60) %3 = call ptr @PyLong_FromLong(i64 20) @@ -43,7 +43,7 @@ _llgo_0: declare void @"github.com/goplus/llgo/py/math.init"() -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare ptr @PyLong_FromLong(i64) diff --git a/cl/_testpy/math/in.go b/compiler/cl/_testpy/math/in.go similarity index 100% rename from cl/_testpy/math/in.go rename to compiler/cl/_testpy/math/in.go diff --git a/cl/_testpy/math/out.ll b/compiler/cl/_testpy/math/out.ll similarity index 58% rename from cl/_testpy/math/out.ll rename to compiler/cl/_testpy/math/out.ll index 9eeddcbc..f05f04fd 100644 --- a/cl/_testpy/math/out.ll +++ b/compiler/cl/_testpy/math/out.ll @@ -1,17 +1,17 @@ -; ModuleID = 'github.com/goplus/llgo/cl/_testpy/math' -source_filename = "github.com/goplus/llgo/cl/_testpy/math" +; ModuleID = 'github.com/goplus/llgo/compiler/cl/_testpy/math' +source_filename = "github.com/goplus/llgo/compiler/cl/_testpy/math" -@"github.com/goplus/llgo/cl/_testpy/math.init$guard" = global i1 false, align 1 +@"github.com/goplus/llgo/compiler/cl/_testpy/math.init$guard" = global i1 false, align 1 @__llgo_py.math = linkonce global ptr null, align 8 @0 = private unnamed_addr constant [5 x i8] c"math\00", align 1 -define void @"github.com/goplus/llgo/cl/_testpy/math.init"() { +define void @"github.com/goplus/llgo/compiler/cl/_testpy/math.init"() { _llgo_0: - %0 = load i1, ptr @"github.com/goplus/llgo/cl/_testpy/math.init$guard", align 1 + %0 = load i1, ptr @"github.com/goplus/llgo/compiler/cl/_testpy/math.init$guard", align 1 br i1 %0, label %_llgo_2, label %_llgo_1 _llgo_1: ; preds = %_llgo_0 - store i1 true, ptr @"github.com/goplus/llgo/cl/_testpy/math.init$guard", align 1 + store i1 true, ptr @"github.com/goplus/llgo/compiler/cl/_testpy/math.init$guard", align 1 %1 = load ptr, ptr @__llgo_py.math, align 8 %2 = icmp ne ptr %1, null br i1 %2, label %_llgo_2, label %_llgo_3 diff --git a/cl/_testpy/matrix/in.go b/compiler/cl/_testpy/matrix/in.go similarity index 100% rename from cl/_testpy/matrix/in.go rename to compiler/cl/_testpy/matrix/in.go diff --git a/cl/_testpy/matrix/out.ll b/compiler/cl/_testpy/matrix/out.ll similarity index 97% rename from cl/_testpy/matrix/out.ll rename to compiler/cl/_testpy/matrix/out.ll index 7fe94c57..95050021 100644 --- a/cl/_testpy/matrix/out.ll +++ b/compiler/cl/_testpy/matrix/out.ll @@ -31,7 +31,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call ptr @PyList_New(i64 3) %3 = call ptr @PyFloat_FromDouble(double 1.000000e+00) @@ -99,7 +99,7 @@ _llgo_0: declare void @"github.com/goplus/llgo/py/numpy.init"() -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare ptr @PyList_New(i64) diff --git a/cl/_testpy/max/in.go b/compiler/cl/_testpy/max/in.go similarity index 100% rename from cl/_testpy/max/in.go rename to compiler/cl/_testpy/max/in.go diff --git a/cl/_testpy/max/out.ll b/compiler/cl/_testpy/max/out.ll similarity index 96% rename from cl/_testpy/max/out.ll rename to compiler/cl/_testpy/max/out.ll index 46b66d48..0b444928 100644 --- a/cl/_testpy/max/out.ll +++ b/compiler/cl/_testpy/max/out.ll @@ -32,7 +32,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call ptr @PyFloat_FromDouble(double 3.000000e+00) %3 = call ptr @PyFloat_FromDouble(double 9.000000e+00) @@ -75,7 +75,7 @@ _llgo_0: declare void @"github.com/goplus/llgo/py/std.init"() -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare ptr @PyFloat_FromDouble(double) diff --git a/cl/_testpy/pi/in.go b/compiler/cl/_testpy/pi/in.go similarity index 100% rename from cl/_testpy/pi/in.go rename to compiler/cl/_testpy/pi/in.go diff --git a/cl/_testpy/pi/out.ll b/compiler/cl/_testpy/pi/out.ll similarity index 90% rename from cl/_testpy/pi/out.ll rename to compiler/cl/_testpy/pi/out.ll index 083e6d54..5af4e5e6 100644 --- a/cl/_testpy/pi/out.ll +++ b/compiler/cl/_testpy/pi/out.ll @@ -26,7 +26,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = load ptr, ptr @__llgo_py.math, align 8 %3 = call ptr @PyObject_GetAttrString(ptr %2, ptr @1) @@ -37,7 +37,7 @@ _llgo_0: declare void @"github.com/goplus/llgo/py/math.init"() -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare ptr @PyObject_GetAttrString(ptr, ptr) diff --git a/cl/_testpy/pow/in.go b/compiler/cl/_testpy/pow/in.go similarity index 100% rename from cl/_testpy/pow/in.go rename to compiler/cl/_testpy/pow/in.go diff --git a/cl/_testpy/pow/out.ll b/compiler/cl/_testpy/pow/out.ll similarity index 92% rename from cl/_testpy/pow/out.ll rename to compiler/cl/_testpy/pow/out.ll index 29ee34d2..4f6b881a 100644 --- a/cl/_testpy/pow/out.ll +++ b/compiler/cl/_testpy/pow/out.ll @@ -29,7 +29,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call ptr @PyFloat_FromDouble(double 2.000000e+00) %3 = call ptr @PyFloat_FromDouble(double 3.000000e+00) @@ -42,7 +42,7 @@ _llgo_0: declare void @"github.com/goplus/llgo/py/math.init"() -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare ptr @PyFloat_FromDouble(double) diff --git a/cl/_testrt/abinamed/in.go b/compiler/cl/_testrt/abinamed/in.go similarity index 95% rename from cl/_testrt/abinamed/in.go rename to compiler/cl/_testrt/abinamed/in.go index a2c71510..f2d2227e 100644 --- a/cl/_testrt/abinamed/in.go +++ b/compiler/cl/_testrt/abinamed/in.go @@ -3,7 +3,7 @@ package main import ( "unsafe" - "github.com/goplus/llgo/internal/abi" + "github.com/goplus/llgo/runtime/abi" ) type T struct { diff --git a/compiler/cl/_testrt/abinamed/out.ll b/compiler/cl/_testrt/abinamed/out.ll new file mode 100644 index 00000000..7365c383 --- /dev/null +++ b/compiler/cl/_testrt/abinamed/out.ll @@ -0,0 +1,3174 @@ +; ModuleID = 'main' +source_filename = "main" + +%main.T = type { ptr, ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%main.eface = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } +%"github.com/goplus/llgo/runtime/abi.StructType" = type { %"github.com/goplus/llgo/runtime/abi.Type", %"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.Slice" } +%"github.com/goplus/llgo/runtime/abi.Method" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, ptr, ptr } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@_llgo_main.T = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [4 x i8] c"main", align 1 +@1 = private unnamed_addr constant [1 x i8] c"T", align 1 +@"*_llgo_main.T" = linkonce global ptr null, align 8 +@"_llgo_github.com/goplus/llgo/runtime/abi.Type" = linkonce global ptr null, align 8 +@2 = private unnamed_addr constant [34 x i8] c"github.com/goplus/llgo/runtime/abi", align 1 +@3 = private unnamed_addr constant [4 x i8] c"Type", align 1 +@_llgo_uintptr = linkonce global ptr null, align 8 +@_llgo_uint32 = linkonce global ptr null, align 8 +@"_llgo_github.com/goplus/llgo/runtime/abi.TFlag" = linkonce global ptr null, align 8 +@4 = private unnamed_addr constant [5 x i8] c"TFlag", align 1 +@_llgo_uint8 = linkonce global ptr null, align 8 +@_llgo_Pointer = linkonce global ptr null, align 8 +@_llgo_bool = linkonce global ptr null, align 8 +@"_llgo_func$fC75jGwF1nV5TF91gEeTF_JCtbG9Z7_yOawHBxqBh6E" = linkonce global ptr null, align 8 +@"main.struct$6Ehc6TOqEXOG056rtIWcVOuWzJK8QENYOqW7yQ1sEPU" = linkonce global ptr null, align 8 +@5 = private unnamed_addr constant [2 x i8] c"$f", align 1 +@6 = private unnamed_addr constant [5 x i8] c"$data", align 1 +@_llgo_byte = linkonce global ptr null, align 8 +@"*_llgo_byte" = linkonce global ptr null, align 8 +@_llgo_string = linkonce global ptr null, align 8 +@"*_llgo_github.com/goplus/llgo/runtime/abi.Type" = linkonce global ptr null, align 8 +@"main.struct$-sQ1S_TW5WNLDageftHP017iwpTTWpvZTx7xZ5oHpvI" = linkonce global ptr null, align 8 +@7 = private unnamed_addr constant [5 x i8] c"Size_", align 1 +@8 = private unnamed_addr constant [8 x i8] c"PtrBytes", align 1 +@9 = private unnamed_addr constant [4 x i8] c"Hash", align 1 +@10 = private unnamed_addr constant [6 x i8] c"Align_", align 1 +@11 = private unnamed_addr constant [11 x i8] c"FieldAlign_", align 1 +@12 = private unnamed_addr constant [5 x i8] c"Kind_", align 1 +@13 = private unnamed_addr constant [5 x i8] c"Equal", align 1 +@14 = private unnamed_addr constant [6 x i8] c"GCData", align 1 +@15 = private unnamed_addr constant [4 x i8] c"Str_", align 1 +@16 = private unnamed_addr constant [10 x i8] c"PtrToThis_", align 1 +@17 = private unnamed_addr constant [5 x i8] c"Align", align 1 +@_llgo_int = linkonce global ptr null, align 8 +@"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA" = linkonce global ptr null, align 8 +@18 = private unnamed_addr constant [9 x i8] c"ArrayType", align 1 +@"_llgo_github.com/goplus/llgo/runtime/abi.ArrayType" = linkonce global ptr null, align 8 +@"_llgo_struct$_wxpay9lRP3cWU1eNzUY8uwDJyoHmQ6toXBadyiL6io" = linkonce global ptr null, align 8 +@19 = private unnamed_addr constant [4 x i8] c"Elem", align 1 +@20 = private unnamed_addr constant [5 x i8] c"Slice", align 1 +@21 = private unnamed_addr constant [3 x i8] c"Len", align 1 +@"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType" = linkonce global ptr null, align 8 +@"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk" = linkonce global ptr null, align 8 +@22 = private unnamed_addr constant [7 x i8] c"ChanDir", align 1 +@"_llgo_github.com/goplus/llgo/runtime/abi.ChanDir" = linkonce global ptr null, align 8 +@"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc" = linkonce global ptr null, align 8 +@23 = private unnamed_addr constant [6 x i8] c"Common", align 1 +@"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw" = linkonce global ptr null, align 8 +@24 = private unnamed_addr constant [15 x i8] c"ExportedMethods", align 1 +@"_llgo_github.com/goplus/llgo/runtime/abi.Method" = linkonce global ptr null, align 8 +@25 = private unnamed_addr constant [6 x i8] c"Method", align 1 +@"_llgo_github.com/goplus/llgo/runtime/abi.FuncType" = linkonce global ptr null, align 8 +@26 = private unnamed_addr constant [8 x i8] c"FuncType", align 1 +@"[]*_llgo_github.com/goplus/llgo/runtime/abi.Type" = linkonce global ptr null, align 8 +@"_llgo_struct$1ug-gfLTkNOIzG-RN7EFFwGKI01E7iqUGVZBMudT8KA" = linkonce global ptr null, align 8 +@27 = private unnamed_addr constant [2 x i8] c"In", align 1 +@28 = private unnamed_addr constant [3 x i8] c"Out", align 1 +@"[]_llgo_github.com/goplus/llgo/runtime/abi.Method" = linkonce global ptr null, align 8 +@"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM" = linkonce global ptr null, align 8 +@29 = private unnamed_addr constant [10 x i8] c"FieldAlign", align 1 +@"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType" = linkonce global ptr null, align 8 +@"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88" = linkonce global ptr null, align 8 +@30 = private unnamed_addr constant [7 x i8] c"HasName", align 1 +@"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk" = linkonce global ptr null, align 8 +@31 = private unnamed_addr constant [10 x i8] c"IfaceIndir", align 1 +@32 = private unnamed_addr constant [13 x i8] c"InterfaceType", align 1 +@"_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType" = linkonce global ptr null, align 8 +@"_llgo_github.com/goplus/llgo/runtime/abi.Imethod" = linkonce global ptr null, align 8 +@33 = private unnamed_addr constant [7 x i8] c"Imethod", align 1 +@"_llgo_struct$nK3p3a0VXRT6CeR0p3-gSrD3XdcHx2I7dlhqG-Zjudw" = linkonce global ptr null, align 8 +@34 = private unnamed_addr constant [5 x i8] c"Name_", align 1 +@35 = private unnamed_addr constant [4 x i8] c"Typ_", align 1 +@36 = private unnamed_addr constant [8 x i8] c"Exported", align 1 +@37 = private unnamed_addr constant [4 x i8] c"Name", align 1 +@"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 +@38 = private unnamed_addr constant [7 x i8] c"PkgPath", align 1 +@"[]_llgo_github.com/goplus/llgo/runtime/abi.Imethod" = linkonce global ptr null, align 8 +@"_llgo_struct$eoXJdAUqA_SyytMpb3QTBaQ2Bh9nLc089-gvCiW55io" = linkonce global ptr null, align 8 +@39 = private unnamed_addr constant [8 x i8] c"PkgPath_", align 1 +@40 = private unnamed_addr constant [7 x i8] c"Methods", align 1 +@"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType" = linkonce global ptr null, align 8 +@"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM" = linkonce global ptr null, align 8 +@41 = private unnamed_addr constant [9 x i8] c"IsClosure", align 1 +@42 = private unnamed_addr constant [13 x i8] c"IsDirectIface", align 1 +@43 = private unnamed_addr constant [3 x i8] c"Key", align 1 +@44 = private unnamed_addr constant [4 x i8] c"Kind", align 1 +@"_llgo_github.com/goplus/llgo/runtime/abi.Kind" = linkonce global ptr null, align 8 +@_llgo_uint = linkonce global ptr null, align 8 +@45 = private unnamed_addr constant [6 x i8] c"String", align 1 +@"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc" = linkonce global ptr null, align 8 +@46 = private unnamed_addr constant [7 x i8] c"MapType", align 1 +@"_llgo_github.com/goplus/llgo/runtime/abi.MapType" = linkonce global ptr null, align 8 +@"_llgo_func$ahHMZCcDhfW-lrs446sPkiW0NoVa2vpmK_wKarVa_20" = linkonce global ptr null, align 8 +@"main.struct$Oy3XhjARgY_pH1HU6oBj0nSC2Qs1A6CU4bRajpBttZc" = linkonce global ptr null, align 8 +@_llgo_uint16 = linkonce global ptr null, align 8 +@"main.struct$fcvaNpt6kbBgWOAYzHzrrsaKXunEtzMD4RdymMNJqTs" = linkonce global ptr null, align 8 +@47 = private unnamed_addr constant [6 x i8] c"Bucket", align 1 +@48 = private unnamed_addr constant [6 x i8] c"Hasher", align 1 +@49 = private unnamed_addr constant [7 x i8] c"KeySize", align 1 +@50 = private unnamed_addr constant [9 x i8] c"ValueSize", align 1 +@51 = private unnamed_addr constant [10 x i8] c"BucketSize", align 1 +@52 = private unnamed_addr constant [5 x i8] c"Flags", align 1 +@53 = private unnamed_addr constant [14 x i8] c"HashMightPanic", align 1 +@54 = private unnamed_addr constant [12 x i8] c"IndirectElem", align 1 +@55 = private unnamed_addr constant [11 x i8] c"IndirectKey", align 1 +@"*_llgo_github.com/goplus/llgo/runtime/abi.MapType" = linkonce global ptr null, align 8 +@"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY" = linkonce global ptr null, align 8 +@56 = private unnamed_addr constant [13 x i8] c"NeedKeyUpdate", align 1 +@57 = private unnamed_addr constant [9 x i8] c"NumMethod", align 1 +@58 = private unnamed_addr constant [8 x i8] c"Pointers", align 1 +@59 = private unnamed_addr constant [12 x i8] c"ReflexiveKey", align 1 +@60 = private unnamed_addr constant [4 x i8] c"Size", align 1 +@"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s" = linkonce global ptr null, align 8 +@61 = private unnamed_addr constant [10 x i8] c"StructType", align 1 +@"_llgo_github.com/goplus/llgo/runtime/abi.StructType" = linkonce global ptr null, align 8 +@"_llgo_github.com/goplus/llgo/runtime/abi.StructField" = linkonce global ptr null, align 8 +@62 = private unnamed_addr constant [11 x i8] c"StructField", align 1 +@"_llgo_struct$kJjSbRGD6vW5GBpnW3h2bqoH3rm-w30ibwmCd552LPU" = linkonce global ptr null, align 8 +@63 = private unnamed_addr constant [3 x i8] c"Typ", align 1 +@64 = private unnamed_addr constant [6 x i8] c"Offset", align 1 +@65 = private unnamed_addr constant [4 x i8] c"Tag_", align 1 +@66 = private unnamed_addr constant [9 x i8] c"Embedded_", align 1 +@67 = private unnamed_addr constant [8 x i8] c"Embedded", align 1 +@"[]_llgo_github.com/goplus/llgo/runtime/abi.StructField" = linkonce global ptr null, align 8 +@"_llgo_struct$a40Ph0zKu8cPeYh4GJjFLIY8XDqrC7uc-XzprrJaUh0" = linkonce global ptr null, align 8 +@68 = private unnamed_addr constant [6 x i8] c"Fields", align 1 +@"*_llgo_github.com/goplus/llgo/runtime/abi.StructType" = linkonce global ptr null, align 8 +@"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0" = linkonce global ptr null, align 8 +@69 = private unnamed_addr constant [8 x i8] c"Uncommon", align 1 +@"_llgo_github.com/goplus/llgo/runtime/abi.UncommonType" = linkonce global ptr null, align 8 +@70 = private unnamed_addr constant [12 x i8] c"UncommonType", align 1 +@"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI" = linkonce global ptr null, align 8 +@71 = private unnamed_addr constant [6 x i8] c"Mcount", align 1 +@72 = private unnamed_addr constant [6 x i8] c"Xcount", align 1 +@73 = private unnamed_addr constant [4 x i8] c"Moff", align 1 +@"*_llgo_github.com/goplus/llgo/runtime/abi.UncommonType" = linkonce global ptr null, align 8 +@"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio" = linkonce global ptr null, align 8 +@74 = private unnamed_addr constant [8 x i8] c"Variadic", align 1 +@"_llgo_struct$jXUHcnL1PMmNRB-pn2cBRAQ7OYcwCM_YkvLqlL0ZYaE" = linkonce global ptr null, align 8 +@75 = private unnamed_addr constant [5 x i8] c"Mtyp_", align 1 +@76 = private unnamed_addr constant [4 x i8] c"Ifn_", align 1 +@77 = private unnamed_addr constant [4 x i8] c"Tfn_", align 1 +@"[]_llgo_main.T" = linkonce global ptr null, align 8 +@"main.struct$0I14CsQEZ9iadCku0_1cAZfCJoBbFdmFH4XChi4XRoo" = linkonce global ptr null, align 8 +@78 = private unnamed_addr constant [1 x i8] c"p", align 1 +@79 = private unnamed_addr constant [1 x i8] c"t", align 1 +@80 = private unnamed_addr constant [1 x i8] c"n", align 1 +@81 = private unnamed_addr constant [1 x i8] c"a", align 1 +@82 = private unnamed_addr constant [13 x i8] c"error field 0", align 1 +@83 = private unnamed_addr constant [18 x i8] c"error field 0 elem", align 1 +@84 = private unnamed_addr constant [13 x i8] c"error field 1", align 1 +@85 = private unnamed_addr constant [18 x i8] c"error field 1 elem", align 1 +@86 = private unnamed_addr constant [13 x i8] c"error field 2", align 1 +@87 = private unnamed_addr constant [13 x i8] c"error field 3", align 1 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"github.com/goplus/llgo/runtime/abi.init"() + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = load ptr, ptr @_llgo_main.T, align 8 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + store %main.T zeroinitializer, ptr %3, align 8 + %4 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %2, 0 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %4, ptr %3, 1 + %6 = call ptr @main.toEface(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %5) + %7 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 72) + store %"github.com/goplus/llgo/runtime/abi.Type" zeroinitializer, ptr %8, align 8 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %7, 0 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %9, ptr %8, 1 + %11 = call ptr @main.toEface(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %10) + %12 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 + %13 = load ptr, ptr %12, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %13) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %14 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 + %15 = load ptr, ptr %14, align 8 + %16 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %15, i32 0, i32 10 + %17 = load ptr, ptr %16, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %17) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %18 = getelementptr inbounds %main.eface, ptr %11, i32 0, i32 0 + %19 = load ptr, ptr %18, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %19) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %20 = getelementptr inbounds %main.eface, ptr %11, i32 0, i32 0 + %21 = load ptr, ptr %20, align 8 + %22 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %21, i32 0, i32 10 + %23 = load ptr, ptr %22, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %23) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %24 = alloca %"github.com/goplus/llgo/runtime/abi.StructField", align 8 + call void @llvm.memset(ptr %24, i8 0, i64 56, i1 false) + %25 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 + %26 = load ptr, ptr %25, align 8 + %27 = call ptr @"github.com/goplus/llgo/runtime/abi.(*Type).StructType"(ptr %26) + %28 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructType", ptr %27, i32 0, i32 2 + %29 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %28, align 8 + %30 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %29, 0 + %31 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %29, 1 + %32 = icmp sge i64 0, %31 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %32) + %33 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructField", ptr %30, i64 0 + %34 = load %"github.com/goplus/llgo/runtime/abi.StructField", ptr %33, align 8 + store %"github.com/goplus/llgo/runtime/abi.StructField" %34, ptr %24, align 8 + %35 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructField", ptr %24, i32 0, i32 1 + %36 = load ptr, ptr %35, align 8 + %37 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 + %38 = load ptr, ptr %37, align 8 + %39 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %38, i32 0, i32 10 + %40 = load ptr, ptr %39, align 8 + %41 = icmp ne ptr %36, %40 + br i1 %41, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %42 = load ptr, ptr @_llgo_string, align 8 + %43 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @82, i64 13 }, ptr %43, align 8 + %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %42, 0 + %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %44, ptr %43, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %45) + unreachable + +_llgo_2: ; preds = %_llgo_0 + %46 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructField", ptr %24, i32 0, i32 1 + %47 = load ptr, ptr %46, align 8 + %48 = call ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Elem"(ptr %47) + %49 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 + %50 = load ptr, ptr %49, align 8 + %51 = icmp ne ptr %48, %50 + br i1 %51, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %52 = load ptr, ptr @_llgo_string, align 8 + %53 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @83, i64 18 }, ptr %53, align 8 + %54 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %52, 0 + %55 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %54, ptr %53, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %55) + unreachable + +_llgo_4: ; preds = %_llgo_2 + %56 = alloca %"github.com/goplus/llgo/runtime/abi.StructField", align 8 + call void @llvm.memset(ptr %56, i8 0, i64 56, i1 false) + %57 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 + %58 = load ptr, ptr %57, align 8 + %59 = call ptr @"github.com/goplus/llgo/runtime/abi.(*Type).StructType"(ptr %58) + %60 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructType", ptr %59, i32 0, i32 2 + %61 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %60, align 8 + %62 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61, 0 + %63 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61, 1 + %64 = icmp sge i64 1, %63 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %64) + %65 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructField", ptr %62, i64 1 + %66 = load %"github.com/goplus/llgo/runtime/abi.StructField", ptr %65, align 8 + store %"github.com/goplus/llgo/runtime/abi.StructField" %66, ptr %56, align 8 + %67 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructField", ptr %56, i32 0, i32 1 + %68 = load ptr, ptr %67, align 8 + %69 = getelementptr inbounds %main.eface, ptr %11, i32 0, i32 0 + %70 = load ptr, ptr %69, align 8 + %71 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %70, i32 0, i32 10 + %72 = load ptr, ptr %71, align 8 + %73 = icmp ne ptr %68, %72 + br i1 %73, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %74 = load ptr, ptr @_llgo_string, align 8 + %75 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @84, i64 13 }, ptr %75, align 8 + %76 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %74, 0 + %77 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %76, ptr %75, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %77) + unreachable + +_llgo_6: ; preds = %_llgo_4 + %78 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructField", ptr %56, i32 0, i32 1 + %79 = load ptr, ptr %78, align 8 + %80 = call ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Elem"(ptr %79) + %81 = getelementptr inbounds %main.eface, ptr %11, i32 0, i32 0 + %82 = load ptr, ptr %81, align 8 + %83 = icmp ne ptr %80, %82 + br i1 %83, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %84 = load ptr, ptr @_llgo_string, align 8 + %85 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @85, i64 18 }, ptr %85, align 8 + %86 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %84, 0 + %87 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %86, ptr %85, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %87) + unreachable + +_llgo_8: ; preds = %_llgo_6 + %88 = alloca %"github.com/goplus/llgo/runtime/abi.StructField", align 8 + call void @llvm.memset(ptr %88, i8 0, i64 56, i1 false) + %89 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 + %90 = load ptr, ptr %89, align 8 + %91 = call ptr @"github.com/goplus/llgo/runtime/abi.(*Type).StructType"(ptr %90) + %92 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructType", ptr %91, i32 0, i32 2 + %93 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %92, align 8 + %94 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %93, 0 + %95 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %93, 1 + %96 = icmp sge i64 2, %95 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %96) + %97 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructField", ptr %94, i64 2 + %98 = load %"github.com/goplus/llgo/runtime/abi.StructField", ptr %97, align 8 + store %"github.com/goplus/llgo/runtime/abi.StructField" %98, ptr %88, align 8 + %99 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructField", ptr %88, i32 0, i32 1 + %100 = load ptr, ptr %99, align 8 + %101 = getelementptr inbounds %main.eface, ptr %11, i32 0, i32 0 + %102 = load ptr, ptr %101, align 8 + %103 = call ptr @"github.com/goplus/llgo/runtime/abi.(*Type).StructType"(ptr %102) + %104 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructType", ptr %103, i32 0, i32 2 + %105 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %104, align 8 + %106 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %105, 0 + %107 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %105, 1 + %108 = icmp sge i64 0, %107 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %108) + %109 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructField", ptr %106, i64 0 + %110 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructField", ptr %109, i32 0, i32 1 + %111 = load ptr, ptr %110, align 8 + %112 = icmp ne ptr %100, %111 + br i1 %112, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %113 = load ptr, ptr @_llgo_string, align 8 + %114 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @86, i64 13 }, ptr %114, align 8 + %115 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %113, 0 + %116 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %115, ptr %114, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %116) + unreachable + +_llgo_10: ; preds = %_llgo_8 + %117 = alloca %"github.com/goplus/llgo/runtime/abi.StructField", align 8 + call void @llvm.memset(ptr %117, i8 0, i64 56, i1 false) + %118 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 + %119 = load ptr, ptr %118, align 8 + %120 = call ptr @"github.com/goplus/llgo/runtime/abi.(*Type).StructType"(ptr %119) + %121 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructType", ptr %120, i32 0, i32 2 + %122 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %121, align 8 + %123 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %122, 0 + %124 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %122, 1 + %125 = icmp sge i64 3, %124 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %125) + %126 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructField", ptr %123, i64 3 + %127 = load %"github.com/goplus/llgo/runtime/abi.StructField", ptr %126, align 8 + store %"github.com/goplus/llgo/runtime/abi.StructField" %127, ptr %117, align 8 + %128 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.StructField", ptr %117, i32 0, i32 1 + %129 = load ptr, ptr %128, align 8 + %130 = call ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Elem"(ptr %129) + %131 = getelementptr inbounds %main.eface, ptr %6, i32 0, i32 0 + %132 = load ptr, ptr %131, align 8 + %133 = icmp ne ptr %130, %132 + br i1 %133, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + %134 = load ptr, ptr @_llgo_string, align 8 + %135 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @87, i64 13 }, ptr %135, align 8 + %136 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %134, 0 + %137 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %136, ptr %135, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %137) + unreachable + +_llgo_12: ; preds = %_llgo_10 + ret i32 0 +} + +define ptr @main.toEface(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, ptr %1, align 8 + ret ptr %1 +} + +declare void @"github.com/goplus/llgo/runtime/abi.init"() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +define void @"main.init$after"() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 1 }, i64 25, i64 48, i64 0, i64 0) + %1 = load ptr, ptr @_llgo_main.T, align 8 + %2 = icmp eq ptr %1, null + br i1 %2, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + store ptr %0, ptr @_llgo_main.T, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @_llgo_main.T, align 8 + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 1 }, i64 25, i64 48, i64 0, i64 0) + %5 = load ptr, ptr @"*_llgo_main.T", align 8 + %6 = icmp eq ptr %5, null + br i1 %6, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %7) + store ptr %7, ptr @"*_llgo_main.T", align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %8 = load ptr, ptr @"*_llgo_main.T", align 8 + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %10 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %11 = icmp eq ptr %10, null + br i1 %11, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + store ptr %9, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %12 = load ptr, ptr @_llgo_uintptr, align 8 + %13 = icmp eq ptr %12, null + br i1 %13, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + store ptr %14, ptr @_llgo_uintptr, align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %15 = load ptr, ptr @_llgo_uintptr, align 8 + %16 = load ptr, ptr @_llgo_uint32, align 8 + %17 = icmp eq ptr %16, null + br i1 %17, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %18 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 42) + store ptr %18, ptr @_llgo_uint32, align 8 + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_8 + %19 = load ptr, ptr @_llgo_uint32, align 8 + %20 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }, i64 8, i64 1, i64 0, i64 0) + %21 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.TFlag", align 8 + %22 = icmp eq ptr %21, null + br i1 %22, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + store ptr %20, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.TFlag", align 8 + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_10 + %23 = load ptr, ptr @_llgo_uint8, align 8 + %24 = icmp eq ptr %23, null + br i1 %24, label %_llgo_13, label %_llgo_14 + +_llgo_13: ; preds = %_llgo_12 + %25 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + store ptr %25, ptr @_llgo_uint8, align 8 + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_12 + %26 = load ptr, ptr @_llgo_uint8, align 8 + br i1 %22, label %_llgo_15, label %_llgo_16 + +_llgo_15: ; preds = %_llgo_14 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %20, ptr %26, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_16 + +_llgo_16: ; preds = %_llgo_15, %_llgo_14 + %27 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.TFlag", align 8 + %28 = load ptr, ptr @_llgo_Pointer, align 8 + %29 = icmp eq ptr %28, null + br i1 %29, label %_llgo_17, label %_llgo_18 + +_llgo_17: ; preds = %_llgo_16 + %30 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %30) + store ptr %30, ptr @_llgo_Pointer, align 8 + br label %_llgo_18 + +_llgo_18: ; preds = %_llgo_17, %_llgo_16 + %31 = load ptr, ptr @_llgo_Pointer, align 8 + %32 = load ptr, ptr @_llgo_bool, align 8 + %33 = icmp eq ptr %32, null + br i1 %33, label %_llgo_19, label %_llgo_20 + +_llgo_19: ; preds = %_llgo_18 + %34 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 33) + store ptr %34, ptr @_llgo_bool, align 8 + br label %_llgo_20 + +_llgo_20: ; preds = %_llgo_19, %_llgo_18 + %35 = load ptr, ptr @_llgo_bool, align 8 + %36 = load ptr, ptr @_llgo_Pointer, align 8 + %37 = load ptr, ptr @_llgo_Pointer, align 8 + %38 = load ptr, ptr @_llgo_bool, align 8 + %39 = load ptr, ptr @"_llgo_func$fC75jGwF1nV5TF91gEeTF_JCtbG9Z7_yOawHBxqBh6E", align 8 + %40 = icmp eq ptr %39, null + br i1 %40, label %_llgo_21, label %_llgo_22 + +_llgo_21: ; preds = %_llgo_20 + %41 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %42 = getelementptr ptr, ptr %41, i64 0 + store ptr %36, ptr %42, align 8 + %43 = getelementptr ptr, ptr %41, i64 1 + store ptr %37, ptr %43, align 8 + %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %41, 0 + %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %44, i64 2, 1 + %46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %45, i64 2, 2 + %47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %48 = getelementptr ptr, ptr %47, i64 0 + store ptr %38, ptr %48, align 8 + %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %47, 0 + %50 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %49, i64 1, 1 + %51 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %50, i64 1, 2 + %52 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %46, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %51, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %52) + store ptr %52, ptr @"_llgo_func$fC75jGwF1nV5TF91gEeTF_JCtbG9Z7_yOawHBxqBh6E", align 8 + br label %_llgo_22 + +_llgo_22: ; preds = %_llgo_21, %_llgo_20 + %53 = load ptr, ptr @"_llgo_func$fC75jGwF1nV5TF91gEeTF_JCtbG9Z7_yOawHBxqBh6E", align 8 + %54 = load ptr, ptr @_llgo_Pointer, align 8 + %55 = load ptr, ptr @_llgo_Pointer, align 8 + %56 = load ptr, ptr @_llgo_bool, align 8 + %57 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %58 = getelementptr ptr, ptr %57, i64 0 + store ptr %54, ptr %58, align 8 + %59 = getelementptr ptr, ptr %57, i64 1 + store ptr %55, ptr %59, align 8 + %60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %57, 0 + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, i64 2, 1 + %62 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61, i64 2, 2 + %63 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %64 = getelementptr ptr, ptr %63, i64 0 + store ptr %56, ptr %64, align 8 + %65 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %63, 0 + %66 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %65, i64 1, 1 + %67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %66, i64 1, 2 + %68 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %62, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %67, i1 false) + %69 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, ptr %68, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %70 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %71 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 5 }, ptr %70, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %72 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %73 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %72, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %69, ptr %73, align 8 + %74 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %72, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %71, ptr %74, align 8 + %75 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %72, 0 + %76 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %75, i64 2, 1 + %77 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %76, i64 2, 2 + %78 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %77) + store ptr %78, ptr @"main.struct$6Ehc6TOqEXOG056rtIWcVOuWzJK8QENYOqW7yQ1sEPU", align 8 + %79 = load ptr, ptr @"main.struct$6Ehc6TOqEXOG056rtIWcVOuWzJK8QENYOqW7yQ1sEPU", align 8 + %80 = load ptr, ptr @_llgo_byte, align 8 + %81 = icmp eq ptr %80, null + br i1 %81, label %_llgo_23, label %_llgo_24 + +_llgo_23: ; preds = %_llgo_22 + %82 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + store ptr %82, ptr @_llgo_byte, align 8 + br label %_llgo_24 + +_llgo_24: ; preds = %_llgo_23, %_llgo_22 + %83 = load ptr, ptr @_llgo_byte, align 8 + %84 = load ptr, ptr @"*_llgo_byte", align 8 + %85 = icmp eq ptr %84, null + br i1 %85, label %_llgo_25, label %_llgo_26 + +_llgo_25: ; preds = %_llgo_24 + %86 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %87 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %86) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %87) + store ptr %87, ptr @"*_llgo_byte", align 8 + br label %_llgo_26 + +_llgo_26: ; preds = %_llgo_25, %_llgo_24 + %88 = load ptr, ptr @"*_llgo_byte", align 8 + %89 = load ptr, ptr @_llgo_string, align 8 + %90 = icmp eq ptr %89, null + br i1 %90, label %_llgo_27, label %_llgo_28 + +_llgo_27: ; preds = %_llgo_26 + %91 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %91, ptr @_llgo_string, align 8 + br label %_llgo_28 + +_llgo_28: ; preds = %_llgo_27, %_llgo_26 + %92 = load ptr, ptr @_llgo_string, align 8 + %93 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %94 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 72, i64 0, i64 23) + %95 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %96 = icmp eq ptr %95, null + br i1 %96, label %_llgo_29, label %_llgo_30 + +_llgo_29: ; preds = %_llgo_28 + %97 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %94) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %97) + store ptr %97, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + br label %_llgo_30 + +_llgo_30: ; preds = %_llgo_29, %_llgo_28 + %98 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %99 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }, i64 8, i64 1, i64 0, i64 0) + %100 = load ptr, ptr @_llgo_Pointer, align 8 + %101 = load ptr, ptr @_llgo_Pointer, align 8 + %102 = load ptr, ptr @_llgo_bool, align 8 + %103 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 72, i64 0, i64 23) + %104 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %105 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 5 }, ptr %104, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %106 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %107 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 8 }, ptr %106, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %108 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 42) + %109 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 4 }, ptr %108, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %110 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }, ptr %99, i64 20, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %111 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %112 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 6 }, ptr %111, i64 21, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %113 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %114 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 11 }, ptr %113, i64 22, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %115 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %116 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 5 }, ptr %115, i64 23, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %117 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %118 = getelementptr ptr, ptr %117, i64 0 + store ptr %100, ptr %118, align 8 + %119 = getelementptr ptr, ptr %117, i64 1 + store ptr %101, ptr %119, align 8 + %120 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %117, 0 + %121 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %120, i64 2, 1 + %122 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %121, i64 2, 2 + %123 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %124 = getelementptr ptr, ptr %123, i64 0 + store ptr %102, ptr %124, align 8 + %125 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %123, 0 + %126 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %125, i64 1, 1 + %127 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %126, i64 1, 2 + %128 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %122, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %127, i1 false) + %129 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, ptr %128, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %130 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %131 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 5 }, ptr %130, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %132 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %133 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %132, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %129, ptr %133, align 8 + %134 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %132, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %131, ptr %134, align 8 + %135 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %132, 0 + %136 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %135, i64 2, 1 + %137 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %136, i64 2, 2 + %138 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %137) + %139 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 5 }, ptr %138, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %140 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %141 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %140) + %142 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @14, i64 6 }, ptr %141, i64 40, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %143 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %144 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @15, i64 4 }, ptr %143, i64 48, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %145 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %103) + %146 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @16, i64 10 }, ptr %145, i64 64, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %147 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 616) + %148 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %147, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %105, ptr %148, align 8 + %149 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %147, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %107, ptr %149, align 8 + %150 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %147, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %109, ptr %150, align 8 + %151 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %147, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %110, ptr %151, align 8 + %152 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %147, i64 4 + store %"github.com/goplus/llgo/runtime/abi.StructField" %112, ptr %152, align 8 + %153 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %147, i64 5 + store %"github.com/goplus/llgo/runtime/abi.StructField" %114, ptr %153, align 8 + %154 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %147, i64 6 + store %"github.com/goplus/llgo/runtime/abi.StructField" %116, ptr %154, align 8 + %155 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %147, i64 7 + store %"github.com/goplus/llgo/runtime/abi.StructField" %139, ptr %155, align 8 + %156 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %147, i64 8 + store %"github.com/goplus/llgo/runtime/abi.StructField" %142, ptr %156, align 8 + %157 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %147, i64 9 + store %"github.com/goplus/llgo/runtime/abi.StructField" %144, ptr %157, align 8 + %158 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %147, i64 10 + store %"github.com/goplus/llgo/runtime/abi.StructField" %146, ptr %158, align 8 + %159 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %147, 0 + %160 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %159, i64 11, 1 + %161 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %160, i64 11, 2 + %162 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %161) + store ptr %162, ptr @"main.struct$-sQ1S_TW5WNLDageftHP017iwpTTWpvZTx7xZ5oHpvI", align 8 + %163 = load ptr, ptr @"main.struct$-sQ1S_TW5WNLDageftHP017iwpTTWpvZTx7xZ5oHpvI", align 8 + br i1 %11, label %_llgo_31, label %_llgo_32 + +_llgo_31: ; preds = %_llgo_30 + %164 = load ptr, ptr @_llgo_int, align 8 + %165 = icmp eq ptr %164, null + br i1 %165, label %_llgo_33, label %_llgo_34 + +_llgo_32: ; preds = %_llgo_42, %_llgo_30 + %166 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %167 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %168 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 1 }, i64 25, i64 48, i64 0, i64 0) + %169 = load ptr, ptr @"[]_llgo_main.T", align 8 + %170 = icmp eq ptr %169, null + br i1 %170, label %_llgo_149, label %_llgo_150 + +_llgo_33: ; preds = %_llgo_31 + %171 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %171, ptr @_llgo_int, align 8 + br label %_llgo_34 + +_llgo_34: ; preds = %_llgo_33, %_llgo_31 + %172 = load ptr, ptr @_llgo_int, align 8 + %173 = load ptr, ptr @_llgo_int, align 8 + %174 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %175 = icmp eq ptr %174, null + br i1 %175, label %_llgo_35, label %_llgo_36 + +_llgo_35: ; preds = %_llgo_34 + %176 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %177 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %176, 0 + %178 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %177, i64 0, 1 + %179 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %178, i64 0, 2 + %180 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %181 = getelementptr ptr, ptr %180, i64 0 + store ptr %173, ptr %181, align 8 + %182 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %180, 0 + %183 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %182, i64 1, 1 + %184 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %183, i64 1, 2 + %185 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %179, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %184, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %185) + store ptr %185, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + br label %_llgo_36 + +_llgo_36: ; preds = %_llgo_35, %_llgo_34 + %186 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %187 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %186, 1 + %188 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %187, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Align", 2 + %189 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %188, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Align", 3 + %190 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, i64 25, i64 104, i64 0, i64 21) + %191 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + %192 = icmp eq ptr %191, null + br i1 %192, label %_llgo_37, label %_llgo_38 + +_llgo_37: ; preds = %_llgo_36 + store ptr %190, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + br label %_llgo_38 + +_llgo_38: ; preds = %_llgo_37, %_llgo_36 + %193 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %194 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %195 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %196 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %197 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %198 = load ptr, ptr @"_llgo_struct$_wxpay9lRP3cWU1eNzUY8uwDJyoHmQ6toXBadyiL6io", align 8 + %199 = icmp eq ptr %198, null + br i1 %199, label %_llgo_39, label %_llgo_40 + +_llgo_39: ; preds = %_llgo_38 + %200 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, ptr %195, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) + %201 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %196) + %202 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr %201, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %203 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %197) + %204 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @20, i64 5 }, ptr %203, i64 80, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %205 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %206 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr %205, i64 88, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %207 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %208 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %207, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %200, ptr %208, align 8 + %209 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %207, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %202, ptr %209, align 8 + %210 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %207, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %204, ptr %210, align 8 + %211 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %207, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %206, ptr %211, align 8 + %212 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %207, 0 + %213 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %212, i64 4, 1 + %214 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %213, i64 4, 2 + %215 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 96, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %214) + store ptr %215, ptr @"_llgo_struct$_wxpay9lRP3cWU1eNzUY8uwDJyoHmQ6toXBadyiL6io", align 8 + br label %_llgo_40 + +_llgo_40: ; preds = %_llgo_39, %_llgo_38 + %216 = load ptr, ptr @"_llgo_struct$_wxpay9lRP3cWU1eNzUY8uwDJyoHmQ6toXBadyiL6io", align 8 + br i1 %192, label %_llgo_41, label %_llgo_42 + +_llgo_41: ; preds = %_llgo_40 + %217 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %218 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %217, 1 + %219 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %218, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Align", 2 + %220 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %219, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Align", 3 + %221 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, i64 25, i64 104, i64 0, i64 21) + %222 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + %223 = icmp eq ptr %222, null + br i1 %223, label %_llgo_43, label %_llgo_44 + +_llgo_42: ; preds = %_llgo_148, %_llgo_40 + %224 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + %225 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + %226 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 + %227 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %226, 1 + %228 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %227, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).ArrayType", 2 + %229 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %228, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).ArrayType", 3 + %230 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 + %231 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %230, 1 + %232 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %231, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).ChanDir", 2 + %233 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %232, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).ChanDir", 3 + %234 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %235 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %236 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %235, 1 + %237 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %236, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Common", 2 + %238 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %237, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Common", 3 + %239 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %240 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %241 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %240, 1 + %242 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %241, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Elem", 2 + %243 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %242, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Elem", 3 + %244 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %245 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %246 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %245, 1 + %247 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %246, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).ExportedMethods", 2 + %248 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %247, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).ExportedMethods", 3 + %249 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %250 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %249, 1 + %251 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %250, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).FieldAlign", 2 + %252 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %251, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).FieldAlign", 3 + %253 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %254 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 + %255 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %254, 1 + %256 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %255, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).FuncType", 2 + %257 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %256, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).FuncType", 3 + %258 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %259 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %258, 1 + %260 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %259, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).HasName", 2 + %261 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %260, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).HasName", 3 + %262 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %263 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %262, 1 + %264 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %263, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).IfaceIndir", 2 + %265 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %264, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).IfaceIndir", 3 + %266 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %267 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 + %268 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %267, 1 + %269 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %268, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).InterfaceType", 2 + %270 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %269, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).InterfaceType", 3 + %271 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %272 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %271, 1 + %273 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %272, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).IsClosure", 2 + %274 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %273, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).IsClosure", 3 + %275 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %276 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %275, 1 + %277 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %276, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).IsDirectIface", 2 + %278 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %277, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).IsDirectIface", 3 + %279 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %280 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %281 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %280, 1 + %282 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %281, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Key", 2 + %283 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %282, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Key", 3 + %284 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 + %285 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %284, 1 + %286 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %285, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Kind", 2 + %287 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %286, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Kind", 3 + %288 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %289 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %288, 1 + %290 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %289, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Len", 2 + %291 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %290, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Len", 3 + %292 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %293 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 + %294 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %293, 1 + %295 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %294, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).MapType", 2 + %296 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %295, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).MapType", 3 + %297 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %298 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %297, 1 + %299 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %298, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).NumMethod", 2 + %300 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %299, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).NumMethod", 3 + %301 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %302 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %301, 1 + %303 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %302, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Pointers", 2 + %304 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %303, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Pointers", 3 + %305 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %306 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %305, 1 + %307 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %306, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Size", 2 + %308 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %307, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Size", 3 + %309 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %310 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %309, 1 + %311 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %310, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).String", 2 + %312 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %311, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).String", 3 + %313 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %314 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 + %315 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %314, 1 + %316 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %315, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).StructType", 2 + %317 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %316, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).StructType", 3 + %318 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 + %319 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %318, 1 + %320 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %319, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Uncommon", 2 + %321 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %320, ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Uncommon", 3 + %322 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 920) + %323 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %189, ptr %323, align 8 + %324 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %229, ptr %324, align 8 + %325 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %233, ptr %325, align 8 + %326 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 3 + store %"github.com/goplus/llgo/runtime/abi.Method" %238, ptr %326, align 8 + %327 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 4 + store %"github.com/goplus/llgo/runtime/abi.Method" %243, ptr %327, align 8 + %328 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 5 + store %"github.com/goplus/llgo/runtime/abi.Method" %248, ptr %328, align 8 + %329 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 6 + store %"github.com/goplus/llgo/runtime/abi.Method" %252, ptr %329, align 8 + %330 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 7 + store %"github.com/goplus/llgo/runtime/abi.Method" %257, ptr %330, align 8 + %331 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 8 + store %"github.com/goplus/llgo/runtime/abi.Method" %261, ptr %331, align 8 + %332 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 9 + store %"github.com/goplus/llgo/runtime/abi.Method" %265, ptr %332, align 8 + %333 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 10 + store %"github.com/goplus/llgo/runtime/abi.Method" %270, ptr %333, align 8 + %334 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 11 + store %"github.com/goplus/llgo/runtime/abi.Method" %274, ptr %334, align 8 + %335 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 12 + store %"github.com/goplus/llgo/runtime/abi.Method" %278, ptr %335, align 8 + %336 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 13 + store %"github.com/goplus/llgo/runtime/abi.Method" %283, ptr %336, align 8 + %337 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 14 + store %"github.com/goplus/llgo/runtime/abi.Method" %287, ptr %337, align 8 + %338 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 15 + store %"github.com/goplus/llgo/runtime/abi.Method" %291, ptr %338, align 8 + %339 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 16 + store %"github.com/goplus/llgo/runtime/abi.Method" %296, ptr %339, align 8 + %340 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 17 + store %"github.com/goplus/llgo/runtime/abi.Method" %300, ptr %340, align 8 + %341 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 18 + store %"github.com/goplus/llgo/runtime/abi.Method" %304, ptr %341, align 8 + %342 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 19 + store %"github.com/goplus/llgo/runtime/abi.Method" %308, ptr %342, align 8 + %343 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 20 + store %"github.com/goplus/llgo/runtime/abi.Method" %312, ptr %343, align 8 + %344 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 21 + store %"github.com/goplus/llgo/runtime/abi.Method" %317, ptr %344, align 8 + %345 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %322, i64 22 + store %"github.com/goplus/llgo/runtime/abi.Method" %321, ptr %345, align 8 + %346 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %322, 0 + %347 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %346, i64 23, 1 + %348 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %347, i64 23, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %9, ptr %163, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %348) + br label %_llgo_32 + +_llgo_43: ; preds = %_llgo_41 + %349 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %221) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %349) + store ptr %349, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + br label %_llgo_44 + +_llgo_44: ; preds = %_llgo_43, %_llgo_41 + %350 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + %351 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + %352 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 + %353 = icmp eq ptr %352, null + br i1 %353, label %_llgo_45, label %_llgo_46 + +_llgo_45: ; preds = %_llgo_44 + %354 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %355 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %354, 0 + %356 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %355, i64 0, 1 + %357 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %356, i64 0, 2 + %358 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %359 = getelementptr ptr, ptr %358, i64 0 + store ptr %351, ptr %359, align 8 + %360 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %358, 0 + %361 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %360, i64 1, 1 + %362 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %361, i64 1, 2 + %363 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %357, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %362, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %363) + store ptr %363, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 + br label %_llgo_46 + +_llgo_46: ; preds = %_llgo_45, %_llgo_44 + %364 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 + %365 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %364, 1 + %366 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %365, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ArrayType", 2 + %367 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %366, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ArrayType", 3 + %368 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, i64 2, i64 8, i64 0, i64 0) + %369 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.ChanDir", align 8 + %370 = icmp eq ptr %369, null + br i1 %370, label %_llgo_47, label %_llgo_48 + +_llgo_47: ; preds = %_llgo_46 + store ptr %368, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.ChanDir", align 8 + br label %_llgo_48 + +_llgo_48: ; preds = %_llgo_47, %_llgo_46 + %371 = load ptr, ptr @_llgo_int, align 8 + br i1 %370, label %_llgo_49, label %_llgo_50 + +_llgo_49: ; preds = %_llgo_48 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %368, ptr %371, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_50 + +_llgo_50: ; preds = %_llgo_49, %_llgo_48 + %372 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.ChanDir", align 8 + %373 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.ChanDir", align 8 + %374 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 + %375 = icmp eq ptr %374, null + br i1 %375, label %_llgo_51, label %_llgo_52 + +_llgo_51: ; preds = %_llgo_50 + %376 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %377 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %376, 0 + %378 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %377, i64 0, 1 + %379 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %378, i64 0, 2 + %380 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %381 = getelementptr ptr, ptr %380, i64 0 + store ptr %373, ptr %381, align 8 + %382 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %380, 0 + %383 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %382, i64 1, 1 + %384 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %383, i64 1, 2 + %385 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %379, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %384, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %385) + store ptr %385, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 + br label %_llgo_52 + +_llgo_52: ; preds = %_llgo_51, %_llgo_50 + %386 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 + %387 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %386, 1 + %388 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %387, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ChanDir", 2 + %389 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %388, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ChanDir", 3 + %390 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %391 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %392 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %393 = icmp eq ptr %392, null + br i1 %393, label %_llgo_53, label %_llgo_54 + +_llgo_53: ; preds = %_llgo_52 + %394 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %395 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %394, 0 + %396 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %395, i64 0, 1 + %397 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %396, i64 0, 2 + %398 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %399 = getelementptr ptr, ptr %398, i64 0 + store ptr %391, ptr %399, align 8 + %400 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %398, 0 + %401 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %400, i64 1, 1 + %402 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %401, i64 1, 2 + %403 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %397, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %402, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %403) + store ptr %403, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + br label %_llgo_54 + +_llgo_54: ; preds = %_llgo_53, %_llgo_52 + %404 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %405 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %404, 1 + %406 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %405, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Common", 2 + %407 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %406, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Common", 3 + %408 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @25, i64 6 }, i64 25, i64 40, i64 0, i64 3) + %409 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %410 = icmp eq ptr %409, null + br i1 %410, label %_llgo_55, label %_llgo_56 + +_llgo_55: ; preds = %_llgo_54 + store ptr %408, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + br label %_llgo_56 + +_llgo_56: ; preds = %_llgo_55, %_llgo_54 + %411 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) + %412 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %413 = icmp eq ptr %412, null + br i1 %413, label %_llgo_57, label %_llgo_58 + +_llgo_57: ; preds = %_llgo_56 + store ptr %411, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + br label %_llgo_58 + +_llgo_58: ; preds = %_llgo_57, %_llgo_56 + %414 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %415 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %416 = load ptr, ptr @"[]*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %417 = icmp eq ptr %416, null + br i1 %417, label %_llgo_59, label %_llgo_60 + +_llgo_59: ; preds = %_llgo_58 + %418 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %415) + %419 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %418) + store ptr %419, ptr @"[]*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + br label %_llgo_60 + +_llgo_60: ; preds = %_llgo_59, %_llgo_58 + %420 = load ptr, ptr @"[]*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %421 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %422 = load ptr, ptr @"[]*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %423 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %424 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %425 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %426 = load ptr, ptr @"_llgo_struct$1ug-gfLTkNOIzG-RN7EFFwGKI01E7iqUGVZBMudT8KA", align 8 + %427 = icmp eq ptr %426, null + br i1 %427, label %_llgo_61, label %_llgo_62 + +_llgo_61: ; preds = %_llgo_60 + %428 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, ptr %423, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) + %429 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %424) + %430 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %429) + %431 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @27, i64 2 }, ptr %430, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %432 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %425) + %433 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %432) + %434 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @28, i64 3 }, ptr %433, i64 96, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %435 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 168) + %436 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %435, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %428, ptr %436, align 8 + %437 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %435, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %431, ptr %437, align 8 + %438 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %435, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %434, ptr %438, align 8 + %439 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %435, 0 + %440 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %439, i64 3, 1 + %441 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %440, i64 3, 2 + %442 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 120, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %441) + store ptr %442, ptr @"_llgo_struct$1ug-gfLTkNOIzG-RN7EFFwGKI01E7iqUGVZBMudT8KA", align 8 + br label %_llgo_62 + +_llgo_62: ; preds = %_llgo_61, %_llgo_60 + %443 = load ptr, ptr @"_llgo_struct$1ug-gfLTkNOIzG-RN7EFFwGKI01E7iqUGVZBMudT8KA", align 8 + br i1 %413, label %_llgo_63, label %_llgo_64 + +_llgo_63: ; preds = %_llgo_62 + %444 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %445 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %444, 1 + %446 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %445, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Align", 2 + %447 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %446, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Align", 3 + %448 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + %449 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 + %450 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %449, 1 + %451 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %450, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ArrayType", 2 + %452 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %451, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ArrayType", 3 + %453 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 + %454 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %453, 1 + %455 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %454, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ChanDir", 2 + %456 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %455, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ChanDir", 3 + %457 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %458 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %459 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %458, 1 + %460 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %459, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Common", 2 + %461 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %460, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Common", 3 + %462 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %463 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %464 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %463, 1 + %465 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %464, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Elem", 2 + %466 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %465, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Elem", 3 + %467 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @25, i64 6 }, i64 25, i64 40, i64 0, i64 3) + %468 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %469 = icmp eq ptr %468, null + br i1 %469, label %_llgo_65, label %_llgo_66 + +_llgo_64: ; preds = %_llgo_90, %_llgo_62 + %470 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %471 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %472 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) + %473 = load ptr, ptr @"_llgo_struct$jXUHcnL1PMmNRB-pn2cBRAQ7OYcwCM_YkvLqlL0ZYaE", align 8 + %474 = icmp eq ptr %473, null + br i1 %474, label %_llgo_145, label %_llgo_146 + +_llgo_65: ; preds = %_llgo_63 + %475 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %467) + store ptr %475, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + br label %_llgo_66 + +_llgo_66: ; preds = %_llgo_65, %_llgo_63 + %476 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %477 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %478 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %479 = icmp eq ptr %478, null + br i1 %479, label %_llgo_67, label %_llgo_68 + +_llgo_67: ; preds = %_llgo_66 + %480 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %481 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %480, 0 + %482 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %481, i64 0, 1 + %483 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %482, i64 0, 2 + %484 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %485 = getelementptr ptr, ptr %484, i64 0 + store ptr %477, ptr %485, align 8 + %486 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %484, 0 + %487 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %486, i64 1, 1 + %488 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %487, i64 1, 2 + %489 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %483, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %488, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %489) + store ptr %489, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + br label %_llgo_68 + +_llgo_68: ; preds = %_llgo_67, %_llgo_66 + %490 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %491 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %490, 1 + %492 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %491, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ExportedMethods", 2 + %493 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %492, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ExportedMethods", 3 + %494 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %495 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %494, 1 + %496 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %495, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).FieldAlign", 2 + %497 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %496, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).FieldAlign", 3 + %498 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) + %499 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %500 = icmp eq ptr %499, null + br i1 %500, label %_llgo_69, label %_llgo_70 + +_llgo_69: ; preds = %_llgo_68 + %501 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %498) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %501) + store ptr %501, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + br label %_llgo_70 + +_llgo_70: ; preds = %_llgo_69, %_llgo_68 + %502 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %503 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %504 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 + %505 = icmp eq ptr %504, null + br i1 %505, label %_llgo_71, label %_llgo_72 + +_llgo_71: ; preds = %_llgo_70 + %506 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %507 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %506, 0 + %508 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %507, i64 0, 1 + %509 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %508, i64 0, 2 + %510 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %511 = getelementptr ptr, ptr %510, i64 0 + store ptr %503, ptr %511, align 8 + %512 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %510, 0 + %513 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %512, i64 1, 1 + %514 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %513, i64 1, 2 + %515 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %509, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %514, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %515) + store ptr %515, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 + br label %_llgo_72 + +_llgo_72: ; preds = %_llgo_71, %_llgo_70 + %516 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 + %517 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %516, 1 + %518 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %517, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).FuncType", 2 + %519 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %518, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).FuncType", 3 + %520 = load ptr, ptr @_llgo_bool, align 8 + %521 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %522 = icmp eq ptr %521, null + br i1 %522, label %_llgo_73, label %_llgo_74 + +_llgo_73: ; preds = %_llgo_72 + %523 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %524 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %523, 0 + %525 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %524, i64 0, 1 + %526 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %525, i64 0, 2 + %527 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %528 = getelementptr ptr, ptr %527, i64 0 + store ptr %520, ptr %528, align 8 + %529 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %527, 0 + %530 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %529, i64 1, 1 + %531 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %530, i64 1, 2 + %532 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %526, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %531, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %532) + store ptr %532, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + br label %_llgo_74 + +_llgo_74: ; preds = %_llgo_73, %_llgo_72 + %533 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %534 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %533, 1 + %535 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %534, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).HasName", 2 + %536 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %535, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).HasName", 3 + %537 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %538 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %537, 1 + %539 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %538, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IfaceIndir", 2 + %540 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %539, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IfaceIndir", 3 + %541 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, i64 25, i64 120, i64 0, i64 23) + %542 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %543 = icmp eq ptr %542, null + br i1 %543, label %_llgo_75, label %_llgo_76 + +_llgo_75: ; preds = %_llgo_74 + store ptr %541, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + br label %_llgo_76 + +_llgo_76: ; preds = %_llgo_75, %_llgo_74 + %544 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @33, i64 7 }, i64 25, i64 24, i64 0, i64 3) + %545 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 + %546 = icmp eq ptr %545, null + br i1 %546, label %_llgo_77, label %_llgo_78 + +_llgo_77: ; preds = %_llgo_76 + store ptr %544, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 + br label %_llgo_78 + +_llgo_78: ; preds = %_llgo_77, %_llgo_76 + %547 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %548 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, i64 25, i64 128, i64 0, i64 24) + %549 = load ptr, ptr @"_llgo_struct$nK3p3a0VXRT6CeR0p3-gSrD3XdcHx2I7dlhqG-Zjudw", align 8 + %550 = icmp eq ptr %549, null + br i1 %550, label %_llgo_79, label %_llgo_80 + +_llgo_79: ; preds = %_llgo_78 + %551 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %552 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @34, i64 5 }, ptr %551, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %553 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %548) + %554 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @35, i64 4 }, ptr %553, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %555 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %556 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %555, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %552, ptr %556, align 8 + %557 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %555, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %554, ptr %557, align 8 + %558 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %555, 0 + %559 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %558, i64 2, 1 + %560 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %559, i64 2, 2 + %561 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %560) + store ptr %561, ptr @"_llgo_struct$nK3p3a0VXRT6CeR0p3-gSrD3XdcHx2I7dlhqG-Zjudw", align 8 + br label %_llgo_80 + +_llgo_80: ; preds = %_llgo_79, %_llgo_78 + %562 = load ptr, ptr @"_llgo_struct$nK3p3a0VXRT6CeR0p3-gSrD3XdcHx2I7dlhqG-Zjudw", align 8 + br i1 %546, label %_llgo_81, label %_llgo_82 + +_llgo_81: ; preds = %_llgo_80 + %563 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %564 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @36, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %563, 1 + %565 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %564, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).Exported", 2 + %566 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %565, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).Exported", 3 + %567 = load ptr, ptr @_llgo_string, align 8 + %568 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %569 = icmp eq ptr %568, null + br i1 %569, label %_llgo_83, label %_llgo_84 + +_llgo_82: ; preds = %_llgo_84, %_llgo_80 + %570 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 + %571 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @33, i64 7 }, i64 25, i64 24, i64 0, i64 3) + %572 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 + %573 = icmp eq ptr %572, null + br i1 %573, label %_llgo_85, label %_llgo_86 + +_llgo_83: ; preds = %_llgo_81 + %574 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %575 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %574, 0 + %576 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %575, i64 0, 1 + %577 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %576, i64 0, 2 + %578 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %579 = getelementptr ptr, ptr %578, i64 0 + store ptr %567, ptr %579, align 8 + %580 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %578, 0 + %581 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %580, i64 1, 1 + %582 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %581, i64 1, 2 + %583 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %577, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %582, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %583) + store ptr %583, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + br label %_llgo_84 + +_llgo_84: ; preds = %_llgo_83, %_llgo_81 + %584 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %585 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @37, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %584, 1 + %586 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %585, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).Name", 2 + %587 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %586, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).Name", 3 + %588 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %589 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @38, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %588, 1 + %590 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %589, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).PkgPath", 2 + %591 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %590, ptr @"github.com/goplus/llgo/runtime/abi.(*Imethod).PkgPath", 3 + %592 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 120) + %593 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %592, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %566, ptr %593, align 8 + %594 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %592, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %587, ptr %594, align 8 + %595 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %592, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %591, ptr %595, align 8 + %596 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %592, 0 + %597 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %596, i64 3, 1 + %598 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %597, i64 3, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %544, ptr %562, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %598) + br label %_llgo_82 + +_llgo_85: ; preds = %_llgo_82 + %599 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %571) + store ptr %599, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 + br label %_llgo_86 + +_llgo_86: ; preds = %_llgo_85, %_llgo_82 + %600 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Imethod", align 8 + %601 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %602 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @33, i64 7 }, i64 25, i64 24, i64 0, i64 3) + %603 = load ptr, ptr @"_llgo_struct$eoXJdAUqA_SyytMpb3QTBaQ2Bh9nLc089-gvCiW55io", align 8 + %604 = icmp eq ptr %603, null + br i1 %604, label %_llgo_87, label %_llgo_88 + +_llgo_87: ; preds = %_llgo_86 + %605 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, ptr %601, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) + %606 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %607 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @39, i64 8 }, ptr %606, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %608 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %602) + %609 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @40, i64 7 }, ptr %608, i64 88, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %610 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 168) + %611 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %610, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %605, ptr %611, align 8 + %612 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %610, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %607, ptr %612, align 8 + %613 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %610, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %609, ptr %613, align 8 + %614 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %610, 0 + %615 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %614, i64 3, 1 + %616 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %615, i64 3, 2 + %617 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 112, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %616) + store ptr %617, ptr @"_llgo_struct$eoXJdAUqA_SyytMpb3QTBaQ2Bh9nLc089-gvCiW55io", align 8 + br label %_llgo_88 + +_llgo_88: ; preds = %_llgo_87, %_llgo_86 + %618 = load ptr, ptr @"_llgo_struct$eoXJdAUqA_SyytMpb3QTBaQ2Bh9nLc089-gvCiW55io", align 8 + br i1 %543, label %_llgo_89, label %_llgo_90 + +_llgo_89: ; preds = %_llgo_88 + %619 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %620 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %619, 1 + %621 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %620, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Align", 2 + %622 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %621, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Align", 3 + %623 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + %624 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 + %625 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %624, 1 + %626 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %625, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ArrayType", 2 + %627 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %626, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ArrayType", 3 + %628 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 + %629 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %628, 1 + %630 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %629, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ChanDir", 2 + %631 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %630, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ChanDir", 3 + %632 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %633 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %634 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %633, 1 + %635 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %634, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Common", 2 + %636 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %635, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Common", 3 + %637 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %638 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %639 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %638, 1 + %640 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %639, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Elem", 2 + %641 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %640, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Elem", 3 + %642 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %643 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %644 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %643, 1 + %645 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %644, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ExportedMethods", 2 + %646 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %645, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ExportedMethods", 3 + %647 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %648 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %647, 1 + %649 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %648, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).FieldAlign", 2 + %650 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %649, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).FieldAlign", 3 + %651 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %652 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 + %653 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %652, 1 + %654 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %653, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).FuncType", 2 + %655 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %654, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).FuncType", 3 + %656 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %657 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %656, 1 + %658 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %657, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).HasName", 2 + %659 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %658, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).HasName", 3 + %660 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %661 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %660, 1 + %662 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %661, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IfaceIndir", 2 + %663 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %662, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IfaceIndir", 3 + %664 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, i64 25, i64 120, i64 0, i64 23) + %665 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %666 = icmp eq ptr %665, null + br i1 %666, label %_llgo_91, label %_llgo_92 + +_llgo_90: ; preds = %_llgo_110, %_llgo_88 + %667 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %668 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %669 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 + %670 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %669, 1 + %671 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %670, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).InterfaceType", 2 + %672 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %671, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).InterfaceType", 3 + %673 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %674 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %673, 1 + %675 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %674, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IsClosure", 2 + %676 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %675, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IsClosure", 3 + %677 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %678 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %677, 1 + %679 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %678, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IsDirectIface", 2 + %680 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %679, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).IsDirectIface", 3 + %681 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %682 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %683 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %682, 1 + %684 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %683, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Key", 2 + %685 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %684, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Key", 3 + %686 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 + %687 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %686, 1 + %688 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %687, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Kind", 2 + %689 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %688, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Kind", 3 + %690 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %691 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %690, 1 + %692 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %691, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Len", 2 + %693 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %692, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Len", 3 + %694 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %695 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 + %696 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %695, 1 + %697 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %696, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).MapType", 2 + %698 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %697, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).MapType", 3 + %699 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %700 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %699, 1 + %701 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %700, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).NumMethod", 2 + %702 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %701, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).NumMethod", 3 + %703 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %704 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %703, 1 + %705 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %704, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Pointers", 2 + %706 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %705, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Pointers", 3 + %707 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %708 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %707, 1 + %709 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %708, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Size", 2 + %710 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %709, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Size", 3 + %711 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %712 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %711, 1 + %713 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %712, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).String", 2 + %714 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %713, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).String", 3 + %715 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %716 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 + %717 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %716, 1 + %718 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %717, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).StructType", 2 + %719 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %718, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).StructType", 3 + %720 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 + %721 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %720, 1 + %722 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %721, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Uncommon", 2 + %723 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %722, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Uncommon", 3 + %724 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %725 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @74, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %724, 1 + %726 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %725, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Variadic", 2 + %727 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %726, ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Variadic", 3 + %728 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 960) + %729 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %447, ptr %729, align 8 + %730 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %452, ptr %730, align 8 + %731 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %456, ptr %731, align 8 + %732 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 3 + store %"github.com/goplus/llgo/runtime/abi.Method" %461, ptr %732, align 8 + %733 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 4 + store %"github.com/goplus/llgo/runtime/abi.Method" %466, ptr %733, align 8 + %734 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 5 + store %"github.com/goplus/llgo/runtime/abi.Method" %493, ptr %734, align 8 + %735 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 6 + store %"github.com/goplus/llgo/runtime/abi.Method" %497, ptr %735, align 8 + %736 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 7 + store %"github.com/goplus/llgo/runtime/abi.Method" %519, ptr %736, align 8 + %737 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 8 + store %"github.com/goplus/llgo/runtime/abi.Method" %536, ptr %737, align 8 + %738 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 9 + store %"github.com/goplus/llgo/runtime/abi.Method" %540, ptr %738, align 8 + %739 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 10 + store %"github.com/goplus/llgo/runtime/abi.Method" %672, ptr %739, align 8 + %740 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 11 + store %"github.com/goplus/llgo/runtime/abi.Method" %676, ptr %740, align 8 + %741 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 12 + store %"github.com/goplus/llgo/runtime/abi.Method" %680, ptr %741, align 8 + %742 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 13 + store %"github.com/goplus/llgo/runtime/abi.Method" %685, ptr %742, align 8 + %743 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 14 + store %"github.com/goplus/llgo/runtime/abi.Method" %689, ptr %743, align 8 + %744 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 15 + store %"github.com/goplus/llgo/runtime/abi.Method" %693, ptr %744, align 8 + %745 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 16 + store %"github.com/goplus/llgo/runtime/abi.Method" %698, ptr %745, align 8 + %746 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 17 + store %"github.com/goplus/llgo/runtime/abi.Method" %702, ptr %746, align 8 + %747 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 18 + store %"github.com/goplus/llgo/runtime/abi.Method" %706, ptr %747, align 8 + %748 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 19 + store %"github.com/goplus/llgo/runtime/abi.Method" %710, ptr %748, align 8 + %749 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 20 + store %"github.com/goplus/llgo/runtime/abi.Method" %714, ptr %749, align 8 + %750 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 21 + store %"github.com/goplus/llgo/runtime/abi.Method" %719, ptr %750, align 8 + %751 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 22 + store %"github.com/goplus/llgo/runtime/abi.Method" %723, ptr %751, align 8 + %752 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %728, i64 23 + store %"github.com/goplus/llgo/runtime/abi.Method" %727, ptr %752, align 8 + %753 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %728, 0 + %754 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %753, i64 24, 1 + %755 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %754, i64 24, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %411, ptr %443, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %755) + br label %_llgo_64 + +_llgo_91: ; preds = %_llgo_89 + %756 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %664) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %756) + store ptr %756, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + br label %_llgo_92 + +_llgo_92: ; preds = %_llgo_91, %_llgo_89 + %757 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %758 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %759 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 + %760 = icmp eq ptr %759, null + br i1 %760, label %_llgo_93, label %_llgo_94 + +_llgo_93: ; preds = %_llgo_92 + %761 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %762 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %761, 0 + %763 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %762, i64 0, 1 + %764 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %763, i64 0, 2 + %765 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %766 = getelementptr ptr, ptr %765, i64 0 + store ptr %758, ptr %766, align 8 + %767 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %765, 0 + %768 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %767, i64 1, 1 + %769 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %768, i64 1, 2 + %770 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %764, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %769, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %770) + store ptr %770, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 + br label %_llgo_94 + +_llgo_94: ; preds = %_llgo_93, %_llgo_92 + %771 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 + %772 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %771, 1 + %773 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %772, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).InterfaceType", 2 + %774 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %773, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).InterfaceType", 3 + %775 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %776 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %775, 1 + %777 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %776, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IsClosure", 2 + %778 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %777, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IsClosure", 3 + %779 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %780 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %779, 1 + %781 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %780, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IsDirectIface", 2 + %782 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %781, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IsDirectIface", 3 + %783 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %784 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %785 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %784, 1 + %786 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %785, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Key", 2 + %787 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %786, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Key", 3 + %788 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, i64 7, i64 8, i64 1, i64 1) + %789 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Kind", align 8 + %790 = icmp eq ptr %789, null + br i1 %790, label %_llgo_95, label %_llgo_96 + +_llgo_95: ; preds = %_llgo_94 + store ptr %788, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Kind", align 8 + br label %_llgo_96 + +_llgo_96: ; preds = %_llgo_95, %_llgo_94 + %791 = load ptr, ptr @_llgo_uint, align 8 + %792 = icmp eq ptr %791, null + br i1 %792, label %_llgo_97, label %_llgo_98 + +_llgo_97: ; preds = %_llgo_96 + %793 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 39) + store ptr %793, ptr @_llgo_uint, align 8 + br label %_llgo_98 + +_llgo_98: ; preds = %_llgo_97, %_llgo_96 + %794 = load ptr, ptr @_llgo_uint, align 8 + br i1 %790, label %_llgo_99, label %_llgo_100 + +_llgo_99: ; preds = %_llgo_98 + %795 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %796 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %795, 1 + %797 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %796, ptr @"github.com/goplus/llgo/runtime/abi.(*Kind).String", 2 + %798 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %797, ptr @"github.com/goplus/llgo/runtime/abi.(*Kind).String", 3 + %799 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %795, 1 + %800 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %799, ptr @"github.com/goplus/llgo/runtime/abi.(*Kind).String", 2 + %801 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %800, ptr @"github.com/goplus/llgo/runtime/abi.Kind.String", 3 + %802 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %803 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %802, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %801, ptr %803, align 8 + %804 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %802, 0 + %805 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %804, i64 1, 1 + %806 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %805, i64 1, 2 + %807 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %808 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %807, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %798, ptr %808, align 8 + %809 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %807, 0 + %810 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %809, i64 1, 1 + %811 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %810, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %788, ptr %794, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %806, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %811) + br label %_llgo_100 + +_llgo_100: ; preds = %_llgo_99, %_llgo_98 + %812 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Kind", align 8 + %813 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Kind", align 8 + %814 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 + %815 = icmp eq ptr %814, null + br i1 %815, label %_llgo_101, label %_llgo_102 + +_llgo_101: ; preds = %_llgo_100 + %816 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %817 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %816, 0 + %818 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %817, i64 0, 1 + %819 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %818, i64 0, 2 + %820 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %821 = getelementptr ptr, ptr %820, i64 0 + store ptr %813, ptr %821, align 8 + %822 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %820, 0 + %823 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %822, i64 1, 1 + %824 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %823, i64 1, 2 + %825 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %819, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %824, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %825) + store ptr %825, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 + br label %_llgo_102 + +_llgo_102: ; preds = %_llgo_101, %_llgo_100 + %826 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 + %827 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %826, 1 + %828 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %827, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Kind", 2 + %829 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %828, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Kind", 3 + %830 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %831 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %830, 1 + %832 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %831, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Len", 2 + %833 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %832, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Len", 3 + %834 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, i64 25, i64 136, i64 0, i64 26) + %835 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %836 = icmp eq ptr %835, null + br i1 %836, label %_llgo_103, label %_llgo_104 + +_llgo_103: ; preds = %_llgo_102 + store ptr %834, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + br label %_llgo_104 + +_llgo_104: ; preds = %_llgo_103, %_llgo_102 + %837 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %838 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %839 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %840 = load ptr, ptr @_llgo_Pointer, align 8 + %841 = load ptr, ptr @_llgo_uintptr, align 8 + %842 = load ptr, ptr @_llgo_uintptr, align 8 + %843 = load ptr, ptr @"_llgo_func$ahHMZCcDhfW-lrs446sPkiW0NoVa2vpmK_wKarVa_20", align 8 + %844 = icmp eq ptr %843, null + br i1 %844, label %_llgo_105, label %_llgo_106 + +_llgo_105: ; preds = %_llgo_104 + %845 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %846 = getelementptr ptr, ptr %845, i64 0 + store ptr %840, ptr %846, align 8 + %847 = getelementptr ptr, ptr %845, i64 1 + store ptr %841, ptr %847, align 8 + %848 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %845, 0 + %849 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %848, i64 2, 1 + %850 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %849, i64 2, 2 + %851 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %852 = getelementptr ptr, ptr %851, i64 0 + store ptr %842, ptr %852, align 8 + %853 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %851, 0 + %854 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %853, i64 1, 1 + %855 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %854, i64 1, 2 + %856 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %850, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %855, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %856) + store ptr %856, ptr @"_llgo_func$ahHMZCcDhfW-lrs446sPkiW0NoVa2vpmK_wKarVa_20", align 8 + br label %_llgo_106 + +_llgo_106: ; preds = %_llgo_105, %_llgo_104 + %857 = load ptr, ptr @"_llgo_func$ahHMZCcDhfW-lrs446sPkiW0NoVa2vpmK_wKarVa_20", align 8 + %858 = load ptr, ptr @_llgo_Pointer, align 8 + %859 = load ptr, ptr @_llgo_uintptr, align 8 + %860 = load ptr, ptr @_llgo_uintptr, align 8 + %861 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %862 = getelementptr ptr, ptr %861, i64 0 + store ptr %858, ptr %862, align 8 + %863 = getelementptr ptr, ptr %861, i64 1 + store ptr %859, ptr %863, align 8 + %864 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %861, 0 + %865 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %864, i64 2, 1 + %866 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %865, i64 2, 2 + %867 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %868 = getelementptr ptr, ptr %867, i64 0 + store ptr %860, ptr %868, align 8 + %869 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %867, 0 + %870 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %869, i64 1, 1 + %871 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %870, i64 1, 2 + %872 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %866, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %871, i1 false) + %873 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, ptr %872, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %874 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %875 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 5 }, ptr %874, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %876 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %877 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %876, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %873, ptr %877, align 8 + %878 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %876, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %875, ptr %878, align 8 + %879 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %876, 0 + %880 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %879, i64 2, 1 + %881 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %880, i64 2, 2 + %882 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %881) + store ptr %882, ptr @"main.struct$Oy3XhjARgY_pH1HU6oBj0nSC2Qs1A6CU4bRajpBttZc", align 8 + %883 = load ptr, ptr @"main.struct$Oy3XhjARgY_pH1HU6oBj0nSC2Qs1A6CU4bRajpBttZc", align 8 + %884 = load ptr, ptr @_llgo_uint16, align 8 + %885 = icmp eq ptr %884, null + br i1 %885, label %_llgo_107, label %_llgo_108 + +_llgo_107: ; preds = %_llgo_106 + %886 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 41) + store ptr %886, ptr @_llgo_uint16, align 8 + br label %_llgo_108 + +_llgo_108: ; preds = %_llgo_107, %_llgo_106 + %887 = load ptr, ptr @_llgo_uint16, align 8 + %888 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %889 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %890 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %891 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %892 = load ptr, ptr @_llgo_Pointer, align 8 + %893 = load ptr, ptr @_llgo_uintptr, align 8 + %894 = load ptr, ptr @_llgo_uintptr, align 8 + %895 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, ptr %888, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) + %896 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %889) + %897 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @43, i64 3 }, ptr %896, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %898 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %890) + %899 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr %898, i64 80, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %900 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %891) + %901 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @47, i64 6 }, ptr %900, i64 88, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %902 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + %903 = getelementptr ptr, ptr %902, i64 0 + store ptr %892, ptr %903, align 8 + %904 = getelementptr ptr, ptr %902, i64 1 + store ptr %893, ptr %904, align 8 + %905 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %902, 0 + %906 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %905, i64 2, 1 + %907 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %906, i64 2, 2 + %908 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %909 = getelementptr ptr, ptr %908, i64 0 + store ptr %894, ptr %909, align 8 + %910 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %908, 0 + %911 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %910, i64 1, 1 + %912 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %911, i64 1, 2 + %913 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %907, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %912, i1 false) + %914 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, ptr %913, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %915 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %916 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 5 }, ptr %915, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %917 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %918 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %917, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %914, ptr %918, align 8 + %919 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %917, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %916, ptr %919, align 8 + %920 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %917, 0 + %921 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %920, i64 2, 1 + %922 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %921, i64 2, 2 + %923 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %922) + %924 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @48, i64 6 }, ptr %923, i64 96, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %925 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %926 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @49, i64 7 }, ptr %925, i64 112, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %927 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %928 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @50, i64 9 }, ptr %927, i64 113, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %929 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 41) + %930 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @51, i64 10 }, ptr %929, i64 114, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %931 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 42) + %932 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @52, i64 5 }, ptr %931, i64 116, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %933 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 504) + %934 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %933, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %895, ptr %934, align 8 + %935 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %933, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %897, ptr %935, align 8 + %936 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %933, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %899, ptr %936, align 8 + %937 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %933, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %901, ptr %937, align 8 + %938 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %933, i64 4 + store %"github.com/goplus/llgo/runtime/abi.StructField" %924, ptr %938, align 8 + %939 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %933, i64 5 + store %"github.com/goplus/llgo/runtime/abi.StructField" %926, ptr %939, align 8 + %940 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %933, i64 6 + store %"github.com/goplus/llgo/runtime/abi.StructField" %928, ptr %940, align 8 + %941 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %933, i64 7 + store %"github.com/goplus/llgo/runtime/abi.StructField" %930, ptr %941, align 8 + %942 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %933, i64 8 + store %"github.com/goplus/llgo/runtime/abi.StructField" %932, ptr %942, align 8 + %943 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %933, 0 + %944 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %943, i64 9, 1 + %945 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %944, i64 9, 2 + %946 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 120, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %945) + store ptr %946, ptr @"main.struct$fcvaNpt6kbBgWOAYzHzrrsaKXunEtzMD4RdymMNJqTs", align 8 + %947 = load ptr, ptr @"main.struct$fcvaNpt6kbBgWOAYzHzrrsaKXunEtzMD4RdymMNJqTs", align 8 + br i1 %836, label %_llgo_109, label %_llgo_110 + +_llgo_109: ; preds = %_llgo_108 + %948 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %949 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %948, 1 + %950 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %949, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Align", 2 + %951 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %950, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Align", 3 + %952 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + %953 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 + %954 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %953, 1 + %955 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %954, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ArrayType", 2 + %956 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %955, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ArrayType", 3 + %957 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 + %958 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %957, 1 + %959 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %958, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ChanDir", 2 + %960 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %959, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ChanDir", 3 + %961 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %962 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %963 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %962, 1 + %964 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %963, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Common", 2 + %965 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %964, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Common", 3 + %966 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %967 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %968 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %967, 1 + %969 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %968, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ExportedMethods", 2 + %970 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %969, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ExportedMethods", 3 + %971 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %972 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %971, 1 + %973 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %972, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).FieldAlign", 2 + %974 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %973, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).FieldAlign", 3 + %975 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %976 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 + %977 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %976, 1 + %978 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %977, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).FuncType", 2 + %979 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %978, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).FuncType", 3 + %980 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %981 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %980, 1 + %982 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %981, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).HasName", 2 + %983 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %982, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).HasName", 3 + %984 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %985 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @53, i64 14 }, ptr undef, ptr undef, ptr undef }, ptr %984, 1 + %986 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %985, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).HashMightPanic", 2 + %987 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %986, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).HashMightPanic", 3 + %988 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %989 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %988, 1 + %990 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %989, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IfaceIndir", 2 + %991 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %990, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IfaceIndir", 3 + %992 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %993 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @54, i64 12 }, ptr undef, ptr undef, ptr undef }, ptr %992, 1 + %994 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %993, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IndirectElem", 2 + %995 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %994, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IndirectElem", 3 + %996 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %997 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @55, i64 11 }, ptr undef, ptr undef, ptr undef }, ptr %996, 1 + %998 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %997, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IndirectKey", 2 + %999 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %998, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IndirectKey", 3 + %1000 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %1001 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 + %1002 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1001, 1 + %1003 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1002, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).InterfaceType", 2 + %1004 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1003, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).InterfaceType", 3 + %1005 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1006 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1005, 1 + %1007 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1006, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IsClosure", 2 + %1008 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1007, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IsClosure", 3 + %1009 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1010 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1009, 1 + %1011 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1010, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IsDirectIface", 2 + %1012 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1011, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).IsDirectIface", 3 + %1013 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 + %1014 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1013, 1 + %1015 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1014, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Kind", 2 + %1016 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1015, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Kind", 3 + %1017 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1018 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %1017, 1 + %1019 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1018, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Len", 2 + %1020 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1019, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Len", 3 + %1021 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, i64 25, i64 136, i64 0, i64 26) + %1022 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %1023 = icmp eq ptr %1022, null + br i1 %1023, label %_llgo_111, label %_llgo_112 + +_llgo_110: ; preds = %_llgo_130, %_llgo_108 + %1024 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %1025 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %1026 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 + %1027 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1026, 1 + %1028 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1027, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).MapType", 2 + %1029 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1028, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).MapType", 3 + %1030 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1031 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1030, 1 + %1032 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1031, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).NumMethod", 2 + %1033 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1032, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).NumMethod", 3 + %1034 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1035 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1034, 1 + %1036 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1035, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Pointers", 2 + %1037 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1036, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Pointers", 3 + %1038 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1039 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1038, 1 + %1040 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1039, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Size", 2 + %1041 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1040, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Size", 3 + %1042 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1043 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1042, 1 + %1044 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1043, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).String", 2 + %1045 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1044, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).String", 3 + %1046 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %1047 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 + %1048 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1047, 1 + %1049 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1048, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).StructType", 2 + %1050 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1049, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).StructType", 3 + %1051 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 + %1052 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1051, 1 + %1053 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1052, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Uncommon", 2 + %1054 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1053, ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Uncommon", 3 + %1055 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 920) + %1056 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %622, ptr %1056, align 8 + %1057 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %627, ptr %1057, align 8 + %1058 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %631, ptr %1058, align 8 + %1059 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 3 + store %"github.com/goplus/llgo/runtime/abi.Method" %636, ptr %1059, align 8 + %1060 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 4 + store %"github.com/goplus/llgo/runtime/abi.Method" %641, ptr %1060, align 8 + %1061 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 5 + store %"github.com/goplus/llgo/runtime/abi.Method" %646, ptr %1061, align 8 + %1062 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 6 + store %"github.com/goplus/llgo/runtime/abi.Method" %650, ptr %1062, align 8 + %1063 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 7 + store %"github.com/goplus/llgo/runtime/abi.Method" %655, ptr %1063, align 8 + %1064 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 8 + store %"github.com/goplus/llgo/runtime/abi.Method" %659, ptr %1064, align 8 + %1065 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 9 + store %"github.com/goplus/llgo/runtime/abi.Method" %663, ptr %1065, align 8 + %1066 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 10 + store %"github.com/goplus/llgo/runtime/abi.Method" %774, ptr %1066, align 8 + %1067 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 11 + store %"github.com/goplus/llgo/runtime/abi.Method" %778, ptr %1067, align 8 + %1068 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 12 + store %"github.com/goplus/llgo/runtime/abi.Method" %782, ptr %1068, align 8 + %1069 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 13 + store %"github.com/goplus/llgo/runtime/abi.Method" %787, ptr %1069, align 8 + %1070 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 14 + store %"github.com/goplus/llgo/runtime/abi.Method" %829, ptr %1070, align 8 + %1071 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 15 + store %"github.com/goplus/llgo/runtime/abi.Method" %833, ptr %1071, align 8 + %1072 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 16 + store %"github.com/goplus/llgo/runtime/abi.Method" %1029, ptr %1072, align 8 + %1073 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 17 + store %"github.com/goplus/llgo/runtime/abi.Method" %1033, ptr %1073, align 8 + %1074 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 18 + store %"github.com/goplus/llgo/runtime/abi.Method" %1037, ptr %1074, align 8 + %1075 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 19 + store %"github.com/goplus/llgo/runtime/abi.Method" %1041, ptr %1075, align 8 + %1076 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 20 + store %"github.com/goplus/llgo/runtime/abi.Method" %1045, ptr %1076, align 8 + %1077 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 21 + store %"github.com/goplus/llgo/runtime/abi.Method" %1050, ptr %1077, align 8 + %1078 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1055, i64 22 + store %"github.com/goplus/llgo/runtime/abi.Method" %1054, ptr %1078, align 8 + %1079 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1055, 0 + %1080 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1079, i64 23, 1 + %1081 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1080, i64 23, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %541, ptr %618, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1081) + br label %_llgo_90 + +_llgo_111: ; preds = %_llgo_109 + %1082 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1021) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1082) + store ptr %1082, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + br label %_llgo_112 + +_llgo_112: ; preds = %_llgo_111, %_llgo_109 + %1083 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %1084 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %1085 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 + %1086 = icmp eq ptr %1085, null + br i1 %1086, label %_llgo_113, label %_llgo_114 + +_llgo_113: ; preds = %_llgo_112 + %1087 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %1088 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1087, 0 + %1089 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1088, i64 0, 1 + %1090 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1089, i64 0, 2 + %1091 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %1092 = getelementptr ptr, ptr %1091, i64 0 + store ptr %1084, ptr %1092, align 8 + %1093 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1091, 0 + %1094 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1093, i64 1, 1 + %1095 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1094, i64 1, 2 + %1096 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1090, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1095, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1096) + store ptr %1096, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 + br label %_llgo_114 + +_llgo_114: ; preds = %_llgo_113, %_llgo_112 + %1097 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 + %1098 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1097, 1 + %1099 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1098, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).MapType", 2 + %1100 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1099, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).MapType", 3 + %1101 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1102 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @56, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1101, 1 + %1103 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1102, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).NeedKeyUpdate", 2 + %1104 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1103, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).NeedKeyUpdate", 3 + %1105 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1106 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1105, 1 + %1107 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1106, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).NumMethod", 2 + %1108 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1107, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).NumMethod", 3 + %1109 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1110 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1109, 1 + %1111 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1110, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Pointers", 2 + %1112 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1111, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Pointers", 3 + %1113 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1114 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @59, i64 12 }, ptr undef, ptr undef, ptr undef }, ptr %1113, 1 + %1115 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1114, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ReflexiveKey", 2 + %1116 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1115, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ReflexiveKey", 3 + %1117 = load ptr, ptr @_llgo_uintptr, align 8 + %1118 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1119 = icmp eq ptr %1118, null + br i1 %1119, label %_llgo_115, label %_llgo_116 + +_llgo_115: ; preds = %_llgo_114 + %1120 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %1121 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1120, 0 + %1122 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1121, i64 0, 1 + %1123 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1122, i64 0, 2 + %1124 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %1125 = getelementptr ptr, ptr %1124, i64 0 + store ptr %1117, ptr %1125, align 8 + %1126 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1124, 0 + %1127 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1126, i64 1, 1 + %1128 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1127, i64 1, 2 + %1129 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1123, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1128, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1129) + store ptr %1129, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + br label %_llgo_116 + +_llgo_116: ; preds = %_llgo_115, %_llgo_114 + %1130 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1131 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1130, 1 + %1132 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1131, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Size", 2 + %1133 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1132, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Size", 3 + %1134 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1135 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1134, 1 + %1136 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1135, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).String", 2 + %1137 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1136, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).String", 3 + %1138 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, i64 25, i64 120, i64 0, i64 23) + %1139 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %1140 = icmp eq ptr %1139, null + br i1 %1140, label %_llgo_117, label %_llgo_118 + +_llgo_117: ; preds = %_llgo_116 + store ptr %1138, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + br label %_llgo_118 + +_llgo_118: ; preds = %_llgo_117, %_llgo_116 + %1141 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @62, i64 11 }, i64 25, i64 56, i64 0, i64 2) + %1142 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 + %1143 = icmp eq ptr %1142, null + br i1 %1143, label %_llgo_119, label %_llgo_120 + +_llgo_119: ; preds = %_llgo_118 + store ptr %1141, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 + br label %_llgo_120 + +_llgo_120: ; preds = %_llgo_119, %_llgo_118 + %1144 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %1145 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %1146 = load ptr, ptr @"_llgo_struct$kJjSbRGD6vW5GBpnW3h2bqoH3rm-w30ibwmCd552LPU", align 8 + %1147 = icmp eq ptr %1146, null + br i1 %1147, label %_llgo_121, label %_llgo_122 + +_llgo_121: ; preds = %_llgo_120 + %1148 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %1149 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @34, i64 5 }, ptr %1148, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1150 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1145) + %1151 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @63, i64 3 }, ptr %1150, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1152 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %1153 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @64, i64 6 }, ptr %1152, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1154 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %1155 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @65, i64 4 }, ptr %1154, i64 32, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1156 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 33) + %1157 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @66, i64 9 }, ptr %1156, i64 48, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1158 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 280) + %1159 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1158, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1149, ptr %1159, align 8 + %1160 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1158, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1151, ptr %1160, align 8 + %1161 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1158, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1153, ptr %1161, align 8 + %1162 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1158, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1155, ptr %1162, align 8 + %1163 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1158, i64 4 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1157, ptr %1163, align 8 + %1164 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1158, 0 + %1165 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1164, i64 5, 1 + %1166 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1165, i64 5, 2 + %1167 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 56, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1166) + store ptr %1167, ptr @"_llgo_struct$kJjSbRGD6vW5GBpnW3h2bqoH3rm-w30ibwmCd552LPU", align 8 + br label %_llgo_122 + +_llgo_122: ; preds = %_llgo_121, %_llgo_120 + %1168 = load ptr, ptr @"_llgo_struct$kJjSbRGD6vW5GBpnW3h2bqoH3rm-w30ibwmCd552LPU", align 8 + br i1 %1143, label %_llgo_123, label %_llgo_124 + +_llgo_123: ; preds = %_llgo_122 + %1169 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1170 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @67, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1169, 1 + %1171 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1170, ptr @"github.com/goplus/llgo/runtime/abi.(*StructField).Embedded", 2 + %1172 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1171, ptr @"github.com/goplus/llgo/runtime/abi.(*StructField).Embedded", 3 + %1173 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1174 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @36, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1173, 1 + %1175 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1174, ptr @"github.com/goplus/llgo/runtime/abi.(*StructField).Exported", 2 + %1176 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1175, ptr @"github.com/goplus/llgo/runtime/abi.(*StructField).Exported", 3 + %1177 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %1178 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1177, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %1172, ptr %1178, align 8 + %1179 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1177, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %1176, ptr %1179, align 8 + %1180 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1177, 0 + %1181 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1180, i64 2, 1 + %1182 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1181, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %1141, ptr %1168, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1182) + br label %_llgo_124 + +_llgo_124: ; preds = %_llgo_123, %_llgo_122 + %1183 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 + %1184 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @62, i64 11 }, i64 25, i64 56, i64 0, i64 2) + %1185 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 + %1186 = icmp eq ptr %1185, null + br i1 %1186, label %_llgo_125, label %_llgo_126 + +_llgo_125: ; preds = %_llgo_124 + %1187 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %1184) + store ptr %1187, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 + br label %_llgo_126 + +_llgo_126: ; preds = %_llgo_125, %_llgo_124 + %1188 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.StructField", align 8 + %1189 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %1190 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @62, i64 11 }, i64 25, i64 56, i64 0, i64 2) + %1191 = load ptr, ptr @"_llgo_struct$a40Ph0zKu8cPeYh4GJjFLIY8XDqrC7uc-XzprrJaUh0", align 8 + %1192 = icmp eq ptr %1191, null + br i1 %1192, label %_llgo_127, label %_llgo_128 + +_llgo_127: ; preds = %_llgo_126 + %1193 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, ptr %1189, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 true) + %1194 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %1195 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @39, i64 8 }, ptr %1194, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1196 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %1190) + %1197 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @68, i64 6 }, ptr %1196, i64 88, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1198 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 168) + %1199 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1198, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1193, ptr %1199, align 8 + %1200 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1198, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1195, ptr %1200, align 8 + %1201 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1198, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1197, ptr %1201, align 8 + %1202 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1198, 0 + %1203 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1202, i64 3, 1 + %1204 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1203, i64 3, 2 + %1205 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 112, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1204) + store ptr %1205, ptr @"_llgo_struct$a40Ph0zKu8cPeYh4GJjFLIY8XDqrC7uc-XzprrJaUh0", align 8 + br label %_llgo_128 + +_llgo_128: ; preds = %_llgo_127, %_llgo_126 + %1206 = load ptr, ptr @"_llgo_struct$a40Ph0zKu8cPeYh4GJjFLIY8XDqrC7uc-XzprrJaUh0", align 8 + br i1 %1140, label %_llgo_129, label %_llgo_130 + +_llgo_129: ; preds = %_llgo_128 + %1207 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1208 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 5 }, ptr undef, ptr undef, ptr undef }, ptr %1207, 1 + %1209 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1208, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Align", 2 + %1210 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1209, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Align", 3 + %1211 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.ArrayType", align 8 + %1212 = load ptr, ptr @"_llgo_func$E73lcQT8QN1_ra27XNBjrI9wUEDUjSPMu2bmnQKIbfk", align 8 + %1213 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1212, 1 + %1214 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1213, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ArrayType", 2 + %1215 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1214, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ArrayType", 3 + %1216 = load ptr, ptr @"_llgo_func$Qwe8YykhcqDIDEcT1jS_t1iUv4Im6IdGf17ASgXRQdc", align 8 + %1217 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @22, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1216, 1 + %1218 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1217, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ChanDir", 2 + %1219 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1218, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ChanDir", 3 + %1220 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %1221 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %1222 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @23, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1221, 1 + %1223 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1222, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Common", 2 + %1224 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1223, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Common", 3 + %1225 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %1226 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %1227 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1226, 1 + %1228 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1227, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Elem", 2 + %1229 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1228, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Elem", 3 + %1230 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %1231 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %1232 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %1231, 1 + %1233 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1232, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ExportedMethods", 2 + %1234 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1233, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ExportedMethods", 3 + %1235 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1236 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1235, 1 + %1237 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1236, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).FieldAlign", 2 + %1238 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1237, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).FieldAlign", 3 + %1239 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %1240 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 + %1241 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1240, 1 + %1242 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1241, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).FuncType", 2 + %1243 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1242, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).FuncType", 3 + %1244 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1245 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1244, 1 + %1246 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1245, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).HasName", 2 + %1247 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1246, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).HasName", 3 + %1248 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1249 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1248, 1 + %1250 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1249, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IfaceIndir", 2 + %1251 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1250, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IfaceIndir", 3 + %1252 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %1253 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 + %1254 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1253, 1 + %1255 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1254, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).InterfaceType", 2 + %1256 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1255, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).InterfaceType", 3 + %1257 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1258 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1257, 1 + %1259 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1258, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IsClosure", 2 + %1260 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1259, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IsClosure", 3 + %1261 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1262 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1261, 1 + %1263 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1262, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IsDirectIface", 2 + %1264 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1263, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).IsDirectIface", 3 + %1265 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %1266 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %1267 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %1266, 1 + %1268 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1267, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Key", 2 + %1269 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1268, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Key", 3 + %1270 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 + %1271 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1270, 1 + %1272 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1271, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Kind", 2 + %1273 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1272, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Kind", 3 + %1274 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1275 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @21, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %1274, 1 + %1276 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1275, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Len", 2 + %1277 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1276, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Len", 3 + %1278 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %1279 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 + %1280 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1279, 1 + %1281 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1280, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).MapType", 2 + %1282 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1281, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).MapType", 3 + %1283 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1284 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1283, 1 + %1285 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1284, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).NumMethod", 2 + %1286 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1285, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).NumMethod", 3 + %1287 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1288 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1287, 1 + %1289 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1288, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Pointers", 2 + %1290 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1289, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Pointers", 3 + %1291 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1292 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1291, 1 + %1293 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1292, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Size", 2 + %1294 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1293, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Size", 3 + %1295 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1296 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1295, 1 + %1297 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1296, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).String", 2 + %1298 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1297, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).String", 3 + %1299 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, i64 25, i64 120, i64 0, i64 23) + %1300 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %1301 = icmp eq ptr %1300, null + br i1 %1301, label %_llgo_131, label %_llgo_132 + +_llgo_130: ; preds = %_llgo_144, %_llgo_128 + %1302 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %1303 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %1304 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 + %1305 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1304, 1 + %1306 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1305, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).StructType", 2 + %1307 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1306, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).StructType", 3 + %1308 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 + %1309 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1308, 1 + %1310 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1309, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Uncommon", 2 + %1311 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1310, ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Uncommon", 3 + %1312 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 1040) + %1313 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %951, ptr %1313, align 8 + %1314 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %956, ptr %1314, align 8 + %1315 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %960, ptr %1315, align 8 + %1316 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 3 + store %"github.com/goplus/llgo/runtime/abi.Method" %965, ptr %1316, align 8 + %1317 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 4 + store %"github.com/goplus/llgo/runtime/abi.Method" %970, ptr %1317, align 8 + %1318 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 5 + store %"github.com/goplus/llgo/runtime/abi.Method" %974, ptr %1318, align 8 + %1319 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 6 + store %"github.com/goplus/llgo/runtime/abi.Method" %979, ptr %1319, align 8 + %1320 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 7 + store %"github.com/goplus/llgo/runtime/abi.Method" %983, ptr %1320, align 8 + %1321 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 8 + store %"github.com/goplus/llgo/runtime/abi.Method" %987, ptr %1321, align 8 + %1322 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 9 + store %"github.com/goplus/llgo/runtime/abi.Method" %991, ptr %1322, align 8 + %1323 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 10 + store %"github.com/goplus/llgo/runtime/abi.Method" %995, ptr %1323, align 8 + %1324 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 11 + store %"github.com/goplus/llgo/runtime/abi.Method" %999, ptr %1324, align 8 + %1325 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 12 + store %"github.com/goplus/llgo/runtime/abi.Method" %1004, ptr %1325, align 8 + %1326 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 13 + store %"github.com/goplus/llgo/runtime/abi.Method" %1008, ptr %1326, align 8 + %1327 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 14 + store %"github.com/goplus/llgo/runtime/abi.Method" %1012, ptr %1327, align 8 + %1328 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 15 + store %"github.com/goplus/llgo/runtime/abi.Method" %1016, ptr %1328, align 8 + %1329 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 16 + store %"github.com/goplus/llgo/runtime/abi.Method" %1020, ptr %1329, align 8 + %1330 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 17 + store %"github.com/goplus/llgo/runtime/abi.Method" %1100, ptr %1330, align 8 + %1331 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 18 + store %"github.com/goplus/llgo/runtime/abi.Method" %1104, ptr %1331, align 8 + %1332 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 19 + store %"github.com/goplus/llgo/runtime/abi.Method" %1108, ptr %1332, align 8 + %1333 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 20 + store %"github.com/goplus/llgo/runtime/abi.Method" %1112, ptr %1333, align 8 + %1334 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 21 + store %"github.com/goplus/llgo/runtime/abi.Method" %1116, ptr %1334, align 8 + %1335 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 22 + store %"github.com/goplus/llgo/runtime/abi.Method" %1133, ptr %1335, align 8 + %1336 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 23 + store %"github.com/goplus/llgo/runtime/abi.Method" %1137, ptr %1336, align 8 + %1337 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 24 + store %"github.com/goplus/llgo/runtime/abi.Method" %1307, ptr %1337, align 8 + %1338 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1312, i64 25 + store %"github.com/goplus/llgo/runtime/abi.Method" %1311, ptr %1338, align 8 + %1339 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1312, 0 + %1340 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1339, i64 26, 1 + %1341 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1340, i64 26, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %834, ptr %947, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1341) + br label %_llgo_110 + +_llgo_131: ; preds = %_llgo_129 + %1342 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1299) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1342) + store ptr %1342, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + br label %_llgo_132 + +_llgo_132: ; preds = %_llgo_131, %_llgo_129 + %1343 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %1344 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %1345 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 + %1346 = icmp eq ptr %1345, null + br i1 %1346, label %_llgo_133, label %_llgo_134 + +_llgo_133: ; preds = %_llgo_132 + %1347 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %1348 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1347, 0 + %1349 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1348, i64 0, 1 + %1350 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1349, i64 0, 2 + %1351 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %1352 = getelementptr ptr, ptr %1351, i64 0 + store ptr %1344, ptr %1352, align 8 + %1353 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1351, 0 + %1354 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1353, i64 1, 1 + %1355 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1354, i64 1, 2 + %1356 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1350, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1355, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1356) + store ptr %1356, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 + br label %_llgo_134 + +_llgo_134: ; preds = %_llgo_133, %_llgo_132 + %1357 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 + %1358 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1357, 1 + %1359 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1358, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).StructType", 2 + %1360 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1359, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).StructType", 3 + %1361 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @70, i64 12 }, i64 25, i64 24, i64 0, i64 2) + %1362 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 + %1363 = icmp eq ptr %1362, null + br i1 %1363, label %_llgo_135, label %_llgo_136 + +_llgo_135: ; preds = %_llgo_134 + store ptr %1361, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 + br label %_llgo_136 + +_llgo_136: ; preds = %_llgo_135, %_llgo_134 + %1364 = load ptr, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 + %1365 = icmp eq ptr %1364, null + br i1 %1365, label %_llgo_137, label %_llgo_138 + +_llgo_137: ; preds = %_llgo_136 + %1366 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %1367 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @39, i64 8 }, ptr %1366, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1368 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 41) + %1369 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @71, i64 6 }, ptr %1368, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1370 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 41) + %1371 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @72, i64 6 }, ptr %1370, i64 18, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1372 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 42) + %1373 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @73, i64 4 }, ptr %1372, i64 20, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1374 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %1375 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1374, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1367, ptr %1375, align 8 + %1376 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1374, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1369, ptr %1376, align 8 + %1377 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1374, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1371, ptr %1377, align 8 + %1378 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1374, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1373, ptr %1378, align 8 + %1379 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1374, 0 + %1380 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1379, i64 4, 1 + %1381 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1380, i64 4, 2 + %1382 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1381) + store ptr %1382, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 + br label %_llgo_138 + +_llgo_138: ; preds = %_llgo_137, %_llgo_136 + %1383 = load ptr, ptr @"_llgo_struct$OKIlItfBJsawrEMnVSc2VQ7pxNxCHIgSoitcM9n4FVI", align 8 + br i1 %1363, label %_llgo_139, label %_llgo_140 + +_llgo_139: ; preds = %_llgo_138 + %1384 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %1385 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %1386 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %1385, 1 + %1387 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1386, ptr @"github.com/goplus/llgo/runtime/abi.(*UncommonType).ExportedMethods", 2 + %1388 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1387, ptr @"github.com/goplus/llgo/runtime/abi.(*UncommonType).ExportedMethods", 3 + %1389 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %1390 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %1391 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @40, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1390, 1 + %1392 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1391, ptr @"github.com/goplus/llgo/runtime/abi.(*UncommonType).Methods", 2 + %1393 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1392, ptr @"github.com/goplus/llgo/runtime/abi.(*UncommonType).Methods", 3 + %1394 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %1395 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1394, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %1388, ptr %1395, align 8 + %1396 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1394, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %1393, ptr %1396, align 8 + %1397 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1394, 0 + %1398 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1397, i64 2, 1 + %1399 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1398, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %1361, ptr %1383, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1399) + br label %_llgo_140 + +_llgo_140: ; preds = %_llgo_139, %_llgo_138 + %1400 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 + %1401 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @70, i64 12 }, i64 25, i64 24, i64 0, i64 2) + %1402 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 + %1403 = icmp eq ptr %1402, null + br i1 %1403, label %_llgo_141, label %_llgo_142 + +_llgo_141: ; preds = %_llgo_140 + %1404 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1401) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1404) + store ptr %1404, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 + br label %_llgo_142 + +_llgo_142: ; preds = %_llgo_141, %_llgo_140 + %1405 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 + %1406 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.UncommonType", align 8 + %1407 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 + %1408 = icmp eq ptr %1407, null + br i1 %1408, label %_llgo_143, label %_llgo_144 + +_llgo_143: ; preds = %_llgo_142 + %1409 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %1410 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1409, 0 + %1411 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1410, i64 0, 1 + %1412 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1411, i64 0, 2 + %1413 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %1414 = getelementptr ptr, ptr %1413, i64 0 + store ptr %1406, ptr %1414, align 8 + %1415 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1413, 0 + %1416 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1415, i64 1, 1 + %1417 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1416, i64 1, 2 + %1418 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1412, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1417, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %1418) + store ptr %1418, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 + br label %_llgo_144 + +_llgo_144: ; preds = %_llgo_143, %_llgo_142 + %1419 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 + %1420 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1419, 1 + %1421 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1420, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Uncommon", 2 + %1422 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1421, ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Uncommon", 3 + %1423 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 920) + %1424 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %1210, ptr %1424, align 8 + %1425 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %1215, ptr %1425, align 8 + %1426 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %1219, ptr %1426, align 8 + %1427 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 3 + store %"github.com/goplus/llgo/runtime/abi.Method" %1224, ptr %1427, align 8 + %1428 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 4 + store %"github.com/goplus/llgo/runtime/abi.Method" %1229, ptr %1428, align 8 + %1429 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 5 + store %"github.com/goplus/llgo/runtime/abi.Method" %1234, ptr %1429, align 8 + %1430 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 6 + store %"github.com/goplus/llgo/runtime/abi.Method" %1238, ptr %1430, align 8 + %1431 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 7 + store %"github.com/goplus/llgo/runtime/abi.Method" %1243, ptr %1431, align 8 + %1432 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 8 + store %"github.com/goplus/llgo/runtime/abi.Method" %1247, ptr %1432, align 8 + %1433 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 9 + store %"github.com/goplus/llgo/runtime/abi.Method" %1251, ptr %1433, align 8 + %1434 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 10 + store %"github.com/goplus/llgo/runtime/abi.Method" %1256, ptr %1434, align 8 + %1435 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 11 + store %"github.com/goplus/llgo/runtime/abi.Method" %1260, ptr %1435, align 8 + %1436 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 12 + store %"github.com/goplus/llgo/runtime/abi.Method" %1264, ptr %1436, align 8 + %1437 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 13 + store %"github.com/goplus/llgo/runtime/abi.Method" %1269, ptr %1437, align 8 + %1438 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 14 + store %"github.com/goplus/llgo/runtime/abi.Method" %1273, ptr %1438, align 8 + %1439 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 15 + store %"github.com/goplus/llgo/runtime/abi.Method" %1277, ptr %1439, align 8 + %1440 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 16 + store %"github.com/goplus/llgo/runtime/abi.Method" %1282, ptr %1440, align 8 + %1441 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 17 + store %"github.com/goplus/llgo/runtime/abi.Method" %1286, ptr %1441, align 8 + %1442 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 18 + store %"github.com/goplus/llgo/runtime/abi.Method" %1290, ptr %1442, align 8 + %1443 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 19 + store %"github.com/goplus/llgo/runtime/abi.Method" %1294, ptr %1443, align 8 + %1444 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 20 + store %"github.com/goplus/llgo/runtime/abi.Method" %1298, ptr %1444, align 8 + %1445 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 21 + store %"github.com/goplus/llgo/runtime/abi.Method" %1360, ptr %1445, align 8 + %1446 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1423, i64 22 + store %"github.com/goplus/llgo/runtime/abi.Method" %1422, ptr %1446, align 8 + %1447 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1423, 0 + %1448 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1447, i64 23, 1 + %1449 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1448, i64 23, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %1138, ptr %1206, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1449) + br label %_llgo_130 + +_llgo_145: ; preds = %_llgo_64 + %1450 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %1451 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @34, i64 5 }, ptr %1450, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1452 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %472) + %1453 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @75, i64 5 }, ptr %1452, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1454 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %1455 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @76, i64 4 }, ptr %1454, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1456 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %1457 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @77, i64 4 }, ptr %1456, i64 32, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1458 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %1459 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1458, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1451, ptr %1459, align 8 + %1460 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1458, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1453, ptr %1460, align 8 + %1461 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1458, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1455, ptr %1461, align 8 + %1462 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1458, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1457, ptr %1462, align 8 + %1463 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1458, 0 + %1464 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1463, i64 4, 1 + %1465 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1464, i64 4, 2 + %1466 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 40, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1465) + store ptr %1466, ptr @"_llgo_struct$jXUHcnL1PMmNRB-pn2cBRAQ7OYcwCM_YkvLqlL0ZYaE", align 8 + br label %_llgo_146 + +_llgo_146: ; preds = %_llgo_145, %_llgo_64 + %1467 = load ptr, ptr @"_llgo_struct$jXUHcnL1PMmNRB-pn2cBRAQ7OYcwCM_YkvLqlL0ZYaE", align 8 + br i1 %410, label %_llgo_147, label %_llgo_148 + +_llgo_147: ; preds = %_llgo_146 + %1468 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1469 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @36, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1468, 1 + %1470 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1469, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).Exported", 2 + %1471 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1470, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).Exported", 3 + %1472 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1473 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @37, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1472, 1 + %1474 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1473, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).Name", 2 + %1475 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1474, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).Name", 3 + %1476 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1477 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @38, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1476, 1 + %1478 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1477, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).PkgPath", 2 + %1479 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1478, ptr @"github.com/goplus/llgo/runtime/abi.(*Method).PkgPath", 3 + %1480 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 120) + %1481 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1480, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %1471, ptr %1481, align 8 + %1482 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1480, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %1475, ptr %1482, align 8 + %1483 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1480, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %1479, ptr %1483, align 8 + %1484 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1480, 0 + %1485 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1484, i64 3, 1 + %1486 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1485, i64 3, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %408, ptr %1467, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1486) + br label %_llgo_148 + +_llgo_148: ; preds = %_llgo_147, %_llgo_146 + %1487 = load ptr, ptr @"_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %1488 = load ptr, ptr @"[]_llgo_github.com/goplus/llgo/runtime/abi.Method", align 8 + %1489 = load ptr, ptr @"_llgo_func$fPOUeAcTITSSbJEvFFjAWZP6Eli7dk4j7E9mFFHRoNM", align 8 + %1490 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @24, i64 15 }, ptr undef, ptr undef, ptr undef }, ptr %1489, 1 + %1491 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1490, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ExportedMethods", 2 + %1492 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1491, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ExportedMethods", 3 + %1493 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1494 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @29, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1493, 1 + %1495 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1494, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).FieldAlign", 2 + %1496 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1495, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).FieldAlign", 3 + %1497 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.FuncType", align 8 + %1498 = load ptr, ptr @"_llgo_func$Jm50llMLYG9ysTYiSohNC-Ho1mhjzn-vnTRBILhJI88", align 8 + %1499 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @26, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1498, 1 + %1500 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1499, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).FuncType", 2 + %1501 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1500, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).FuncType", 3 + %1502 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1503 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @30, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1502, 1 + %1504 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1503, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).HasName", 2 + %1505 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1504, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).HasName", 3 + %1506 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1507 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @31, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1506, 1 + %1508 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1507, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IfaceIndir", 2 + %1509 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1508, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IfaceIndir", 3 + %1510 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.InterfaceType", align 8 + %1511 = load ptr, ptr @"_llgo_func$gPJieW0gawapuP7u0nJWjqAizA6ianfpIMmF5SojVDM", align 8 + %1512 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @32, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1511, 1 + %1513 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1512, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).InterfaceType", 2 + %1514 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1513, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).InterfaceType", 3 + %1515 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1516 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @41, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1515, 1 + %1517 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1516, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IsClosure", 2 + %1518 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1517, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IsClosure", 3 + %1519 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1520 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @42, i64 13 }, ptr undef, ptr undef, ptr undef }, ptr %1519, 1 + %1521 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1520, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IsDirectIface", 2 + %1522 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1521, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IsDirectIface", 3 + %1523 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.Type", align 8 + %1524 = load ptr, ptr @"_llgo_func$w6XuV-1SmW103DbauPseXBpW50HpxXAEsUsGFibl0Uw", align 8 + %1525 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @43, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %1524, 1 + %1526 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1525, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Key", 2 + %1527 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1526, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Key", 3 + %1528 = load ptr, ptr @"_llgo_func$Hsg8cfKiWmyMHfTCLbUouCMFmF6kp9x3qasAGPBLLfc", align 8 + %1529 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @44, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1528, 1 + %1530 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1529, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Kind", 2 + %1531 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1530, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Kind", 3 + %1532 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.MapType", align 8 + %1533 = load ptr, ptr @"_llgo_func$v23QoXYwI62Le4EtGc42fZr4iF7nBhA8A8t9lvpy0QY", align 8 + %1534 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @46, i64 7 }, ptr undef, ptr undef, ptr undef }, ptr %1533, 1 + %1535 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1534, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).MapType", 2 + %1536 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1535, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).MapType", 3 + %1537 = load ptr, ptr @"_llgo_func$ETeB8WwW04JEq0ztcm-XPTJtuYvtpkjIsAc0-2NT9zA", align 8 + %1538 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @57, i64 9 }, ptr undef, ptr undef, ptr undef }, ptr %1537, 1 + %1539 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1538, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).NumMethod", 2 + %1540 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1539, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).NumMethod", 3 + %1541 = load ptr, ptr @"_llgo_func$YHeRw3AOvQtzv982-ZO3Yn8vh3Fx89RM3VvI8E4iKVk", align 8 + %1542 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @58, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1541, 1 + %1543 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1542, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Pointers", 2 + %1544 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1543, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Pointers", 3 + %1545 = load ptr, ptr @"_llgo_func$1kITCsyu7hFLMxHLR7kDlvu4SOra_HtrtdFUQH9P13s", align 8 + %1546 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @60, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %1545, 1 + %1547 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1546, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Size", 2 + %1548 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1547, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Size", 3 + %1549 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %1550 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @45, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %1549, 1 + %1551 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1550, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).String", 2 + %1552 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1551, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).String", 3 + %1553 = load ptr, ptr @"*_llgo_github.com/goplus/llgo/runtime/abi.StructType", align 8 + %1554 = load ptr, ptr @"_llgo_func$JNZyRh9Ldf2v-LKH-spUrxoORHTTH5NO358kWdhabp0", align 8 + %1555 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @61, i64 10 }, ptr undef, ptr undef, ptr undef }, ptr %1554, 1 + %1556 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1555, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).StructType", 2 + %1557 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1556, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).StructType", 3 + %1558 = load ptr, ptr @"_llgo_func$iG49bujiXjI2lVflYdE0hPXlCAABL-XKRANSNJEKOio", align 8 + %1559 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @69, i64 8 }, ptr undef, ptr undef, ptr undef }, ptr %1558, 1 + %1560 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1559, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Uncommon", 2 + %1561 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %1560, ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Uncommon", 3 + %1562 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 840) + %1563 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %220, ptr %1563, align 8 + %1564 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %367, ptr %1564, align 8 + %1565 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 2 + store %"github.com/goplus/llgo/runtime/abi.Method" %389, ptr %1565, align 8 + %1566 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 3 + store %"github.com/goplus/llgo/runtime/abi.Method" %407, ptr %1566, align 8 + %1567 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 4 + store %"github.com/goplus/llgo/runtime/abi.Method" %1492, ptr %1567, align 8 + %1568 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 5 + store %"github.com/goplus/llgo/runtime/abi.Method" %1496, ptr %1568, align 8 + %1569 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 6 + store %"github.com/goplus/llgo/runtime/abi.Method" %1501, ptr %1569, align 8 + %1570 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 7 + store %"github.com/goplus/llgo/runtime/abi.Method" %1505, ptr %1570, align 8 + %1571 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 8 + store %"github.com/goplus/llgo/runtime/abi.Method" %1509, ptr %1571, align 8 + %1572 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 9 + store %"github.com/goplus/llgo/runtime/abi.Method" %1514, ptr %1572, align 8 + %1573 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 10 + store %"github.com/goplus/llgo/runtime/abi.Method" %1518, ptr %1573, align 8 + %1574 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 11 + store %"github.com/goplus/llgo/runtime/abi.Method" %1522, ptr %1574, align 8 + %1575 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 12 + store %"github.com/goplus/llgo/runtime/abi.Method" %1527, ptr %1575, align 8 + %1576 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 13 + store %"github.com/goplus/llgo/runtime/abi.Method" %1531, ptr %1576, align 8 + %1577 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 14 + store %"github.com/goplus/llgo/runtime/abi.Method" %1536, ptr %1577, align 8 + %1578 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 15 + store %"github.com/goplus/llgo/runtime/abi.Method" %1540, ptr %1578, align 8 + %1579 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 16 + store %"github.com/goplus/llgo/runtime/abi.Method" %1544, ptr %1579, align 8 + %1580 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 17 + store %"github.com/goplus/llgo/runtime/abi.Method" %1548, ptr %1580, align 8 + %1581 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 18 + store %"github.com/goplus/llgo/runtime/abi.Method" %1552, ptr %1581, align 8 + %1582 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 19 + store %"github.com/goplus/llgo/runtime/abi.Method" %1557, ptr %1582, align 8 + %1583 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %1562, i64 20 + store %"github.com/goplus/llgo/runtime/abi.Method" %1561, ptr %1583, align 8 + %1584 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1562, 0 + %1585 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1584, i64 21, 1 + %1586 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1585, i64 21, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %190, ptr %216, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1586) + br label %_llgo_42 + +_llgo_149: ; preds = %_llgo_32 + %1587 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %168) + store ptr %1587, ptr @"[]_llgo_main.T", align 8 + br label %_llgo_150 + +_llgo_150: ; preds = %_llgo_149, %_llgo_32 + %1588 = load ptr, ptr @"[]_llgo_main.T", align 8 + %1589 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 1 }, i64 25, i64 48, i64 0, i64 0) + %1590 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 34 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 4 }, i64 25, i64 80, i64 0, i64 23) + %1591 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 1 }, i64 25, i64 48, i64 0, i64 0) + %1592 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1589) + %1593 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @78, i64 1 }, ptr %1592, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1594 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %1590) + %1595 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @79, i64 1 }, ptr %1594, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1596 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %1597 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @80, i64 1 }, ptr %1596, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1598 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %1591) + %1599 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @81, i64 1 }, ptr %1598, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %1600 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %1601 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1600, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1593, ptr %1601, align 8 + %1602 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1600, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1595, ptr %1602, align 8 + %1603 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1600, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1597, ptr %1603, align 8 + %1604 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %1600, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %1599, ptr %1604, align 8 + %1605 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %1600, 0 + %1606 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1605, i64 4, 1 + %1607 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1606, i64 4, 2 + %1608 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 48, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %1607) + store ptr %1608, ptr @"main.struct$0I14CsQEZ9iadCku0_1cAZfCJoBbFdmFH4XChi4XRoo", align 8 + %1609 = load ptr, ptr @"main.struct$0I14CsQEZ9iadCku0_1cAZfCJoBbFdmFH4XChi4XRoo", align 8 + br i1 %2, label %_llgo_151, label %_llgo_152 + +_llgo_151: ; preds = %_llgo_150 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %1609, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_152 + +_llgo_152: ; preds = %_llgo_151, %_llgo_150 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*Type).Align"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Align"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ArrayType"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ChanDir"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Common"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*FuncType).Align"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).ArrayType"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*FuncType).ChanDir"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Common"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Elem"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/abi.(*FuncType).ExportedMethods"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*FuncType).FieldAlign"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).FuncType"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*FuncType).HasName"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*FuncType).IfaceIndir"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*Imethod).Exported"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/abi.(*Imethod).Name"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/abi.(*Imethod).PkgPath"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Align"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ArrayType"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ChanDir"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Common"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Elem"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).ExportedMethods"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).FieldAlign"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).FuncType"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).HasName"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IfaceIndir"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).InterfaceType"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IsClosure"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).IsDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Key"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/abi.(*Kind).String"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/abi.Kind.String"(i64) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Kind"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Len"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*MapType).Align"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).ArrayType"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*MapType).ChanDir"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Common"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/abi.(*MapType).ExportedMethods"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*MapType).FieldAlign"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).FuncType"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*MapType).HasName"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*MapType).HashMightPanic"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*MapType).IfaceIndir"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*MapType).IndirectElem"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*MapType).IndirectKey"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).InterfaceType"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*MapType).IsClosure"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*MapType).IsDirectIface"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*MapType).Kind"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*MapType).Len"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).MapType"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*MapType).NeedKeyUpdate"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*MapType).NumMethod"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*MapType).Pointers"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*MapType).ReflexiveKey"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*MapType).Size"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/abi.(*MapType).String"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*StructField).Embedded"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*StructField).Exported"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*StructType).Align"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).ArrayType"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*StructType).ChanDir"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Common"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Elem"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/abi.(*StructType).ExportedMethods"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*StructType).FieldAlign"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).FuncType"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*StructType).HasName"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*StructType).IfaceIndir"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).InterfaceType"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*StructType).IsClosure"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*StructType).IsDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Key"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*StructType).Kind"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*StructType).Len"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).MapType"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*StructType).NumMethod"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*StructType).Pointers"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*StructType).Size"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/abi.(*StructType).String"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).StructType"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/abi.(*UncommonType).ExportedMethods"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/abi.(*UncommonType).Methods"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*StructType).Uncommon"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).StructType"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*MapType).Uncommon"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).MapType"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).NumMethod"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Pointers"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Size"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).String"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).StructType"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*InterfaceType).Uncommon"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).InterfaceType"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*FuncType).IsClosure"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*FuncType).IsDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Key"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*FuncType).Kind"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*FuncType).Len"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).MapType"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*FuncType).NumMethod"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*FuncType).Pointers"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*FuncType).Size"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/abi.(*FuncType).String"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).StructType"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*FuncType).Uncommon"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*FuncType).Variadic"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*Method).Exported"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/abi.(*Method).Name"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/abi.(*Method).PkgPath"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/abi.(*ArrayType).ExportedMethods"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*ArrayType).FieldAlign"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).FuncType"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*ArrayType).HasName"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IfaceIndir"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).InterfaceType"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IsClosure"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*ArrayType).IsDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Key"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Kind"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).MapType"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*ArrayType).NumMethod"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Pointers"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Size"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/abi.(*ArrayType).String"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).StructType"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*ArrayType).Uncommon"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*Type).ArrayType"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*Type).ChanDir"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Common"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Elem"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/abi.(*Type).ExportedMethods"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*Type).FieldAlign"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*Type).FuncType"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*Type).HasName"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*Type).IfaceIndir"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*Type).InterfaceType"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*Type).IsClosure"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*Type).IsDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Key"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*Type).Kind"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*Type).Len"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*Type).MapType"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*Type).NumMethod"(ptr) + +declare i1 @"github.com/goplus/llgo/runtime/abi.(*Type).Pointers"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*Type).Size"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/abi.(*Type).String"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*Type).StructType"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Uncommon"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testrt/alloca/in.go b/compiler/cl/_testrt/alloca/in.go similarity index 100% rename from cl/_testrt/alloca/in.go rename to compiler/cl/_testrt/alloca/in.go diff --git a/cl/_testrt/alloca/out.ll b/compiler/cl/_testrt/alloca/out.ll similarity index 87% rename from cl/_testrt/alloca/out.ll rename to compiler/cl/_testrt/alloca/out.ll index 0029dbad..b467901a 100644 --- a/cl/_testrt/alloca/out.ll +++ b/compiler/cl/_testrt/alloca/out.ll @@ -24,7 +24,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = alloca i8, i64 4, align 1 %3 = call ptr @memcpy(ptr %2, ptr @0, i64 4) @@ -32,7 +32,7 @@ _llgo_0: ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare ptr @memcpy(ptr, ptr, i64) diff --git a/cl/_testrt/allocstr/in.go b/compiler/cl/_testrt/allocstr/in.go similarity index 100% rename from cl/_testrt/allocstr/in.go rename to compiler/cl/_testrt/allocstr/in.go diff --git a/cl/_testrt/allocstr/out.ll b/compiler/cl/_testrt/allocstr/out.ll similarity index 52% rename from cl/_testrt/allocstr/out.ll rename to compiler/cl/_testrt/allocstr/out.ll index 2f826480..a25fa814 100644 --- a/cl/_testrt/allocstr/out.ll +++ b/compiler/cl/_testrt/allocstr/out.ll @@ -1,16 +1,16 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } @"main.init$guard" = global i1 false, align 1 @0 = private unnamed_addr constant [12 x i8] c"Hello world\0A", align 1 @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 -define %"github.com/goplus/llgo/internal/runtime.String" @main.hello() { +define %"github.com/goplus/llgo/runtime/internal/runtime.String" @main.hello() { _llgo_0: - ret %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 12 } + ret %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 12 } } define void @main.init() { @@ -30,19 +30,19 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - %2 = call %"github.com/goplus/llgo/internal/runtime.String" @main.hello() - %3 = extractvalue %"github.com/goplus/llgo/internal/runtime.String" %2, 1 + %2 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @main.hello() + %3 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %2, 1 %4 = add i64 %3, 1 %5 = alloca i8, i64 %4, align 1 - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.CStrCopy"(ptr %5, %"github.com/goplus/llgo/internal/runtime.String" %2) + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.CStrCopy"(ptr %5, %"github.com/goplus/llgo/runtime/internal/runtime.String" %2) %7 = call i32 (ptr, ...) @printf(ptr %6) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare ptr @"github.com/goplus/llgo/internal/runtime.CStrCopy"(ptr, %"github.com/goplus/llgo/internal/runtime.String") +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.CStrCopy"(ptr, %"github.com/goplus/llgo/runtime/internal/runtime.String") declare i32 @printf(ptr, ...) diff --git a/cl/_testrt/any/in.go b/compiler/cl/_testrt/any/in.go similarity index 100% rename from cl/_testrt/any/in.go rename to compiler/cl/_testrt/any/in.go diff --git a/cl/_testrt/any/out.ll b/compiler/cl/_testrt/any/out.ll similarity index 51% rename from cl/_testrt/any/out.ll rename to compiler/cl/_testrt/any/out.ll index a5ce7675..4fde564d 100644 --- a/cl/_testrt/any/out.ll +++ b/compiler/cl/_testrt/any/out.ll @@ -1,8 +1,8 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } @"main.init$guard" = global i1 false, align 1 @_llgo_int8 = linkonce global ptr null, align 8 @@ -15,48 +15,48 @@ source_filename = "main" @1 = private unnamed_addr constant [7 x i8] c"%s %d\0A\00", align 1 @2 = private unnamed_addr constant [6 x i8] c"Hello\00", align 1 -define ptr @main.hi(%"github.com/goplus/llgo/internal/runtime.eface" %0) { +define ptr @main.hi(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %0) { _llgo_0: - %1 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %1 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %2 = load ptr, ptr @_llgo_int8, align 8 %3 = load ptr, ptr @"*_llgo_int8", align 8 %4 = icmp eq ptr %1, %3 br i1 %4, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %5 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %5 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 ret ptr %5 _llgo_2: ; preds = %_llgo_0 %6 = load ptr, ptr @_llgo_string, align 8 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 21 }, ptr %7, align 8 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %6, 0 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %8, ptr %7, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %9) + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 21 }, ptr %7, align 8 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %6, 0 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %8, ptr %7, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %9) unreachable } -define i64 @main.incVal(%"github.com/goplus/llgo/internal/runtime.eface" %0) { +define i64 @main.incVal(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %0) { _llgo_0: - %1 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %1 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %2 = load ptr, ptr @_llgo_int, align 8 %3 = icmp eq ptr %1, %2 br i1 %3, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %4 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %5 = ptrtoint ptr %4 to i64 %6 = add i64 %5, 1 ret i64 %6 _llgo_2: ; preds = %_llgo_0 %7 = load ptr, ptr @_llgo_string, align 8 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 21 }, ptr %8, align 8 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %7, 0 - %10 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %9, ptr %8, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %10) + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 21 }, ptr %8, align 8 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %7, 0 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %9, ptr %8, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %10) unreachable } @@ -78,16 +78,16 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = load ptr, ptr @"*_llgo_int8", align 8 - %3 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %2, 0 - %4 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %3, ptr @2, 1 - %5 = call ptr @main.hi(%"github.com/goplus/llgo/internal/runtime.eface" %4) + %3 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %2, 0 + %4 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %3, ptr @2, 1 + %5 = call ptr @main.hi(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %4) %6 = load ptr, ptr @_llgo_int, align 8 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %6, 0 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %7, ptr inttoptr (i64 100 to ptr), 1 - %9 = call i64 @main.incVal(%"github.com/goplus/llgo/internal/runtime.eface" %8) + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %6, 0 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %7, ptr inttoptr (i64 100 to ptr), 1 + %9 = call i64 @main.incVal(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %8) %10 = call i32 (ptr, ...) @printf(ptr @1, ptr %5, i64 %9) ret i32 0 } @@ -99,7 +99,7 @@ _llgo_0: br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 35) store ptr %2, ptr @_llgo_int8, align 8 br label %_llgo_2 @@ -109,9 +109,9 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 br i1 %4, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 35) - %6 = call ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr %5) - call void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr %6) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 35) + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %5) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %6) store ptr %6, ptr @"*_llgo_int8", align 8 br label %_llgo_4 @@ -121,7 +121,7 @@ _llgo_4: ; preds = %_llgo_3, %_llgo_2 br i1 %8, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %9 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) store ptr %9, ptr @_llgo_string, align 8 br label %_llgo_6 @@ -131,7 +131,7 @@ _llgo_6: ; preds = %_llgo_5, %_llgo_4 br i1 %11, label %_llgo_7, label %_llgo_8 _llgo_7: ; preds = %_llgo_6 - %12 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 34) + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) store ptr %12, ptr @_llgo_int, align 8 br label %_llgo_8 @@ -139,16 +139,16 @@ _llgo_8: ; preds = %_llgo_7, %_llgo_6 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) -declare ptr @"github.com/goplus/llgo/internal/runtime.PointerTo"(ptr) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr) -declare void @"github.com/goplus/llgo/internal/runtime.SetDirectIface"(ptr) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare i32 @printf(ptr, ...) diff --git a/cl/_testrt/builtin/in.go b/compiler/cl/_testrt/builtin/in.go similarity index 100% rename from cl/_testrt/builtin/in.go rename to compiler/cl/_testrt/builtin/in.go diff --git a/compiler/cl/_testrt/builtin/out.ll b/compiler/cl/_testrt/builtin/out.ll new file mode 100644 index 00000000..3a19e73f --- /dev/null +++ b/compiler/cl/_testrt/builtin/out.ll @@ -0,0 +1,523 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } + +@main.a = global i64 0, align 8 +@main.b = global i64 0, align 8 +@"main.init$guard" = global i1 false, align 1 +@main.n = global i64 0, align 8 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [5 x i8] c"hello", align 1 +@1 = private unnamed_addr constant [3 x i8] c"def", align 1 +@_llgo_int = linkonce global ptr null, align 8 +@2 = private unnamed_addr constant [4 x i8] c"ABCD", align 1 +@3 = private unnamed_addr constant [7 x i8] c"\E4\B8\ADabcd", align 1 +@4 = private unnamed_addr constant [3 x i8] c"abc", align 1 +@5 = private unnamed_addr constant [3 x i8] c"abd", align 1 +@6 = private unnamed_addr constant [2 x i8] c"fn", align 1 + +define double @main.Float64frombits(i64 %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + store i64 %0, ptr %1, align 4 + %2 = load double, ptr %1, align 8 + ret double %2 +} + +define double @main.Inf(i64 %0) { +_llgo_0: + %1 = icmp sge i64 %0, 0 + br i1 %1, label %_llgo_1, label %_llgo_3 + +_llgo_1: ; preds = %_llgo_0 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_3, %_llgo_1 + %2 = phi i64 [ 9218868437227405312, %_llgo_1 ], [ -4503599627370496, %_llgo_3 ] + %3 = call double @main.Float64frombits(i64 %2) + ret double %3 + +_llgo_3: ; preds = %_llgo_0 + br label %_llgo_2 +} + +define i1 @main.IsNaN(double %0) { +_llgo_0: + %1 = fcmp une double %0, %0 + ret i1 %1 +} + +define double @main.NaN() { +_llgo_0: + %0 = call double @main.Float64frombits(i64 9221120237041090561) + ret double %0 +} + +define void @main.demo() { +_llgo_0: + ret void +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + store i64 9223372036854775807, ptr @main.a, align 4 + store i64 -9223372036854775808, ptr @main.b, align 4 + store i64 -1, ptr @main.n, align 4 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) + %3 = getelementptr inbounds i64, ptr %2, i64 0 + store i64 1, ptr %3, align 4 + %4 = getelementptr inbounds i64, ptr %2, i64 1 + store i64 2, ptr %4, align 4 + %5 = getelementptr inbounds i64, ptr %2, i64 2 + store i64 3, ptr %5, align 4 + %6 = getelementptr inbounds i64, ptr %2, i64 3 + store i64 4, ptr %6, align 4 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %2, 0 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %7, i64 4, 1 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %8, i64 4, 2 + %10 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) + %11 = getelementptr inbounds i64, ptr %10, i64 0 + %12 = getelementptr inbounds i64, ptr %10, i64 1 + %13 = getelementptr inbounds i64, ptr %10, i64 2 + %14 = getelementptr inbounds i64, ptr %10, i64 3 + store i64 1, ptr %11, align 4 + store i64 2, ptr %12, align 4 + store i64 3, ptr %13, align 4 + store i64 4, ptr %14, align 4 + %15 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 10) + %16 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %15, i64 1, i64 10, i64 0, i64 4, i64 10) + %17 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 1 + %18 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %17) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %18) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %19 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, 1 + %20 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %19) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %20) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %21 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) + %22 = getelementptr inbounds i64, ptr %21, i64 0 + store i64 1, ptr %22, align 4 + %23 = getelementptr inbounds i64, ptr %21, i64 1 + store i64 2, ptr %23, align 4 + %24 = getelementptr inbounds i64, ptr %21, i64 2 + store i64 3, ptr %24, align 4 + %25 = getelementptr inbounds i64, ptr %21, i64 3 + store i64 4, ptr %25, align 4 + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %21, 0 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %26, i64 4, 1 + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %27, i64 4, 2 + %29 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %28, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %29) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %30 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 2 + %31 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 1 + %32 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 0 + %33 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %32, i64 8, i64 %30, i64 1, i64 %31, i64 %30) + %34 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %33, 1 + %35 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 2 + %36 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 1 + %37 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 0 + %38 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %37, i64 8, i64 %35, i64 1, i64 %36, i64 %35) + %39 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %38, 2 + %40 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 2 + %41 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 0 + %42 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %41, i64 8, i64 %40, i64 1, i64 2, i64 %40) + %43 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %42, 1 + %44 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 2 + %45 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 0 + %46 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %45, i64 8, i64 %44, i64 1, i64 2, i64 %44) + %47 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %46, 2 + %48 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 2 + %49 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 0 + %50 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %49, i64 8, i64 %48, i64 1, i64 2, i64 2) + %51 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %50, 1 + %52 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 2 + %53 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 0 + %54 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %53, i64 8, i64 %52, i64 1, i64 2, i64 2) + %55 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %54, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %34) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %39) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %43) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %47) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %51) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %55) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %56 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 4, i64 4) + %57 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %56, 1 + %58 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 4, i64 4) + %59 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %58, 2 + %60 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 2, i64 4) + %61 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, 1 + %62 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 2, i64 4) + %63 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %62, 2 + %64 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 2, i64 2) + %65 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %64, 1 + %66 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %10, i64 8, i64 4, i64 1, i64 2, i64 2) + %67 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %66, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %57) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %59) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %61) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %63) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %65) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %67) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %68 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, i64 1, i64 5) + %69 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, i64 1, i64 2) + %70 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, i64 5, i64 5) + %71 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %70, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %68) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %69) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %71) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %72 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) + %73 = getelementptr inbounds i64, ptr %72, i64 0 + store i64 5, ptr %73, align 4 + %74 = getelementptr inbounds i64, ptr %72, i64 1 + store i64 6, ptr %74, align 4 + %75 = getelementptr inbounds i64, ptr %72, i64 2 + store i64 7, ptr %75, align 4 + %76 = getelementptr inbounds i64, ptr %72, i64 3 + store i64 8, ptr %76, align 4 + %77 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %72, 0 + %78 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %77, i64 4, 1 + %79 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %78, i64 4, 2 + %80 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %79, 0 + %81 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %79, 1 + %82 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, ptr %80, i64 %81, i64 8) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %82) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %83 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 3) + %84 = getelementptr inbounds i8, ptr %83, i64 0 + store i8 97, ptr %84, align 1 + %85 = getelementptr inbounds i8, ptr %83, i64 1 + store i8 98, ptr %85, align 1 + %86 = getelementptr inbounds i8, ptr %83, i64 2 + store i8 99, ptr %86, align 1 + %87 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %83, 0 + %88 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %87, i64 3, 1 + %89 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %88, i64 3, 2 + %90 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %89, ptr @1, i64 3, i64 1) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %90) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %91 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + %92 = load ptr, ptr @_llgo_int, align 8 + %93 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %92, 0 + %94 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %93, ptr inttoptr (i64 100 to ptr), 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %94, ptr %91, align 8 + %95 = load %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %91, align 8 + %96 = ptrtoint ptr %91 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 true) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 0) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 100) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 -100) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 255) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 -100) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double 0.000000e+00) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double 1.005000e+02) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintEface"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %95) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %91) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %96) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %97 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 3) + %98 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %99 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %97, 0 + %100 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %99, i64 3, 1 + %101 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %100, i64 3, 2 + %102 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %90, 0 + %103 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %90, 1 + %104 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.SliceCopy"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %101, ptr %102, i64 %103, i64 1) + store i64 %104, ptr %98, align 4 + %105 = load i64, ptr %98, align 4 + %106 = getelementptr inbounds i8, ptr %97, i64 0 + %107 = load i8, ptr %106, align 1 + %108 = getelementptr inbounds i8, ptr %97, i64 1 + %109 = load i8, ptr %108, align 1 + %110 = getelementptr inbounds i8, ptr %97, i64 2 + %111 = load i8, ptr %110, align 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %105) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %112 = zext i8 %107 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %112) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %113 = zext i8 %109 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %113) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %114 = zext i8 %111 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %114) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %115 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr %97, i64 1, i64 3, i64 1, i64 3, i64 3) + %116 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.SliceCopy"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %115, ptr @2, i64 4, i64 1) + store i64 %116, ptr %98, align 4 + %117 = load i64, ptr %98, align 4 + %118 = getelementptr inbounds i8, ptr %97, i64 0 + %119 = load i8, ptr %118, align 1 + %120 = getelementptr inbounds i8, ptr %97, i64 1 + %121 = load i8, ptr %120, align 1 + %122 = getelementptr inbounds i8, ptr %97, i64 2 + %123 = load i8, ptr %122, align 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %117) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %124 = zext i8 %119 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %124) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %125 = zext i8 %121 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %125) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %126 = zext i8 %123 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %126) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %127 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %128 = getelementptr inbounds { ptr }, ptr %127, i32 0, i32 0 + store ptr %98, ptr %128, align 8 + %129 = insertvalue { ptr, ptr } { ptr @"main.main$2", ptr undef }, ptr %127, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr @main.demo) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr @main.demo) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr @"main.main$1") + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %130 = extractvalue { ptr, ptr } %129, 0 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %130) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %131 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewStringIter"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 7 }) + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_2, %_llgo_0 + %132 = call { i1, i64, i32 } @"github.com/goplus/llgo/runtime/internal/runtime.StringIterNext"(ptr %131) + %133 = extractvalue { i1, i64, i32 } %132, 0 + br i1 %133, label %_llgo_2, label %_llgo_3 + +_llgo_2: ; preds = %_llgo_1 + %134 = extractvalue { i1, i64, i32 } %132, 1 + %135 = extractvalue { i1, i64, i32 } %132, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %134) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %136 = sext i32 %135 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %136) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_3: ; preds = %_llgo_1 + %137 = call double @main.Inf(i64 1) + %138 = call double @main.Inf(i64 -1) + %139 = call double @main.NaN() + %140 = call double @main.NaN() + %141 = call i1 @main.IsNaN(double %140) + %142 = call i1 @main.IsNaN(double 1.000000e+00) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %137) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %138) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double %139) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %141) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %142) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %143 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 7 }) + %144 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToRunes"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 7 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %143) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %144) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %145 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %143) + %146 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromRunes"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %144) + %147 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %143, 0 + %148 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %143, 1 + %149 = icmp sge i64 3, %148 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %149) + %150 = getelementptr inbounds i8, ptr %147, i64 3 + %151 = load i8, ptr %150, align 1 + %152 = sext i8 %151 to i32 + %153 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromRune"(i32 %152) + %154 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %144, 0 + %155 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %144, 1 + %156 = icmp sge i64 0, %155 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %156) + %157 = getelementptr inbounds i32, ptr %154, i64 0 + %158 = load i32, ptr %157, align 4 + %159 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromRune"(i32 %158) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %145) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %146) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %153) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %159) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %160 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 3 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 3 }) + %161 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 3 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 3 }) + %162 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 3 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 3 }) + %163 = xor i1 %162, true + %164 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringLess"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 3 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 3 }) + %165 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringLess"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 3 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 3 }) + %166 = xor i1 %165, true + %167 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringLess"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 3 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 3 }) + %168 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringLess"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 3 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 3 }) + %169 = xor i1 %168, true + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %160) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %161) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %163) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %164) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %166) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %167) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %169) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +define void @"main.main$1"() { +_llgo_0: + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 2 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define void @"main.main$2"(ptr %0) { +_llgo_0: + %1 = load { ptr }, ptr %0, align 8 + %2 = extractvalue { ptr } %1, 0 + %3 = load i64, ptr %2, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.NewSlice3"(ptr, i64, i64, i64, i64, i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.SliceAppend"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr, i64, i64) + +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_int, align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %2, ptr @_llgo_int, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintEface"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/internal/runtime.SliceCopy"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr, i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewStringIter"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare { i1, i64, i32 } @"github.com/goplus/llgo/runtime/internal/runtime.StringIterNext"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.StringToRunes"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromBytes"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromRunes"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromRune"(i32) + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringLess"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String") diff --git a/cl/_testrt/callback/in.go b/compiler/cl/_testrt/callback/in.go similarity index 100% rename from cl/_testrt/callback/in.go rename to compiler/cl/_testrt/callback/in.go diff --git a/cl/_testrt/callback/out.ll b/compiler/cl/_testrt/callback/out.ll similarity index 91% rename from cl/_testrt/callback/out.ll rename to compiler/cl/_testrt/callback/out.ll index 1ced55d7..0838679f 100644 --- a/cl/_testrt/callback/out.ll +++ b/compiler/cl/_testrt/callback/out.ll @@ -32,7 +32,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() call void @main.callback(ptr @0, { ptr, ptr } { ptr @__llgo_stub.main.print, ptr null }) call void @main.callback(ptr @1, { ptr, ptr } { ptr @__llgo_stub.main.print, ptr null }) @@ -45,7 +45,7 @@ _llgo_0: ret void } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() define linkonce void @__llgo_stub.main.print(ptr %0, ptr %1) { _llgo_0: diff --git a/cl/_testrt/cast/in.go b/compiler/cl/_testrt/cast/in.go similarity index 100% rename from cl/_testrt/cast/in.go rename to compiler/cl/_testrt/cast/in.go diff --git a/cl/_testrt/cast/out.ll b/compiler/cl/_testrt/cast/out.ll similarity index 56% rename from cl/_testrt/cast/out.ll rename to compiler/cl/_testrt/cast/out.ll index b6575ed9..e8ae001f 100644 --- a/cl/_testrt/cast/out.ll +++ b/compiler/cl/_testrt/cast/out.ll @@ -1,8 +1,8 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } @"main.init$guard" = global i1 false, align 1 @0 = private unnamed_addr constant [5 x i8] c"error", align 1 @@ -18,11 +18,11 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) unreachable _llgo_2: ; preds = %_llgo_0 @@ -37,11 +37,11 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) unreachable _llgo_2: ; preds = %_llgo_0 @@ -56,11 +56,11 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) unreachable _llgo_2: ; preds = %_llgo_0 @@ -75,11 +75,11 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) unreachable _llgo_2: ; preds = %_llgo_0 @@ -94,11 +94,11 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) unreachable _llgo_2: ; preds = %_llgo_0 @@ -113,11 +113,11 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) unreachable _llgo_2: ; preds = %_llgo_0 @@ -132,11 +132,11 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) unreachable _llgo_2: ; preds = %_llgo_0 @@ -151,11 +151,11 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) unreachable _llgo_2: ; preds = %_llgo_0 @@ -170,11 +170,11 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) unreachable _llgo_2: ; preds = %_llgo_0 @@ -189,11 +189,11 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) unreachable _llgo_2: ; preds = %_llgo_0 @@ -208,11 +208,11 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) unreachable _llgo_2: ; preds = %_llgo_0 @@ -227,11 +227,11 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) unreachable _llgo_2: ; preds = %_llgo_0 @@ -241,11 +241,11 @@ _llgo_2: ; preds = %_llgo_0 _llgo_3: ; preds = %_llgo_2 %10 = load ptr, ptr @_llgo_string, align 8 - %11 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 5 }, ptr %11, align 8 - %12 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %10, 0 - %13 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %12, ptr %11, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %13) + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %11, align 8 + %12 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %10, 0 + %13 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %12, ptr %11, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %13) unreachable _llgo_4: ; preds = %_llgo_2 @@ -270,7 +270,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() call void @main.cvt64to8(i64 0, i8 0) call void @main.cvt64to8(i64 127, i8 127) @@ -334,7 +334,7 @@ _llgo_0: br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) store ptr %2, ptr @_llgo_string, align 8 br label %_llgo_2 @@ -342,10 +342,10 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() diff --git a/compiler/cl/_testrt/clear/in.go b/compiler/cl/_testrt/clear/in.go new file mode 100644 index 00000000..29dc4ae6 --- /dev/null +++ b/compiler/cl/_testrt/clear/in.go @@ -0,0 +1,11 @@ +package clear + +func Clear() { + a := []int{1, 2, 3, 4} + clear(a) + println(a) + + b := map[int]int{1: 1, 2: 2, 3: 3, 4: 4} + clear(b) + println(b) +} diff --git a/compiler/cl/_testrt/clear/out.ll b/compiler/cl/_testrt/clear/out.ll new file mode 100644 index 00000000..9ae1a26b --- /dev/null +++ b/compiler/cl/_testrt/clear/out.ll @@ -0,0 +1,173 @@ +; ModuleID = 'github.com/goplus/llgo/compiler/cl/_testrt/clear' +source_filename = "github.com/goplus/llgo/compiler/cl/_testrt/clear" + +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } + +@"github.com/goplus/llgo/compiler/cl/_testrt/clear.init$guard" = global i1 false, align 1 +@_llgo_int = linkonce global ptr null, align 8 +@"[]_llgo_int" = linkonce global ptr null, align 8 +@"map[_llgo_int]_llgo_int" = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [7 x i8] c"topbits", align 1 +@1 = private unnamed_addr constant [4 x i8] c"keys", align 1 +@2 = private unnamed_addr constant [5 x i8] c"elems", align 1 +@3 = private unnamed_addr constant [8 x i8] c"overflow", align 1 +@4 = private unnamed_addr constant [48 x i8] c"github.com/goplus/llgo/compiler/cl/_testrt/clear", align 1 + +define void @"github.com/goplus/llgo/compiler/cl/_testrt/clear.Clear"() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) + %1 = getelementptr inbounds i64, ptr %0, i64 0 + store i64 1, ptr %1, align 4 + %2 = getelementptr inbounds i64, ptr %0, i64 1 + store i64 2, ptr %2, align 4 + %3 = getelementptr inbounds i64, ptr %0, i64 2 + store i64 3, ptr %3, align 4 + %4 = getelementptr inbounds i64, ptr %0, i64 3 + store i64 4, ptr %4, align 4 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %0, 0 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %5, i64 4, 1 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %6, i64 4, 2 + %8 = load ptr, ptr @_llgo_int, align 8 + %9 = load ptr, ptr @"[]_llgo_int", align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.SliceClear"(ptr %9, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %7) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %7) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %10 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr %10, i64 4) + %12 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + %13 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 1, ptr %13, align 4 + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %12, ptr %11, ptr %13) + store i64 1, ptr %14, align 4 + %15 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 2, ptr %16, align 4 + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %15, ptr %11, ptr %16) + store i64 2, ptr %17, align 4 + %18 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 3, ptr %19, align 4 + %20 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %18, ptr %11, ptr %19) + store i64 3, ptr %20, align 4 + %21 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + %22 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 4, ptr %22, align 4 + %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %21, ptr %11, ptr %22) + store i64 4, ptr %23, align 4 + %24 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.MapClear"(ptr %24, ptr %11) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %11) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define void @"github.com/goplus/llgo/compiler/cl/_testrt/clear.init"() { +_llgo_0: + %0 = load i1, ptr @"github.com/goplus/llgo/compiler/cl/_testrt/clear.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"github.com/goplus/llgo/compiler/cl/_testrt/clear.init$guard", align 1 + call void @"github.com/goplus/llgo/compiler/cl/_testrt/clear.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +define void @"github.com/goplus/llgo/compiler/cl/_testrt/clear.init$after"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_int, align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %2, ptr @_llgo_int, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @"[]_llgo_int", align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %5) + store ptr %6, ptr @"[]_llgo_int", align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %7 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + %8 = icmp eq ptr %7, null + br i1 %8, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %10 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %11) + %13 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 7 }, ptr %12, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %15 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %14) + %16 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, ptr %15, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %18 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %17) + %19 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 5 }, ptr %18, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %20 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %21 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 8 }, ptr %20, i64 136, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %22 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %23 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %22, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %13, ptr %23, align 8 + %24 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %22, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %16, ptr %24, align 8 + %25 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %22, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %19, ptr %25, align 8 + %26 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %22, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %21, ptr %26, align 8 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %22, 0 + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %27, i64 4, 1 + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %28, i64 4, 2 + %30 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 48 }, i64 144, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %29) + %31 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr %9, ptr %10, ptr %30, i64 4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %31) + store ptr %31, ptr @"map[_llgo_int]_llgo_int", align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SliceClear"(ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintSlice"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr, ptr, ptr, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr, ptr, ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.MapClear"(ptr, ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr) diff --git a/cl/_testrt/closure/in.go b/compiler/cl/_testrt/closure/in.go similarity index 100% rename from cl/_testrt/closure/in.go rename to compiler/cl/_testrt/closure/in.go diff --git a/cl/_testrt/closure/out.ll b/compiler/cl/_testrt/closure/out.ll similarity index 81% rename from cl/_testrt/closure/out.ll rename to compiler/cl/_testrt/closure/out.ll index 47e24276..ca7a5630 100644 --- a/cl/_testrt/closure/out.ll +++ b/compiler/cl/_testrt/closure/out.ll @@ -24,12 +24,12 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() call void @"main.main$1"(i64 100, i64 200) - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) store { ptr, ptr } { ptr @"__llgo_stub.main.main$2", ptr null }, ptr %2, align 8 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %4 = getelementptr inbounds { ptr }, ptr %3, i32 0, i32 0 store ptr %2, ptr %4, align 8 %5 = insertvalue { ptr, ptr } { ptr @"main.main$3", ptr undef }, ptr %3, 1 @@ -62,9 +62,9 @@ _llgo_0: ret void } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) define linkonce void @"__llgo_stub.main.main$2"(ptr %0, i64 %1, i64 %2) { _llgo_0: @@ -72,6 +72,6 @@ _llgo_0: ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) declare i32 @printf(ptr, ...) diff --git a/cl/_testrt/closureconv/in.go b/compiler/cl/_testrt/closureconv/in.go similarity index 100% rename from cl/_testrt/closureconv/in.go rename to compiler/cl/_testrt/closureconv/in.go diff --git a/cl/_testrt/closureconv/out.ll b/compiler/cl/_testrt/closureconv/out.ll similarity index 69% rename from cl/_testrt/closureconv/out.ll rename to compiler/cl/_testrt/closureconv/out.ll index 86fc07ff..90b316cb 100644 --- a/cl/_testrt/closureconv/out.ll +++ b/compiler/cl/_testrt/closureconv/out.ll @@ -25,10 +25,10 @@ _llgo_0: define %main.Func @main.demo1(i64 %0) { _llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) %2 = getelementptr inbounds %main.Call, ptr %1, i32 0, i32 1 store i64 %0, ptr %2, align 4 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %4 = getelementptr inbounds { ptr }, ptr %3, i32 0, i32 0 store ptr %1, ptr %4, align 8 %5 = insertvalue { ptr, ptr } { ptr @"main.add$bound", ptr undef }, ptr %3, 1 @@ -44,8 +44,8 @@ _llgo_0: define %main.Func @main.demo2() { _llgo_0: - %0 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 24) - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %2 = getelementptr inbounds { ptr }, ptr %1, i32 0, i32 0 store ptr %0, ptr %2, align 8 %3 = insertvalue { ptr, ptr } { ptr @"main.add$bound", ptr undef }, ptr %1, 1 @@ -73,9 +73,9 @@ _llgo_0: define %main.Func @main.demo5(i64 %0) { _llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) store i64 %0, ptr %1, align 4 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %3 = getelementptr inbounds { ptr }, ptr %2, i32 0, i32 0 store ptr %1, ptr %3, align 8 %4 = insertvalue { ptr, ptr } { ptr @"main.demo5$1", ptr undef }, ptr %2, 1 @@ -112,38 +112,38 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call %main.Func @main.demo1(i64 1) %3 = extractvalue %main.Func %2, 1 %4 = extractvalue %main.Func %2, 0 %5 = call i64 %4(ptr %3, i64 99, i64 200) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %5) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %5) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %6 = call %main.Func @main.demo2() %7 = extractvalue %main.Func %6, 1 %8 = extractvalue %main.Func %6, 0 %9 = call i64 %8(ptr %7, i64 100, i64 200) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %9) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %9) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %10 = call %main.Func @main.demo3() %11 = extractvalue %main.Func %10, 1 %12 = extractvalue %main.Func %10, 0 %13 = call i64 %12(ptr %11, i64 100, i64 200) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %13) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %13) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %14 = call %main.Func @main.demo4() %15 = extractvalue %main.Func %14, 1 %16 = extractvalue %main.Func %14, 0 %17 = call i64 %16(ptr %15, i64 100, i64 200) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %17) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %17) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %18 = call %main.Func @main.demo5(i64 1) %19 = extractvalue %main.Func %18, 1 %20 = extractvalue %main.Func %18, 0 %21 = call i64 %20(ptr %19, i64 99, i64 200) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %21) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %21) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %22 = call %main.Func @main.demo5(i64 1) %23 = alloca { ptr, ptr }, align 8 store %main.Func %22, ptr %23, align 8 @@ -151,18 +151,18 @@ _llgo_0: %25 = extractvalue { ptr, ptr } %24, 1 %26 = extractvalue { ptr, ptr } %24, 0 %27 = call i64 %26(ptr %25, i64 99, i64 200) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %27) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %27) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %28 = call %main.Func @main.demo5(i64 1) %29 = extractvalue %main.Func %28, 1 %30 = extractvalue %main.Func %28, 0 %31 = call i64 %30(ptr %29, i64 99, i64 200) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %31) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %31) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) ret i32 0 } -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) define i64 @"main.add$bound"(ptr %0, i64 %1, i64 %2) { _llgo_0: @@ -172,7 +172,7 @@ _llgo_0: ret i64 %5 } -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) define linkonce i64 @__llgo_stub.main.add(ptr %0, i64 %1, i64 %2) { _llgo_0: @@ -186,8 +186,8 @@ _llgo_0: ret i64 %3 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) diff --git a/cl/_testrt/closureiface/in.go b/compiler/cl/_testrt/closureiface/in.go similarity index 100% rename from cl/_testrt/closureiface/in.go rename to compiler/cl/_testrt/closureiface/in.go diff --git a/compiler/cl/_testrt/closureiface/out.ll b/compiler/cl/_testrt/closureiface/out.ll new file mode 100644 index 00000000..bfcfb478 --- /dev/null +++ b/compiler/cl/_testrt/closureiface/out.ll @@ -0,0 +1,213 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@_llgo_int = linkonce global ptr null, align 8 +@"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU" = linkonce global ptr null, align 8 +@_llgo_Pointer = linkonce global ptr null, align 8 +@"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk" = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [2 x i8] c"$f", align 1 +@1 = private unnamed_addr constant [5 x i8] c"$data", align 1 +@2 = private unnamed_addr constant [4 x i8] c"main", align 1 +@3 = private unnamed_addr constant [5 x i8] c"error", align 1 +@_llgo_string = linkonce global ptr null, align 8 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + store i64 200, ptr %2, align 4 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %4 = getelementptr inbounds { ptr }, ptr %3, i32 0, i32 0 + store ptr %2, ptr %4, align 8 + %5 = insertvalue { ptr, ptr } { ptr @"main.main$1", ptr undef }, ptr %3, 1 + %6 = load ptr, ptr @_llgo_int, align 8 + %7 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 + %8 = load ptr, ptr @_llgo_Pointer, align 8 + %9 = load ptr, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 + %10 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store { ptr, ptr } %5, ptr %10, align 8 + %11 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %9, 0 + %12 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %11, ptr %10, 1 + %13 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %12, 0 + %14 = load ptr, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 + %15 = icmp eq ptr %13, %14 + br i1 %15, label %_llgo_3, label %_llgo_4 + +_llgo_1: ; preds = %_llgo_5 + %16 = load ptr, ptr @_llgo_string, align 8 + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 5 }, ptr %17, align 8 + %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %16, 0 + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %18, ptr %17, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %19) + unreachable + +_llgo_2: ; preds = %_llgo_5 + %20 = extractvalue { ptr, ptr } %28, 1 + %21 = extractvalue { ptr, ptr } %28, 0 + %22 = call i64 %21(ptr %20, i64 100) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %22) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 + +_llgo_3: ; preds = %_llgo_0 + %23 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %12, 1 + %24 = load { ptr, ptr }, ptr %23, align 8 + %25 = insertvalue { { ptr, ptr }, i1 } undef, { ptr, ptr } %24, 0 + %26 = insertvalue { { ptr, ptr }, i1 } %25, i1 true, 1 + br label %_llgo_5 + +_llgo_4: ; preds = %_llgo_0 + br label %_llgo_5 + +_llgo_5: ; preds = %_llgo_4, %_llgo_3 + %27 = phi { { ptr, ptr }, i1 } [ %26, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] + %28 = extractvalue { { ptr, ptr }, i1 } %27, 0 + %29 = extractvalue { { ptr, ptr }, i1 } %27, 1 + br i1 %29, label %_llgo_2, label %_llgo_1 +} + +define i64 @"main.main$1"(ptr %0, i64 %1) { +_llgo_0: + %2 = load { ptr }, ptr %0, align 8 + %3 = extractvalue { ptr } %2, 0 + %4 = load i64, ptr %3, align 4 + %5 = add i64 %4, %1 + ret i64 %5 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_int, align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %2, ptr @_llgo_int, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @_llgo_int, align 8 + %4 = load ptr, ptr @_llgo_int, align 8 + %5 = load ptr, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 + %6 = icmp eq ptr %5, null + br i1 %6, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %8 = getelementptr ptr, ptr %7, i64 0 + store ptr %3, ptr %8, align 8 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %7, 0 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, i64 1, 1 + %11 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %10, i64 1, 2 + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %13 = getelementptr ptr, ptr %12, i64 0 + store ptr %4, ptr %13, align 8 + %14 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %12, 0 + %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %14, i64 1, 1 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %15, i64 1, 2 + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %11, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %17) + store ptr %17, ptr @"_llgo_func$ekGNsrYBSzltfAjxbl6T8H6Yq8j16wzqS3nDj2xxGMU", align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %18 = load ptr, ptr @_llgo_Pointer, align 8 + %19 = icmp eq ptr %18, null + br i1 %19, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %20 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %20) + store ptr %20, ptr @_llgo_Pointer, align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %21 = load ptr, ptr @_llgo_int, align 8 + %22 = load ptr, ptr @_llgo_int, align 8 + %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %24 = getelementptr ptr, ptr %23, i64 0 + store ptr %21, ptr %24, align 8 + %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %23, 0 + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25, i64 1, 1 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %26, i64 1, 2 + %28 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %29 = getelementptr ptr, ptr %28, i64 0 + store ptr %22, ptr %29, align 8 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %28, 0 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30, i64 1, 1 + %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %31, i64 1, 2 + %33 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %27, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32, i1 false) + %34 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 2 }, ptr %33, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %36 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 5 }, ptr %35, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %37 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %38 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %37, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %34, ptr %38, align 8 + %39 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %37, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %36, ptr %39, align 8 + %40 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %37, 0 + %41 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %40, i64 2, 1 + %42 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %41, i64 2, 2 + %43 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %42) + store ptr %43, ptr @"main.struct$QIHBTaw1IFobr8yvWpq-2AJFm3xBNhdW_aNBicqUBGk", align 8 + %44 = load ptr, ptr @_llgo_string, align 8 + %45 = icmp eq ptr %44, null + br i1 %45, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %46 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %46, ptr @_llgo_string, align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice", i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") diff --git a/cl/_testrt/complex/in.go b/compiler/cl/_testrt/complex/in.go similarity index 100% rename from cl/_testrt/complex/in.go rename to compiler/cl/_testrt/complex/in.go diff --git a/compiler/cl/_testrt/complex/out.ll b/compiler/cl/_testrt/complex/out.ll new file mode 100644 index 00000000..f2a5d2f8 --- /dev/null +++ b/compiler/cl/_testrt/complex/out.ll @@ -0,0 +1,66 @@ +; ModuleID = 'main' +source_filename = "main" + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double 1.000000e+00) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double 2.000000e+00) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintComplex"({ double, double } { double -1.000000e+00, double -2.000000e+00 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintComplex"({ double, double } { double 4.000000e+00, double 6.000000e+00 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintComplex"({ double, double } { double -2.000000e+00, double -2.000000e+00 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintComplex"({ double, double } { double -5.000000e+00, double 1.000000e+01 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintComplex"({ double, double } { double 4.400000e-01, double -8.000000e-02 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintComplex"({ double, double } { double 0x7FF0000000000000, double 0x7FF0000000000000 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintComplex"({ double, double } { double 0x7FF8000000000000, double 0x7FF8000000000000 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 true) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 true) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 true) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintFloat"(double) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintComplex"({ double, double }) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1) diff --git a/cl/_testrt/concat/in.go b/compiler/cl/_testrt/concat/in.go similarity index 100% rename from cl/_testrt/concat/in.go rename to compiler/cl/_testrt/concat/in.go diff --git a/compiler/cl/_testrt/concat/out.ll b/compiler/cl/_testrt/concat/out.ll new file mode 100644 index 00000000..9885d753 --- /dev/null +++ b/compiler/cl/_testrt/concat/out.ll @@ -0,0 +1,95 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } + +@"main.init$guard" = global i1 false, align 1 +@0 = private unnamed_addr constant [3 x i8] c"...", align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@1 = private unnamed_addr constant [5 x i8] c"Hello", align 1 +@2 = private unnamed_addr constant [1 x i8] c" ", align 1 +@3 = private unnamed_addr constant [5 x i8] c"World", align 1 + +define %"github.com/goplus/llgo/runtime/internal/runtime.String" @main.concat(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0) { +_llgo_0: + %1 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 1 + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_2, %_llgo_0 + %2 = phi %"github.com/goplus/llgo/runtime/internal/runtime.String" [ zeroinitializer, %_llgo_0 ], [ %13, %_llgo_2 ] + %3 = phi i64 [ -1, %_llgo_0 ], [ %4, %_llgo_2 ] + %4 = add i64 %3, 1 + %5 = icmp slt i64 %4, %1 + br i1 %5, label %_llgo_2, label %_llgo_3 + +_llgo_2: ; preds = %_llgo_1 + %6 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 0 + %7 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 1 + %8 = icmp slt i64 %4, 0 + %9 = icmp sge i64 %4, %7 + %10 = or i1 %9, %8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %10) + %11 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %6, i64 %4 + %12 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %11, align 8 + %13 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringCat"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %2, %"github.com/goplus/llgo/runtime/internal/runtime.String" %12) + br label %_llgo_1 + +_llgo_3: ; preds = %_llgo_1 + ret %"github.com/goplus/llgo/runtime/internal/runtime.String" %2 +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.String" @main.info(%"github.com/goplus/llgo/runtime/internal/runtime.String" %0) { +_llgo_0: + %1 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringCat"(%"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.String" %0) + %2 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringCat"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %1, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 3 }) + ret %"github.com/goplus/llgo/runtime/internal/runtime.String" %2 +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 48) + %3 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %2, i64 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 5 }, ptr %3, align 8 + %4 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %2, i64 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 1 }, ptr %4, align 8 + %5 = getelementptr inbounds %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %2, i64 2 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 5 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %2, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %6, i64 3, 1 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %7, i64 3, 2 + %9 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @main.concat(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %8) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %9) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringCat"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) diff --git a/cl/_testrt/constuptr/in.go b/compiler/cl/_testrt/constuptr/in.go similarity index 100% rename from cl/_testrt/constuptr/in.go rename to compiler/cl/_testrt/constuptr/in.go diff --git a/compiler/cl/_testrt/constuptr/out.ll b/compiler/cl/_testrt/constuptr/out.ll new file mode 100644 index 00000000..615063b5 --- /dev/null +++ b/compiler/cl/_testrt/constuptr/out.ll @@ -0,0 +1,36 @@ +; ModuleID = 'main' +source_filename = "main" + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr inttoptr (i64 100 to ptr)) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) diff --git a/cl/_testrt/cstr/in.go b/compiler/cl/_testrt/cstr/in.go similarity index 100% rename from cl/_testrt/cstr/in.go rename to compiler/cl/_testrt/cstr/in.go diff --git a/cl/_testrt/cstr/out.ll b/compiler/cl/_testrt/cstr/out.ll similarity index 85% rename from cl/_testrt/cstr/out.ll rename to compiler/cl/_testrt/cstr/out.ll index 7c35b232..ffb971e3 100644 --- a/cl/_testrt/cstr/out.ll +++ b/compiler/cl/_testrt/cstr/out.ll @@ -23,12 +23,12 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() call void (ptr, ...) @printf(ptr @0) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare void @printf(ptr, ...) diff --git a/cl/_testrt/cvar/in.go b/compiler/cl/_testrt/cvar/in.go similarity index 100% rename from cl/_testrt/cvar/in.go rename to compiler/cl/_testrt/cvar/in.go diff --git a/cl/_testrt/cvar/out.ll b/compiler/cl/_testrt/cvar/out.ll similarity index 86% rename from cl/_testrt/cvar/out.ll rename to compiler/cl/_testrt/cvar/out.ll index f603dd10..e6a607c9 100644 --- a/cl/_testrt/cvar/out.ll +++ b/compiler/cl/_testrt/cvar/out.ll @@ -24,11 +24,11 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = load { [16 x i8], [2 x ptr] }, ptr @_bar_x, align 8 %3 = load { [16 x i8] }, ptr @_bar_y, align 1 ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() diff --git a/cl/_testrt/eface/in.go b/compiler/cl/_testrt/eface/in.go similarity index 96% rename from cl/_testrt/eface/in.go rename to compiler/cl/_testrt/eface/in.go index 9e668aa4..08ff0a33 100644 --- a/cl/_testrt/eface/in.go +++ b/compiler/cl/_testrt/eface/in.go @@ -3,7 +3,7 @@ package main import ( "unsafe" - "github.com/goplus/llgo/internal/abi" + "github.com/goplus/llgo/runtime/abi" ) type T string diff --git a/compiler/cl/_testrt/eface/out.ll b/compiler/cl/_testrt/eface/out.ll new file mode 100644 index 00000000..a3787a2d --- /dev/null +++ b/compiler/cl/_testrt/eface/out.ll @@ -0,0 +1,632 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%main.eface = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr } +%"github.com/goplus/llgo/runtime/abi.UncommonType" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", i16, i16, i32 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } +%"github.com/goplus/llgo/runtime/abi.Method" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, ptr, ptr } + +@"main.init$guard" = global i1 false, align 1 +@0 = private unnamed_addr constant [6 x i8] c"invoke", align 1 +@1 = private unnamed_addr constant [7 x i8] c"\09elem: ", align 1 +@2 = private unnamed_addr constant [9 x i8] c"\09uncomm: ", align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@_llgo_bool = linkonce global ptr null, align 8 +@_llgo_int = linkonce global ptr null, align 8 +@_llgo_int8 = linkonce global ptr null, align 8 +@_llgo_int16 = linkonce global ptr null, align 8 +@_llgo_int32 = linkonce global ptr null, align 8 +@_llgo_int64 = linkonce global ptr null, align 8 +@_llgo_uint = linkonce global ptr null, align 8 +@_llgo_uint8 = linkonce global ptr null, align 8 +@_llgo_uint16 = linkonce global ptr null, align 8 +@_llgo_uint32 = linkonce global ptr null, align 8 +@_llgo_uint64 = linkonce global ptr null, align 8 +@_llgo_uintptr = linkonce global ptr null, align 8 +@_llgo_float32 = linkonce global ptr null, align 8 +@_llgo_float64 = linkonce global ptr null, align 8 +@"[10]_llgo_int" = linkonce global ptr null, align 8 +@"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 +@_llgo_Pointer = linkonce global ptr null, align 8 +@"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8" = linkonce global ptr null, align 8 +@3 = private unnamed_addr constant [2 x i8] c"$f", align 1 +@4 = private unnamed_addr constant [5 x i8] c"$data", align 1 +@5 = private unnamed_addr constant [4 x i8] c"main", align 1 +@"*_llgo_int" = linkonce global ptr null, align 8 +@"[]_llgo_int" = linkonce global ptr null, align 8 +@6 = private unnamed_addr constant [5 x i8] c"hello", align 1 +@_llgo_string = linkonce global ptr null, align 8 +@"main.struct$RKbUG45GE4henGMAdmt0Rju0JptyR8NsX7IZLsOI0OM" = linkonce global ptr null, align 8 +@7 = private unnamed_addr constant [1 x i8] c"x", align 1 +@8 = private unnamed_addr constant [1 x i8] c"y", align 1 +@9 = private unnamed_addr constant [1 x i8] c"z", align 1 +@_llgo_main.T = linkonce global ptr null, align 8 +@10 = private unnamed_addr constant [1 x i8] c"T", align 1 +@11 = private unnamed_addr constant [6 x i8] c"Invoke", align 1 + +define void @"main.(*T).Invoke"(ptr %0) { +_llgo_0: + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 6 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, ptr %1, align 8 + %2 = getelementptr inbounds %main.eface, ptr %1, i32 0, i32 0 + %3 = load ptr, ptr %2, align 8 + call void @main.dumpTyp(ptr %3, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer) + ret void +} + +define void @main.dumpTyp(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.String" %1) { +_llgo_0: + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %1) + %2 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/abi.(*Type).String"(ptr %0) + %3 = call i64 @"github.com/goplus/llgo/runtime/abi.(*Type).Kind"(ptr %0) + %4 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %0, i32 0, i32 0 + %5 = load i64, ptr %4, align 4 + %6 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %0, i32 0, i32 1 + %7 = load i64, ptr %6, align 4 + %8 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %0, i32 0, i32 2 + %9 = load i32, ptr %8, align 4 + %10 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %0, i32 0, i32 3 + %11 = load i8, ptr %10, align 1 + %12 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %0, i32 0, i32 4 + %13 = load i8, ptr %12, align 1 + %14 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %0, i32 0, i32 10 + %15 = load ptr, ptr %14, align 8 + %16 = call ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Uncommon"(ptr %0) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %5) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %7) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %17 = zext i32 %9 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %17) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %18 = zext i8 %11 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %18) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %19 = zext i8 %13 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %19) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %15) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %16) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %20 = call ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Elem"(ptr %0) + %21 = icmp ne ptr %20, null + br i1 %21, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %22 = call ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Elem"(ptr %0) + %23 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringCat"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %1, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 7 }) + call void @main.dumpTyp(ptr %22, %"github.com/goplus/llgo/runtime/internal/runtime.String" %23) + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %24 = call ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Uncommon"(ptr %0) + %25 = icmp ne ptr %24, null + br i1 %25, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %26 = call ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Uncommon"(ptr %0) + %27 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringCat"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %1, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 9 }) + call void @main.dumpUncommon(ptr %26, %"github.com/goplus/llgo/runtime/internal/runtime.String" %27) + %28 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %0, i32 0, i32 10 + %29 = load ptr, ptr %28, align 8 + %30 = icmp ne ptr %29, null + br i1 %30, label %_llgo_5, label %_llgo_4 + +_llgo_4: ; preds = %_llgo_5, %_llgo_3, %_llgo_2 + ret void + +_llgo_5: ; preds = %_llgo_3 + %31 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %0, i32 0, i32 10 + %32 = load ptr, ptr %31, align 8 + %33 = call ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Uncommon"(ptr %32) + %34 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringCat"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %1, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 9 }) + call void @main.dumpUncommon(ptr %33, %"github.com/goplus/llgo/runtime/internal/runtime.String" %34) + br label %_llgo_4 +} + +define void @main.dumpUncommon(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.String" %1) { +_llgo_0: + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %1) + %2 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.UncommonType", ptr %0, i32 0, i32 0 + %3 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %2, align 8 + %4 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.UncommonType", ptr %0, i32 0, i32 1 + %5 = load i16, ptr %4, align 2 + %6 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.UncommonType", ptr %0, i32 0, i32 2 + %7 = load i16, ptr %6, align 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %8 = zext i16 %5 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %8) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %9 = zext i16 %7 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %9) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"github.com/goplus/llgo/runtime/abi.init"() + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = load ptr, ptr @_llgo_bool, align 8 + %3 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %2, 0 + %4 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %3, ptr inttoptr (i64 -1 to ptr), 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %4) + %5 = load ptr, ptr @_llgo_int, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %5, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr null, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) + %8 = load ptr, ptr @_llgo_int8, align 8 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %8, 0 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %9, ptr null, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %10) + %11 = load ptr, ptr @_llgo_int16, align 8 + %12 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %11, 0 + %13 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %12, ptr null, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %13) + %14 = load ptr, ptr @_llgo_int32, align 8 + %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %14, 0 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %15, ptr null, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %16) + %17 = load ptr, ptr @_llgo_int64, align 8 + %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %17, 0 + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %18, ptr null, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %19) + %20 = load ptr, ptr @_llgo_uint, align 8 + %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %20, 0 + %22 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %21, ptr null, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %22) + %23 = load ptr, ptr @_llgo_uint8, align 8 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %23, 0 + %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %24, ptr null, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %25) + %26 = load ptr, ptr @_llgo_uint16, align 8 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %26, 0 + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %27, ptr null, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %28) + %29 = load ptr, ptr @_llgo_uint32, align 8 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %29, 0 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %30, ptr null, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %31) + %32 = load ptr, ptr @_llgo_uint64, align 8 + %33 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %32, 0 + %34 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %33, ptr null, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %34) + %35 = load ptr, ptr @_llgo_uintptr, align 8 + %36 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %35, 0 + %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %36, ptr null, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %37) + %38 = load ptr, ptr @_llgo_float32, align 8 + %39 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %38, 0 + %40 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %39, ptr null, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %40) + %41 = load ptr, ptr @_llgo_float64, align 8 + %42 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %41, 0 + %43 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %42, ptr null, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %43) + %44 = load ptr, ptr @"[10]_llgo_int", align 8 + %45 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + store [10 x i64] zeroinitializer, ptr %45, align 4 + %46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %44, 0 + %47 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %46, ptr %45, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %47) + %48 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %49 = load ptr, ptr @_llgo_Pointer, align 8 + %50 = load ptr, ptr @"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8", align 8 + %51 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store { ptr, ptr } { ptr @"__llgo_stub.main.main$1", ptr null }, ptr %51, align 8 + %52 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %50, 0 + %53 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %52, ptr %51, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %53) + %54 = load ptr, ptr @"*_llgo_int", align 8 + %55 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %54, 0 + %56 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %55, ptr null, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %56) + %57 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 0) + %58 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %57, 0 + %59 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %58, i64 0, 1 + %60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %59, i64 0, 2 + %61 = load ptr, ptr @"[]_llgo_int", align 8 + %62 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + store %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, ptr %62, align 8 + %63 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %61, 0 + %64 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %63, ptr %62, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %64) + %65 = load ptr, ptr @_llgo_string, align 8 + %66 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 5 }, ptr %66, align 8 + %67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %65, 0 + %68 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %67, ptr %66, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %68) + %69 = load ptr, ptr @"main.struct$RKbUG45GE4henGMAdmt0Rju0JptyR8NsX7IZLsOI0OM", align 8 + %70 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + store { i8, i64, i64 } zeroinitializer, ptr %70, align 4 + %71 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %69, 0 + %72 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %71, ptr %70, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %72) + %73 = load ptr, ptr @_llgo_main.T, align 8 + %74 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, ptr %74, align 8 + %75 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %73, 0 + %76 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %75, ptr %74, 1 + call void @main.dump(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %76) + ret i32 0 +} + +define void @"main.main$1"() { +_llgo_0: + ret void +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/abi.(*Type).String"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/abi.(*Type).Kind"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Uncommon"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/abi.(*Type).Elem"(ptr) + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringCat"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/abi.init"() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_bool, align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 33) + store ptr %2, ptr @_llgo_bool, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @_llgo_int, align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %5, ptr @_llgo_int, align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %6 = load ptr, ptr @_llgo_int8, align 8 + %7 = icmp eq ptr %6, null + br i1 %7, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 35) + store ptr %8, ptr @_llgo_int8, align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %9 = load ptr, ptr @_llgo_int16, align 8 + %10 = icmp eq ptr %9, null + br i1 %10, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 36) + store ptr %11, ptr @_llgo_int16, align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %12 = load ptr, ptr @_llgo_int32, align 8 + %13 = icmp eq ptr %12, null + br i1 %13, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 37) + store ptr %14, ptr @_llgo_int32, align 8 + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_8 + %15 = load ptr, ptr @_llgo_int64, align 8 + %16 = icmp eq ptr %15, null + br i1 %16, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 38) + store ptr %17, ptr @_llgo_int64, align 8 + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_10 + %18 = load ptr, ptr @_llgo_uint, align 8 + %19 = icmp eq ptr %18, null + br i1 %19, label %_llgo_13, label %_llgo_14 + +_llgo_13: ; preds = %_llgo_12 + %20 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 39) + store ptr %20, ptr @_llgo_uint, align 8 + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_12 + %21 = load ptr, ptr @_llgo_uint8, align 8 + %22 = icmp eq ptr %21, null + br i1 %22, label %_llgo_15, label %_llgo_16 + +_llgo_15: ; preds = %_llgo_14 + %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + store ptr %23, ptr @_llgo_uint8, align 8 + br label %_llgo_16 + +_llgo_16: ; preds = %_llgo_15, %_llgo_14 + %24 = load ptr, ptr @_llgo_uint16, align 8 + %25 = icmp eq ptr %24, null + br i1 %25, label %_llgo_17, label %_llgo_18 + +_llgo_17: ; preds = %_llgo_16 + %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 41) + store ptr %26, ptr @_llgo_uint16, align 8 + br label %_llgo_18 + +_llgo_18: ; preds = %_llgo_17, %_llgo_16 + %27 = load ptr, ptr @_llgo_uint32, align 8 + %28 = icmp eq ptr %27, null + br i1 %28, label %_llgo_19, label %_llgo_20 + +_llgo_19: ; preds = %_llgo_18 + %29 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 42) + store ptr %29, ptr @_llgo_uint32, align 8 + br label %_llgo_20 + +_llgo_20: ; preds = %_llgo_19, %_llgo_18 + %30 = load ptr, ptr @_llgo_uint64, align 8 + %31 = icmp eq ptr %30, null + br i1 %31, label %_llgo_21, label %_llgo_22 + +_llgo_21: ; preds = %_llgo_20 + %32 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 43) + store ptr %32, ptr @_llgo_uint64, align 8 + br label %_llgo_22 + +_llgo_22: ; preds = %_llgo_21, %_llgo_20 + %33 = load ptr, ptr @_llgo_uintptr, align 8 + %34 = icmp eq ptr %33, null + br i1 %34, label %_llgo_23, label %_llgo_24 + +_llgo_23: ; preds = %_llgo_22 + %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + store ptr %35, ptr @_llgo_uintptr, align 8 + br label %_llgo_24 + +_llgo_24: ; preds = %_llgo_23, %_llgo_22 + %36 = load ptr, ptr @_llgo_float32, align 8 + %37 = icmp eq ptr %36, null + br i1 %37, label %_llgo_25, label %_llgo_26 + +_llgo_25: ; preds = %_llgo_24 + %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 45) + store ptr %38, ptr @_llgo_float32, align 8 + br label %_llgo_26 + +_llgo_26: ; preds = %_llgo_25, %_llgo_24 + %39 = load ptr, ptr @_llgo_float64, align 8 + %40 = icmp eq ptr %39, null + br i1 %40, label %_llgo_27, label %_llgo_28 + +_llgo_27: ; preds = %_llgo_26 + %41 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 46) + store ptr %41, ptr @_llgo_float64, align 8 + br label %_llgo_28 + +_llgo_28: ; preds = %_llgo_27, %_llgo_26 + %42 = load ptr, ptr @"[10]_llgo_int", align 8 + %43 = icmp eq ptr %42, null + br i1 %43, label %_llgo_29, label %_llgo_30 + +_llgo_29: ; preds = %_llgo_28 + %44 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %45 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 10, ptr %44) + store ptr %45, ptr @"[10]_llgo_int", align 8 + br label %_llgo_30 + +_llgo_30: ; preds = %_llgo_29, %_llgo_28 + %46 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %47 = icmp eq ptr %46, null + br i1 %47, label %_llgo_31, label %_llgo_32 + +_llgo_31: ; preds = %_llgo_30 + %48 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %48, 0 + %50 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %49, i64 0, 1 + %51 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %50, i64 0, 2 + %52 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %53 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %52, 0 + %54 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %53, i64 0, 1 + %55 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %54, i64 0, 2 + %56 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %51, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %55, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %56) + store ptr %56, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + br label %_llgo_32 + +_llgo_32: ; preds = %_llgo_31, %_llgo_30 + %57 = load ptr, ptr @_llgo_Pointer, align 8 + %58 = icmp eq ptr %57, null + br i1 %58, label %_llgo_33, label %_llgo_34 + +_llgo_33: ; preds = %_llgo_32 + %59 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %59) + store ptr %59, ptr @_llgo_Pointer, align 8 + br label %_llgo_34 + +_llgo_34: ; preds = %_llgo_33, %_llgo_32 + %60 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %60, 0 + %62 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61, i64 0, 1 + %63 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %62, i64 0, 2 + %64 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %65 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %64, 0 + %66 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %65, i64 0, 1 + %67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %66, i64 0, 2 + %68 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %63, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %67, i1 false) + %69 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 2 }, ptr %68, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %70 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %71 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }, ptr %70, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %72 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %73 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %72, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %69, ptr %73, align 8 + %74 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %72, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %71, ptr %74, align 8 + %75 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %72, 0 + %76 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %75, i64 2, 1 + %77 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %76, i64 2, 2 + %78 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %77) + store ptr %78, ptr @"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8", align 8 + %79 = load ptr, ptr @"*_llgo_int", align 8 + %80 = icmp eq ptr %79, null + br i1 %80, label %_llgo_35, label %_llgo_36 + +_llgo_35: ; preds = %_llgo_34 + %81 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %82 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %81) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %82) + store ptr %82, ptr @"*_llgo_int", align 8 + br label %_llgo_36 + +_llgo_36: ; preds = %_llgo_35, %_llgo_34 + %83 = load ptr, ptr @"[]_llgo_int", align 8 + %84 = icmp eq ptr %83, null + br i1 %84, label %_llgo_37, label %_llgo_38 + +_llgo_37: ; preds = %_llgo_36 + %85 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %86 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr %85) + store ptr %86, ptr @"[]_llgo_int", align 8 + br label %_llgo_38 + +_llgo_38: ; preds = %_llgo_37, %_llgo_36 + %87 = load ptr, ptr @_llgo_string, align 8 + %88 = icmp eq ptr %87, null + br i1 %88, label %_llgo_39, label %_llgo_40 + +_llgo_39: ; preds = %_llgo_38 + %89 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %89, ptr @_llgo_string, align 8 + br label %_llgo_40 + +_llgo_40: ; preds = %_llgo_39, %_llgo_38 + %90 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 35) + %91 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 1 }, ptr %90, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %92 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %93 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 1 }, ptr %92, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %94 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %95 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 1 }, ptr %94, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %96 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 168) + %97 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %96, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %91, ptr %97, align 8 + %98 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %96, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %93, ptr %98, align 8 + %99 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %96, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %95, ptr %99, align 8 + %100 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %96, 0 + %101 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %100, i64 3, 1 + %102 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %101, i64 3, 2 + %103 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 4 }, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %102) + store ptr %103, ptr @"main.struct$RKbUG45GE4henGMAdmt0Rju0JptyR8NsX7IZLsOI0OM", align 8 + %104 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 1 }, i64 24, i64 16, i64 0, i64 1) + %105 = load ptr, ptr @_llgo_main.T, align 8 + %106 = icmp eq ptr %105, null + br i1 %106, label %_llgo_41, label %_llgo_42 + +_llgo_41: ; preds = %_llgo_40 + store ptr %104, ptr @_llgo_main.T, align 8 + br label %_llgo_42 + +_llgo_42: ; preds = %_llgo_41, %_llgo_40 + %107 = load ptr, ptr @_llgo_string, align 8 + br i1 %106, label %_llgo_43, label %_llgo_44 + +_llgo_43: ; preds = %_llgo_42 + %108 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %109 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 6 }, ptr undef, ptr undef, ptr undef }, ptr %108, 1 + %110 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %109, ptr @"main.(*T).Invoke", 2 + %111 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %110, ptr @"main.(*T).Invoke", 3 + %112 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %113 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %112, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %111, ptr %113, align 8 + %114 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %112, 0 + %115 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %114, i64 1, 1 + %116 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %115, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %104, ptr %107, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %116) + br label %_llgo_44 + +_llgo_44: ; preds = %_llgo_43, %_llgo_42 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +define linkonce void @"__llgo_stub.main.main$1"(ptr %0) { +_llgo_0: + tail call void @"main.main$1"() + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice", i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.SliceOf"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") diff --git a/cl/_testrt/float2any/in.go b/compiler/cl/_testrt/float2any/in.go similarity index 100% rename from cl/_testrt/float2any/in.go rename to compiler/cl/_testrt/float2any/in.go diff --git a/cl/_testrt/float2any/out.ll b/compiler/cl/_testrt/float2any/out.ll similarity index 50% rename from cl/_testrt/float2any/out.ll rename to compiler/cl/_testrt/float2any/out.ll index 74e1049f..2d097e44 100644 --- a/cl/_testrt/float2any/out.ll +++ b/compiler/cl/_testrt/float2any/out.ll @@ -1,8 +1,8 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } @"main.init$guard" = global i1 false, align 1 @_llgo_float32 = linkonce global ptr null, align 8 @@ -14,27 +14,27 @@ source_filename = "main" @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 -define void @main.check32(%"github.com/goplus/llgo/internal/runtime.eface" %0) { +define void @main.check32(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %0) { _llgo_0: - %1 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %1 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %2 = load ptr, ptr @_llgo_float32, align 8 %3 = icmp eq ptr %1, %2 br i1 %3, label %_llgo_3, label %_llgo_4 _llgo_1: ; preds = %_llgo_3 %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @1, i64 9 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 9 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) unreachable _llgo_2: ; preds = %_llgo_3 ret void _llgo_3: ; preds = %_llgo_0 - %8 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %8 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %9 = ptrtoint ptr %8 to i64 %10 = trunc i64 %9 to i32 %11 = bitcast i32 %10 to float @@ -43,35 +43,35 @@ _llgo_3: ; preds = %_llgo_0 _llgo_4: ; preds = %_llgo_0 %13 = load ptr, ptr @_llgo_string, align 8 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 21 }, ptr %14, align 8 - %15 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %13, 0 - %16 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %15, ptr %14, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %16) + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 21 }, ptr %14, align 8 + %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %13, 0 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %15, ptr %14, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %16) unreachable } -define void @main.check64(%"github.com/goplus/llgo/internal/runtime.eface" %0) { +define void @main.check64(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %0) { _llgo_0: - %1 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 0 + %1 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 0 %2 = load ptr, ptr @_llgo_float64, align 8 %3 = icmp eq ptr %1, %2 br i1 %3, label %_llgo_3, label %_llgo_4 _llgo_1: ; preds = %_llgo_3 %4 = load ptr, ptr @_llgo_string, align 8 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @2, i64 9 }, ptr %5, align 8 - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %4, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 9 }, ptr %5, align 8 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) unreachable _llgo_2: ; preds = %_llgo_3 ret void _llgo_3: ; preds = %_llgo_0 - %8 = extractvalue %"github.com/goplus/llgo/internal/runtime.eface" %0, 1 + %8 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, 1 %9 = ptrtoint ptr %8 to i64 %10 = bitcast i64 %9 to double %11 = fcmp une double %10, 0x400921FB53C8D4F1 @@ -79,11 +79,11 @@ _llgo_3: ; preds = %_llgo_0 _llgo_4: ; preds = %_llgo_0 %12 = load ptr, ptr @_llgo_string, align 8 - %13 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 21 }, ptr %13, align 8 - %14 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %12, 0 - %15 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %14, ptr %13, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %15) + %13 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 21 }, ptr %13, align 8 + %14 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %12, 0 + %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %14, ptr %13, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %15) unreachable } @@ -115,22 +115,22 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call float @main.f32() %3 = load ptr, ptr @_llgo_float32, align 8 %4 = bitcast float %2 to i32 %5 = inttoptr i32 %4 to ptr - %6 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %3, 0 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %6, ptr %5, 1 - call void @main.check32(%"github.com/goplus/llgo/internal/runtime.eface" %7) + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %3, 0 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, ptr %5, 1 + call void @main.check32(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %7) %8 = call double @main.f64() %9 = load ptr, ptr @_llgo_float64, align 8 %10 = bitcast double %8 to i64 %11 = inttoptr i64 %10 to ptr - %12 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %9, 0 - %13 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %12, ptr %11, 1 - call void @main.check64(%"github.com/goplus/llgo/internal/runtime.eface" %13) + %12 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %9, 0 + %13 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %12, ptr %11, 1 + call void @main.check64(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %13) ret i32 0 } @@ -141,7 +141,7 @@ _llgo_0: br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 45) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 45) store ptr %2, ptr @_llgo_float32, align 8 br label %_llgo_2 @@ -151,7 +151,7 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 br i1 %4, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %5 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) store ptr %5, ptr @_llgo_string, align 8 br label %_llgo_4 @@ -161,7 +161,7 @@ _llgo_4: ; preds = %_llgo_3, %_llgo_2 br i1 %7, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %8 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 46) + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 46) store ptr %8, ptr @_llgo_float64, align 8 br label %_llgo_6 @@ -169,10 +169,10 @@ _llgo_6: ; preds = %_llgo_5, %_llgo_4 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() diff --git a/cl/_testrt/fprintf/in.go b/compiler/cl/_testrt/fprintf/in.go similarity index 100% rename from cl/_testrt/fprintf/in.go rename to compiler/cl/_testrt/fprintf/in.go diff --git a/cl/_testrt/fprintf/out.ll b/compiler/cl/_testrt/fprintf/out.ll similarity index 87% rename from cl/_testrt/fprintf/out.ll rename to compiler/cl/_testrt/fprintf/out.ll index 65c65aed..efdb389d 100644 --- a/cl/_testrt/fprintf/out.ll +++ b/compiler/cl/_testrt/fprintf/out.ll @@ -24,13 +24,13 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = load ptr, ptr @__stderrp, align 8 call void (ptr, ptr, ...) @fprintf(ptr %2, ptr @0, i64 100) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare void @fprintf(ptr, ptr, ...) diff --git a/cl/_testrt/freevars/in.go b/compiler/cl/_testrt/freevars/in.go similarity index 100% rename from cl/_testrt/freevars/in.go rename to compiler/cl/_testrt/freevars/in.go diff --git a/compiler/cl/_testrt/freevars/out.ll b/compiler/cl/_testrt/freevars/out.ll new file mode 100644 index 00000000..3cd8f6b1 --- /dev/null +++ b/compiler/cl/_testrt/freevars/out.ll @@ -0,0 +1,98 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + call void @"main.main$1"({ ptr, ptr } { ptr @"__llgo_stub.main.main$2", ptr null }) + ret i32 0 +} + +define void @"main.main$1"({ ptr, ptr } %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + store { ptr, ptr } %0, ptr %1, align 8 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %3 = getelementptr inbounds { ptr }, ptr %2, i32 0, i32 0 + store ptr %1, ptr %3, align 8 + %4 = insertvalue { ptr, ptr } { ptr @"main.main$1$1", ptr undef }, ptr %2, 1 + %5 = extractvalue { ptr, ptr } %4, 1 + %6 = extractvalue { ptr, ptr } %4, 0 + call void %6(ptr %5, %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) + ret void +} + +define void @"main.main$1$1"(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %1) { +_llgo_0: + %2 = load { ptr }, ptr %0, align 8 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %1) + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %1, 1 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %3, 0 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %5, ptr %4, 1 + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %7, 0 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %8, ptr null, 1 + %10 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %9) + %11 = xor i1 %10, true + br i1 %11, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %12 = extractvalue { ptr } %2, 0 + %13 = load { ptr, ptr }, ptr %12, align 8 + %14 = extractvalue { ptr, ptr } %13, 1 + %15 = extractvalue { ptr, ptr } %13, 0 + call void %15(ptr %14, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %1) + ret void + +_llgo_2: ; preds = %_llgo_0 + %16 = extractvalue { ptr } %2, 0 + %17 = load { ptr, ptr }, ptr %16, align 8 + %18 = extractvalue { ptr, ptr } %17, 1 + %19 = extractvalue { ptr, ptr } %17, 0 + call void %19(ptr %18, %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) + ret void +} + +define void @"main.main$2"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %0) { +_llgo_0: + ret void +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +define linkonce void @"__llgo_stub.main.main$2"(ptr %0, %"github.com/goplus/llgo/runtime/internal/runtime.iface" %1) { +_llgo_0: + tail call void @"main.main$2"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %1) + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface", %"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfaceType"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") diff --git a/cl/_testrt/funcaddr/in.go b/compiler/cl/_testrt/funcaddr/in.go similarity index 100% rename from cl/_testrt/funcaddr/in.go rename to compiler/cl/_testrt/funcaddr/in.go diff --git a/cl/_testrt/funcaddr/out.ll b/compiler/cl/_testrt/funcaddr/out.ll similarity index 54% rename from cl/_testrt/funcaddr/out.ll rename to compiler/cl/_testrt/funcaddr/out.ll index 374a8436..7642d15f 100644 --- a/cl/_testrt/funcaddr/out.ll +++ b/compiler/cl/_testrt/funcaddr/out.ll @@ -28,26 +28,26 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) store ptr @main.add, ptr %2, align 8 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) store ptr @"main.main$1", ptr %3, align 8 %4 = load ptr, ptr %2, align 8 %5 = icmp eq ptr @main.add, %4 - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %5) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %5) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %6 = load ptr, ptr %2, align 8 %7 = load ptr, ptr %2, align 8 %8 = icmp eq ptr %6, %7 - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %8) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %8) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %9 = load ptr, ptr %3, align 8 %10 = load ptr, ptr %3, align 8 %11 = icmp eq ptr %9, %10 - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %11) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %11) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) ret i32 0 } @@ -57,10 +57,10 @@ _llgo_0: ret i64 %2 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1) -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) diff --git a/cl/_testrt/funcdecl/in.go b/compiler/cl/_testrt/funcdecl/in.go similarity index 100% rename from cl/_testrt/funcdecl/in.go rename to compiler/cl/_testrt/funcdecl/in.go diff --git a/compiler/cl/_testrt/funcdecl/out.ll b/compiler/cl/_testrt/funcdecl/out.ll new file mode 100644 index 00000000..10f921aa --- /dev/null +++ b/compiler/cl/_testrt/funcdecl/out.ll @@ -0,0 +1,238 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%main.rtype = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } + +@"main.init$guard" = global i1 false, align 1 +@"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 +@_llgo_Pointer = linkonce global ptr null, align 8 +@"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8" = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [2 x i8] c"$f", align 1 +@1 = private unnamed_addr constant [5 x i8] c"$data", align 1 +@2 = private unnamed_addr constant [4 x i8] c"main", align 1 +@3 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@_llgo_string = linkonce global ptr null, align 8 +@4 = private unnamed_addr constant [4 x i8] c"demo", align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@5 = private unnamed_addr constant [5 x i8] c"hello", align 1 + +define void @main.check({ ptr, ptr } %0) { +_llgo_0: + %1 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %2 = load ptr, ptr @_llgo_Pointer, align 8 + %3 = load ptr, ptr @"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8", align 8 + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store { ptr, ptr } { ptr @__llgo_stub.main.demo, ptr null }, ptr %4, align 8 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %3, 0 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %5, ptr %4, 1 + %7 = load ptr, ptr @"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8", align 8 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store { ptr, ptr } %0, ptr %8, align 8 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %7, 0 + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %9, ptr %8, 1 + %11 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, 0 + %12 = load ptr, ptr @"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8", align 8 + %13 = icmp eq ptr %11, %12 + br i1 %13, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %14 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6, 1 + %15 = load { ptr, ptr }, ptr %14, align 8 + %16 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %10, 0 + %17 = load ptr, ptr @"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8", align 8 + %18 = icmp eq ptr %16, %17 + br i1 %18, label %_llgo_3, label %_llgo_4 + +_llgo_2: ; preds = %_llgo_0 + %19 = load ptr, ptr @_llgo_string, align 8 + %20 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 21 }, ptr %20, align 8 + %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %19, 0 + %22 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %21, ptr %20, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %22) + unreachable + +_llgo_3: ; preds = %_llgo_1 + %23 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %10, 1 + %24 = load { ptr, ptr }, ptr %23, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintEface"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %6) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintEface"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %25 = extractvalue { ptr, ptr } %0, 0 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %25) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %26 = extractvalue { ptr, ptr } %15, 0 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %26) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + %27 = extractvalue { ptr, ptr } %24, 0 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %27) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr @main.demo) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %28 = call ptr @main.closurePtr(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %6) + %29 = call ptr @main.closurePtr(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %10) + %30 = icmp eq ptr %28, %29 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %30) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void + +_llgo_4: ; preds = %_llgo_1 + %31 = load ptr, ptr @_llgo_string, align 8 + %32 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 21 }, ptr %32, align 8 + %33 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %31, 0 + %34 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %33, ptr %32, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %34) + unreachable +} + +define ptr @main.closurePtr(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %0, ptr %1, align 8 + %2 = getelementptr inbounds %main.rtype, ptr %1, i32 0, i32 1 + %3 = load ptr, ptr %2, align 8 + %4 = getelementptr inbounds { ptr, ptr }, ptr %3, i32 0, i32 0 + %5 = load ptr, ptr %4, align 8 + ret ptr %5 +} + +define void @main.demo() { +_llgo_0: + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 5 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + call void @main.check({ ptr, ptr } { ptr @__llgo_stub.main.demo, ptr null }) + ret i32 0 +} + +define linkonce void @__llgo_stub.main.demo(ptr %0) { +_llgo_0: + tail call void @main.demo() + ret void +} + +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %3 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %2, 0 + %4 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %3, i64 0, 1 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %4, i64 0, 2 + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %6, 0 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %7, i64 0, 1 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %8, i64 0, 2 + %10 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %5, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %10) + store ptr %10, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %11 = load ptr, ptr @_llgo_Pointer, align 8 + %12 = icmp eq ptr %11, null + br i1 %12, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %13 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %13) + store ptr %13, ptr @_llgo_Pointer, align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %14, 0 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %15, i64 0, 1 + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, i64 0, 2 + %18 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %18, 0 + %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %19, i64 0, 1 + %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %20, i64 0, 2 + %22 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %17, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %21, i1 false) + %23 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 2 }, ptr %22, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %24 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %25 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 5 }, ptr %24, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %27 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %26, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %23, ptr %27, align 8 + %28 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %26, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %25, ptr %28, align 8 + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %26, 0 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %29, i64 2, 1 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30, i64 2, 2 + %32 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %31) + store ptr %32, ptr @"main.struct$b7Su1hWaFih-M0M9hMk6nO_RD1K_GQu5WjIXQp6Q2e8", align 8 + %33 = load ptr, ptr @_llgo_string, align 8 + %34 = icmp eq ptr %33, null + br i1 %34, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %35, ptr @_llgo_string, align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintEface"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() diff --git a/cl/_testrt/gblarray/in.go b/compiler/cl/_testrt/gblarray/in.go similarity index 92% rename from cl/_testrt/gblarray/in.go rename to compiler/cl/_testrt/gblarray/in.go index 067f60ca..54dcf5e4 100644 --- a/cl/_testrt/gblarray/in.go +++ b/compiler/cl/_testrt/gblarray/in.go @@ -2,7 +2,7 @@ package main import ( "github.com/goplus/llgo/c" - "github.com/goplus/llgo/internal/abi" + "github.com/goplus/llgo/runtime/abi" ) func Basic(kind abi.Kind) *abi.Type { diff --git a/cl/_testrt/gblarray/out.ll b/compiler/cl/_testrt/gblarray/out.ll similarity index 57% rename from cl/_testrt/gblarray/out.ll rename to compiler/cl/_testrt/gblarray/out.ll index 28726774..262bfb20 100644 --- a/cl/_testrt/gblarray/out.ll +++ b/compiler/cl/_testrt/gblarray/out.ll @@ -1,8 +1,8 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/internal/runtime.String", ptr } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/abi.Type" = type { i64, i64, i32, i8, i8, i8, i8, { ptr, ptr }, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } @main.basicTypes = global [25 x ptr] zeroinitializer, align 8 @"main.init$guard" = global i1 false, align 1 @@ -14,7 +14,7 @@ source_filename = "main" define ptr @main.Basic(i64 %0) { _llgo_0: %1 = icmp sge i64 %0, 25 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %1) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %1) %2 = getelementptr inbounds ptr, ptr @main.basicTypes, i64 %0 %3 = load ptr, ptr %2, align 8 ret ptr %3 @@ -22,15 +22,15 @@ _llgo_0: define ptr @main.basicType(i64 %0) { _llgo_0: - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 72) - %2 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %1, i32 0, i32 0 + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 72) + %2 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %1, i32 0, i32 0 %3 = icmp sge i64 %0, 25 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %3) %4 = getelementptr inbounds i64, ptr @main.sizeBasicTypes, i64 %0 %5 = load i64, ptr %4, align 4 - %6 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %1, i32 0, i32 2 + %6 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %1, i32 0, i32 2 %7 = trunc i64 %0 to i32 - %8 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %1, i32 0, i32 6 + %8 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %1, i32 0, i32 6 %9 = trunc i64 %0 to i8 store i64 %5, ptr %2, align 4 store i32 %7, ptr %6, align 4 @@ -45,7 +45,7 @@ _llgo_0: _llgo_1: ; preds = %_llgo_0 store i1 true, ptr @"main.init$guard", align 1 - call void @"github.com/goplus/llgo/internal/abi.init"() + call void @"github.com/goplus/llgo/runtime/abi.init"() store i64 16, ptr getelementptr inbounds (i64, ptr @main.sizeBasicTypes, i64 24), align 4 %1 = call ptr @main.basicType(i64 24) store ptr %1, ptr getelementptr inbounds (ptr, ptr @main.basicTypes, i64 24), align 8 @@ -59,24 +59,24 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call ptr @main.Basic(i64 24) - %3 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %2, i32 0, i32 6 + %3 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %2, i32 0, i32 6 %4 = load i8, ptr %3, align 1 %5 = sext i8 %4 to i64 - %6 = getelementptr inbounds %"github.com/goplus/llgo/internal/abi.Type", ptr %2, i32 0, i32 0 + %6 = getelementptr inbounds %"github.com/goplus/llgo/runtime/abi.Type", ptr %2, i32 0, i32 0 %7 = load i64, ptr %6, align 4 %8 = call i32 (ptr, ...) @printf(ptr @0, i64 %5, i64 %7) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) -declare void @"github.com/goplus/llgo/internal/abi.init"() +declare void @"github.com/goplus/llgo/runtime/abi.init"() -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare i32 @printf(ptr, ...) diff --git a/cl/_testrt/gotypes/in.go b/compiler/cl/_testrt/gotypes/in.go similarity index 100% rename from cl/_testrt/gotypes/in.go rename to compiler/cl/_testrt/gotypes/in.go diff --git a/cl/_testrt/gotypes/out.ll b/compiler/cl/_testrt/gotypes/out.ll similarity index 64% rename from cl/_testrt/gotypes/out.ll rename to compiler/cl/_testrt/gotypes/out.ll index 571235f3..328e87fa 100644 --- a/cl/_testrt/gotypes/out.ll +++ b/compiler/cl/_testrt/gotypes/out.ll @@ -1,13 +1,13 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.iface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @__llgo_argv = global ptr null, align 8 -define void @main.foo(%"github.com/goplus/llgo/internal/runtime.iface" %0) { +define void @main.foo(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %0) { _llgo_0: ret void } @@ -29,10 +29,10 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - call void @main.foo(%"github.com/goplus/llgo/internal/runtime.iface" zeroinitializer) + call void @main.foo(%"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() diff --git a/cl/_testrt/hello/in.go b/compiler/cl/_testrt/hello/in.go similarity index 72% rename from cl/_testrt/hello/in.go rename to compiler/cl/_testrt/hello/in.go index e79caece..216feded 100644 --- a/cl/_testrt/hello/in.go +++ b/compiler/cl/_testrt/hello/in.go @@ -1,6 +1,6 @@ package main -import "github.com/goplus/llgo/cl/internal/libc" +import "github.com/goplus/llgo/compiler/cl/_testrt/hello/libc" var format = [...]int8{'H', 'e', 'l', 'l', 'o', ' ', '%', 'd', '\n', 0} diff --git a/cl/internal/libc/libc.go b/compiler/cl/_testrt/hello/libc/libc.go similarity index 100% rename from cl/internal/libc/libc.go rename to compiler/cl/_testrt/hello/libc/libc.go diff --git a/cl/_testrt/hello/out.ll b/compiler/cl/_testrt/hello/out.ll similarity index 92% rename from cl/_testrt/hello/out.ll rename to compiler/cl/_testrt/hello/out.ll index b4bf2fe1..6a38932f 100644 --- a/cl/_testrt/hello/out.ll +++ b/compiler/cl/_testrt/hello/out.ll @@ -33,14 +33,14 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call i32 @strlen(ptr @main.format) call void (ptr, ...) @printf(ptr @main.format, i32 %2) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare i32 @strlen(ptr) diff --git a/cl/_testrt/index/in.go b/compiler/cl/_testrt/index/in.go similarity index 100% rename from cl/_testrt/index/in.go rename to compiler/cl/_testrt/index/in.go diff --git a/cl/_testrt/index/out.ll b/compiler/cl/_testrt/index/out.ll similarity index 57% rename from cl/_testrt/index/out.ll rename to compiler/cl/_testrt/index/out.ll index 23a0c442..c94cc585 100644 --- a/cl/_testrt/index/out.ll +++ b/compiler/cl/_testrt/index/out.ll @@ -2,8 +2,8 @@ source_filename = "main" %main.point = type { i64, i64 } -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @@ -27,7 +27,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = alloca %main.point, align 8 call void @llvm.memset(ptr %2, i8 0, i64 16, i1 false) @@ -56,10 +56,10 @@ _llgo_0: %17 = load i64, ptr %16, align 4 %18 = getelementptr inbounds %main.point, ptr %2, i32 0, i32 1 %19 = load i64, ptr %18, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %17) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %19) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %17) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %19) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %20 = alloca [2 x i64], align 8 call void @llvm.memset(ptr %20, i8 0, i64 16, i1 false) %21 = alloca [2 x [2 x i64]], align 8 @@ -82,10 +82,10 @@ _llgo_0: %32 = load i64, ptr %31, align 4 %33 = getelementptr inbounds i64, ptr %20, i64 1 %34 = load i64, ptr %33, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %32) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 32) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %34) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %34) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %35 = alloca [5 x i64], align 8 call void @llvm.memset(ptr %35, i8 0, i64 40, i1 false) %36 = getelementptr inbounds i64, ptr %35, i64 0 @@ -101,28 +101,28 @@ _llgo_0: %41 = load [5 x i64], ptr %35, align 4 %42 = getelementptr inbounds i64, ptr %35, i64 2 %43 = load i64, ptr %42, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %43) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %43) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %44 = load i8, ptr getelementptr inbounds (i8, ptr @0, i64 2), align 1 %45 = sext i8 %44 to i32 - %46 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringFromRune"(i32 %45) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %46) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + %46 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromRune"(i32 %45) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %46) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %47 = load i8, ptr getelementptr inbounds (i8, ptr @0, i64 1), align 1 %48 = sext i8 %47 to i32 - %49 = call %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringFromRune"(i32 %48) - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" %49) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %50 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) + %49 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromRune"(i32 %48) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %49) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %50 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) %51 = getelementptr inbounds i64, ptr %50, i64 0 %52 = getelementptr inbounds i64, ptr %50, i64 1 store i64 1, ptr %51, align 4 store i64 2, ptr %52, align 4 %53 = getelementptr inbounds i64, ptr %50, i64 1 %54 = load i64, ptr %53, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %54) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %55 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %54) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %55 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) %56 = getelementptr inbounds i64, ptr %55, i64 0 store i64 1, ptr %56, align 4 %57 = getelementptr inbounds i64, ptr %55, i64 1 @@ -131,37 +131,37 @@ _llgo_0: store i64 3, ptr %58, align 4 %59 = getelementptr inbounds i64, ptr %55, i64 3 store i64 4, ptr %59, align 4 - %60 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %55, 0 - %61 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %60, i64 4, 1 - %62 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %61, i64 4, 2 - %63 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %62, 0 - %64 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %62, 1 + %60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %55, 0 + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, i64 4, 1 + %62 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61, i64 4, 2 + %63 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %62, 0 + %64 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %62, 1 %65 = icmp sge i64 1, %64 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %65) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %65) %66 = getelementptr inbounds i64, ptr %63, i64 1 %67 = load i64, ptr %66, align 4 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %67) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 0) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %67) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 0) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) -declare %"github.com/goplus/llgo/internal/runtime.String" @"github.com/goplus/llgo/internal/runtime.StringFromRune"(i32) +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/runtime/internal/runtime.StringFromRune"(i32) -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testrt/intgen/in.go b/compiler/cl/_testrt/intgen/in.go similarity index 100% rename from cl/_testrt/intgen/in.go rename to compiler/cl/_testrt/intgen/in.go diff --git a/cl/_testrt/intgen/out.ll b/compiler/cl/_testrt/intgen/out.ll similarity index 62% rename from cl/_testrt/intgen/out.ll rename to compiler/cl/_testrt/intgen/out.ll index fc8c254b..eeae5b04 100644 --- a/cl/_testrt/intgen/out.ll +++ b/compiler/cl/_testrt/intgen/out.ll @@ -1,7 +1,7 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } %main.generator = type { i32 } @"main.init$guard" = global i1 false, align 1 @@ -11,10 +11,10 @@ source_filename = "main" @1 = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1 @2 = private unnamed_addr constant [4 x i8] c"%d\0A\00", align 1 -define %"github.com/goplus/llgo/internal/runtime.Slice" @main.genInts(i64 %0, { ptr, ptr } %1) { +define %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @main.genInts(i64 %0, { ptr, ptr } %1) { _llgo_0: - %2 = call %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.MakeSlice"(i64 %0, i64 %0, i64 4) - %3 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %2, 1 + %2 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.MakeSlice"(i64 %0, i64 %0, i64 4) + %3 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %2, 1 br label %_llgo_1 _llgo_1: ; preds = %_llgo_2, %_llgo_0 @@ -27,18 +27,18 @@ _llgo_2: ; preds = %_llgo_1 %7 = extractvalue { ptr, ptr } %1, 1 %8 = extractvalue { ptr, ptr } %1, 0 %9 = call i32 %8(ptr %7) - %10 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %2, 0 - %11 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %2, 1 + %10 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %2, 0 + %11 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %2, 1 %12 = icmp slt i64 %5, 0 %13 = icmp sge i64 %5, %11 %14 = or i1 %13, %12 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %14) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %14) %15 = getelementptr inbounds i32, ptr %10, i64 %5 store i32 %9, ptr %15, align 4 br label %_llgo_1 _llgo_3: ; preds = %_llgo_1 - ret %"github.com/goplus/llgo/internal/runtime.Slice" %2 + ret %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %2 } define i32 @"main.(*generator).next"(ptr %0) { @@ -70,10 +70,10 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - %2 = call %"github.com/goplus/llgo/internal/runtime.Slice" @main.genInts(i64 5, { ptr, ptr } { ptr @__llgo_stub.rand, ptr null }) - %3 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %2, 1 + %2 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @main.genInts(i64 5, { ptr, ptr } { ptr @__llgo_stub.rand, ptr null }) + %3 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %2, 1 br label %_llgo_1 _llgo_1: ; preds = %_llgo_2, %_llgo_0 @@ -83,26 +83,26 @@ _llgo_1: ; preds = %_llgo_2, %_llgo_0 br i1 %6, label %_llgo_2, label %_llgo_3 _llgo_2: ; preds = %_llgo_1 - %7 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %2, 0 - %8 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %2, 1 + %7 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %2, 0 + %8 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %2, 1 %9 = icmp slt i64 %5, 0 %10 = icmp sge i64 %5, %8 %11 = or i1 %10, %9 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %11) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %11) %12 = getelementptr inbounds i32, ptr %7, i64 %5 %13 = load i32, ptr %12, align 4 %14 = call i32 (ptr, ...) @printf(ptr @0, i32 %13) br label %_llgo_1 _llgo_3: ; preds = %_llgo_1 - %15 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 4) + %15 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 4) store i32 1, ptr %15, align 4 - %16 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %17 = getelementptr inbounds { ptr }, ptr %16, i32 0, i32 0 store ptr %15, ptr %17, align 8 %18 = insertvalue { ptr, ptr } { ptr @"main.main$1", ptr undef }, ptr %16, 1 - %19 = call %"github.com/goplus/llgo/internal/runtime.Slice" @main.genInts(i64 5, { ptr, ptr } %18) - %20 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %19, 1 + %19 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @main.genInts(i64 5, { ptr, ptr } %18) + %20 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %19, 1 br label %_llgo_4 _llgo_4: ; preds = %_llgo_5, %_llgo_3 @@ -112,27 +112,27 @@ _llgo_4: ; preds = %_llgo_5, %_llgo_3 br i1 %23, label %_llgo_5, label %_llgo_6 _llgo_5: ; preds = %_llgo_4 - %24 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %19, 0 - %25 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %19, 1 + %24 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %19, 0 + %25 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %19, 1 %26 = icmp slt i64 %22, 0 %27 = icmp sge i64 %22, %25 %28 = or i1 %27, %26 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %28) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %28) %29 = getelementptr inbounds i32, ptr %24, i64 %22 %30 = load i32, ptr %29, align 4 %31 = call i32 (ptr, ...) @printf(ptr @1, i32 %30) br label %_llgo_4 _llgo_6: ; preds = %_llgo_4 - %32 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 4) + %32 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 4) %33 = getelementptr inbounds %main.generator, ptr %32, i32 0, i32 0 store i32 1, ptr %33, align 4 - %34 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %34 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %35 = getelementptr inbounds { ptr }, ptr %34, i32 0, i32 0 store ptr %32, ptr %35, align 8 %36 = insertvalue { ptr, ptr } { ptr @"main.next$bound", ptr undef }, ptr %34, 1 - %37 = call %"github.com/goplus/llgo/internal/runtime.Slice" @main.genInts(i64 5, { ptr, ptr } %36) - %38 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %37, 1 + %37 = call %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @main.genInts(i64 5, { ptr, ptr } %36) + %38 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %37, 1 br label %_llgo_7 _llgo_7: ; preds = %_llgo_8, %_llgo_6 @@ -142,12 +142,12 @@ _llgo_7: ; preds = %_llgo_8, %_llgo_6 br i1 %41, label %_llgo_8, label %_llgo_9 _llgo_8: ; preds = %_llgo_7 - %42 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %37, 0 - %43 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %37, 1 + %42 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %37, 0 + %43 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %37, 1 %44 = icmp slt i64 %40, 0 %45 = icmp sge i64 %40, %43 %46 = or i1 %45, %44 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %46) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %46) %47 = getelementptr inbounds i32, ptr %42, i64 %40 %48 = load i32, ptr %47, align 4 %49 = call i32 (ptr, ...) @printf(ptr @2, i32 %48) @@ -170,11 +170,11 @@ _llgo_0: ret i32 %7 } -declare %"github.com/goplus/llgo/internal/runtime.Slice" @"github.com/goplus/llgo/internal/runtime.MakeSlice"(i64, i64, i64) +declare %"github.com/goplus/llgo/runtime/internal/runtime.Slice" @"github.com/goplus/llgo/runtime/internal/runtime.MakeSlice"(i64, i64, i64) -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare i32 @rand() @@ -186,9 +186,9 @@ _llgo_0: declare i32 @printf(ptr, ...) -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) define i32 @"main.next$bound"(ptr %0) { _llgo_0: diff --git a/cl/_testrt/len/in.go b/compiler/cl/_testrt/len/in.go similarity index 100% rename from cl/_testrt/len/in.go rename to compiler/cl/_testrt/len/in.go diff --git a/compiler/cl/_testrt/len/out.ll b/compiler/cl/_testrt/len/out.ll new file mode 100644 index 00000000..20e5f484 --- /dev/null +++ b/compiler/cl/_testrt/len/out.ll @@ -0,0 +1,229 @@ +; ModuleID = 'main' +source_filename = "main" + +%main.data = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@_llgo_int = linkonce global ptr null, align 8 +@_llgo_string = linkonce global ptr null, align 8 +@"map[_llgo_int]_llgo_string" = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [7 x i8] c"topbits", align 1 +@1 = private unnamed_addr constant [4 x i8] c"keys", align 1 +@2 = private unnamed_addr constant [5 x i8] c"elems", align 1 +@3 = private unnamed_addr constant [8 x i8] c"overflow", align 1 +@4 = private unnamed_addr constant [4 x i8] c"main", align 1 +@5 = private unnamed_addr constant [5 x i8] c"hello", align 1 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 56) + %3 = getelementptr inbounds %main.data, ptr %2, i32 0, i32 0 + %4 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %3, align 8 + %5 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %4, 1 + %6 = getelementptr inbounds %main.data, ptr %2, i32 0, i32 1 + %7 = load ptr, ptr %6, align 8 + %8 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.ChanLen"(ptr %7) + %9 = getelementptr inbounds %main.data, ptr %2, i32 0, i32 2 + %10 = load ptr, ptr %9, align 8 + %11 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.MapLen"(ptr %10) + %12 = getelementptr inbounds %main.data, ptr %2, i32 0, i32 3 + %13 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %12, align 8 + %14 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %13, 1 + %15 = getelementptr inbounds %main.data, ptr %2, i32 0, i32 1 + %16 = load ptr, ptr %15, align 8 + %17 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.ChanCap"(ptr %16) + %18 = getelementptr inbounds %main.data, ptr %2, i32 0, i32 3 + %19 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %18, align 8 + %20 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %19, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %5) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %8) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %11) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %14) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %17) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %20) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %21 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 56) + %22 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 0 + %23 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 1 + %24 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewChan"(i64 8, i64 2) + %25 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 2 + %26 = load ptr, ptr @_llgo_int, align 8 + %27 = load ptr, ptr @_llgo_string, align 8 + %28 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %29 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr %28, i64 1) + %30 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %31 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 1, ptr %31, align 4 + %32 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %30, ptr %29, ptr %31) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 5 }, ptr %32, align 8 + %33 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 3 + %34 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) + %35 = getelementptr inbounds i64, ptr %34, i64 0 + store i64 1, ptr %35, align 4 + %36 = getelementptr inbounds i64, ptr %34, i64 1 + store i64 2, ptr %36, align 4 + %37 = getelementptr inbounds i64, ptr %34, i64 2 + store i64 3, ptr %37, align 4 + %38 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %34, 0 + %39 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %38, i64 3, 1 + %40 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %39, i64 3, 2 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 5 }, ptr %22, align 8 + store ptr %24, ptr %23, align 8 + store ptr %29, ptr %25, align 8 + store %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %40, ptr %33, align 8 + %41 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 0 + %42 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %41, align 8 + %43 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.String" %42, 1 + %44 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 1 + %45 = load ptr, ptr %44, align 8 + %46 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.ChanLen"(ptr %45) + %47 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 2 + %48 = load ptr, ptr %47, align 8 + %49 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.MapLen"(ptr %48) + %50 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 3 + %51 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %50, align 8 + %52 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %51, 1 + %53 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 1 + %54 = load ptr, ptr %53, align 8 + %55 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.ChanCap"(ptr %54) + %56 = getelementptr inbounds %main.data, ptr %21, i32 0, i32 3 + %57 = load %"github.com/goplus/llgo/runtime/internal/runtime.Slice", ptr %56, align 8 + %58 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %57, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %43) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %46) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %49) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %52) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %55) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %58) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare i64 @"github.com/goplus/llgo/runtime/internal/runtime.ChanLen"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/internal/runtime.MapLen"(ptr) + +declare i64 @"github.com/goplus/llgo/runtime/internal/runtime.ChanCap"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewChan"(i64, i64) + +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_int, align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %2, ptr @_llgo_int, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @_llgo_string, align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %5, ptr @_llgo_string, align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %6 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %7 = icmp eq ptr %6, null + br i1 %7, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %10 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %10) + %12 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 7 }, ptr %11, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %13 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %13) + %15 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, ptr %14, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %16) + %18 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 5 }, ptr %17, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %20 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 8 }, ptr %19, i64 200, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %21 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %22 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %21, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %12, ptr %22, align 8 + %23 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %21, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %15, ptr %23, align 8 + %24 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %21, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %18, ptr %24, align 8 + %25 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %21, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %20, ptr %25, align 8 + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %21, 0 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %26, i64 4, 1 + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %27, i64 4, 2 + %29 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, i64 208, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %28) + %30 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr %8, ptr %9, ptr %29, i64 4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %30) + store ptr %30, ptr @"map[_llgo_int]_llgo_string", align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr, ptr, ptr, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr, ptr, ptr) diff --git a/cl/_testrt/linkname/in.go b/compiler/cl/_testrt/linkname/in.go similarity index 50% rename from cl/_testrt/linkname/in.go rename to compiler/cl/_testrt/linkname/in.go index 26c3b75f..406e7ee9 100644 --- a/cl/_testrt/linkname/in.go +++ b/compiler/cl/_testrt/linkname/in.go @@ -4,20 +4,20 @@ import ( _ "unsafe" "github.com/goplus/llgo/c" - _ "github.com/goplus/llgo/cl/internal/linktarget" + _ "github.com/goplus/llgo/compiler/cl/_testrt/linkname/linktarget" ) -//go:linkname print github.com/goplus/llgo/cl/internal/linktarget.F +//go:linkname print github.com/goplus/llgo/compiler/cl/_testrt/linkname/linktarget.F func print(a, b, c, d *c.Char) type m struct { s string } -//go:linkname setInfo github.com/goplus/llgo/cl/internal/linktarget.(*m).setInfo +//go:linkname setInfo github.com/goplus/llgo/compiler/cl/_testrt/linkname/linktarget.(*m).setInfo func setInfo(*m, string) -//go:linkname info github.com/goplus/llgo/cl/internal/linktarget.m.info +//go:linkname info github.com/goplus/llgo/compiler/cl/_testrt/linkname/linktarget.m.info func info(m) string func main() { diff --git a/cl/internal/linktarget/foo.go b/compiler/cl/_testrt/linkname/linktarget/foo.go similarity index 100% rename from cl/internal/linktarget/foo.go rename to compiler/cl/_testrt/linkname/linktarget/foo.go diff --git a/cl/internal/linktarget/out.ll b/compiler/cl/_testrt/linkname/linktarget/out.ll similarity index 100% rename from cl/internal/linktarget/out.ll rename to compiler/cl/_testrt/linkname/linktarget/out.ll diff --git a/compiler/cl/_testrt/linkname/out.ll b/compiler/cl/_testrt/linkname/out.ll new file mode 100644 index 00000000..9f3855ee --- /dev/null +++ b/compiler/cl/_testrt/linkname/out.ll @@ -0,0 +1,65 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%main.m = type { %"github.com/goplus/llgo/runtime/internal/runtime.String" } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [2 x i8] c"a\00", align 1 +@1 = private unnamed_addr constant [2 x i8] c"b\00", align 1 +@2 = private unnamed_addr constant [2 x i8] c"c\00", align 1 +@3 = private unnamed_addr constant [2 x i8] c"d\00", align 1 +@4 = private unnamed_addr constant [2 x i8] c"1\00", align 1 +@5 = private unnamed_addr constant [2 x i8] c"2\00", align 1 +@6 = private unnamed_addr constant [2 x i8] c"3\00", align 1 +@7 = private unnamed_addr constant [2 x i8] c"4\00", align 1 +@8 = private unnamed_addr constant [5 x i8] c"hello", align 1 + +declare %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/compiler/cl/_testrt/linkname/linktarget.m.info"(%main.m) + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"github.com/goplus/llgo/compiler/cl/_testrt/linkname/linktarget.init"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + call void @"github.com/goplus/llgo/compiler/cl/_testrt/linkname/linktarget.F"(ptr @0, ptr @1, ptr @2, ptr @3) + call void @"github.com/goplus/llgo/compiler/cl/_testrt/linkname/linktarget.F"(ptr @4, ptr @5, ptr @6, ptr @7) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + call void @"github.com/goplus/llgo/compiler/cl/_testrt/linkname/linktarget.(*m).setInfo"(ptr %2, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 5 }) + %3 = load %main.m, ptr %2, align 8 + %4 = call %"github.com/goplus/llgo/runtime/internal/runtime.String" @"github.com/goplus/llgo/compiler/cl/_testrt/linkname/linktarget.m.info"(%main.m %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +declare void @"github.com/goplus/llgo/compiler/cl/_testrt/linkname/linktarget.F"(ptr, ptr, ptr, ptr) + +declare void @"github.com/goplus/llgo/compiler/cl/_testrt/linkname/linktarget.(*m).setInfo"(ptr, %"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/compiler/cl/_testrt/linkname/linktarget.init"() + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) diff --git a/cl/_testrt/makemap/in.go b/compiler/cl/_testrt/makemap/in.go similarity index 100% rename from cl/_testrt/makemap/in.go rename to compiler/cl/_testrt/makemap/in.go diff --git a/compiler/cl/_testrt/makemap/out.ll b/compiler/cl/_testrt/makemap/out.ll new file mode 100644 index 00000000..10328f4b --- /dev/null +++ b/compiler/cl/_testrt/makemap/out.ll @@ -0,0 +1,1335 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%main.N = type { i8, i8 } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@_llgo_int = linkonce global ptr null, align 8 +@_llgo_string = linkonce global ptr null, align 8 +@"map[_llgo_int]_llgo_string" = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [7 x i8] c"topbits", align 1 +@1 = private unnamed_addr constant [4 x i8] c"keys", align 1 +@2 = private unnamed_addr constant [5 x i8] c"elems", align 1 +@3 = private unnamed_addr constant [8 x i8] c"overflow", align 1 +@4 = private unnamed_addr constant [4 x i8] c"main", align 1 +@5 = private unnamed_addr constant [5 x i8] c"hello", align 1 +@6 = private unnamed_addr constant [5 x i8] c"world", align 1 +@7 = private unnamed_addr constant [4 x i8] c"llgo", align 1 +@8 = private unnamed_addr constant [1 x i8] c":", align 1 +@"map[_llgo_string]_llgo_int" = linkonce global ptr null, align 8 +@9 = private unnamed_addr constant [2 x i8] c"go", align 1 +@10 = private unnamed_addr constant [7 x i8] c"bad key", align 1 +@11 = private unnamed_addr constant [7 x i8] c"bad len", align 1 +@_llgo_any = linkonce global ptr null, align 8 +@"map[_llgo_any]_llgo_int" = linkonce global ptr null, align 8 +@_llgo_main.N1 = linkonce global ptr null, align 8 +@12 = private unnamed_addr constant [2 x i8] c"N1", align 1 +@"[1]_llgo_int" = linkonce global ptr null, align 8 +@13 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@_llgo_main.K = linkonce global ptr null, align 8 +@14 = private unnamed_addr constant [1 x i8] c"K", align 1 +@_llgo_main.N = linkonce global ptr null, align 8 +@15 = private unnamed_addr constant [1 x i8] c"N", align 1 +@_llgo_int8 = linkonce global ptr null, align 8 +@"main.struct$e65EDK9vxC36Nz3YTgO1ulssLlNH03Bva_WWaCjH-4A" = linkonce global ptr null, align 8 +@16 = private unnamed_addr constant [2 x i8] c"n1", align 1 +@17 = private unnamed_addr constant [2 x i8] c"n2", align 1 +@"[1]_llgo_main.N" = linkonce global ptr null, align 8 +@_llgo_main.K2 = linkonce global ptr null, align 8 +@18 = private unnamed_addr constant [2 x i8] c"K2", align 1 +@"*_llgo_main.N" = linkonce global ptr null, align 8 +@"[1]*_llgo_main.N" = linkonce global ptr null, align 8 +@"chan _llgo_int" = linkonce global ptr null, align 8 +@19 = private unnamed_addr constant [4 x i8] c"chan", align 1 +@"map[chan _llgo_int]_llgo_int" = linkonce global ptr null, align 8 +@_llgo_main.M = linkonce global ptr null, align 8 +@20 = private unnamed_addr constant [1 x i8] c"M", align 1 +@"map[_llgo_main.N]_llgo_string" = linkonce global ptr null, align 8 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + call void @main.make1() + call void @main.make2() + call void @main.make3() + call void @main.make4() + call void @main.make5() + call void @main.make6() + call void @main.make7() + ret i32 0 +} + +define void @main.make1() { +_llgo_0: + %0 = load ptr, ptr @_llgo_int, align 8 + %1 = load ptr, ptr @_llgo_string, align 8 + %2 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr %2, i64 0) + %4 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 1, ptr %5, align 4 + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %4, ptr %3, ptr %5) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 5 }, ptr %6, align 8 + %7 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 2, ptr %8, align 4 + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %7, ptr %3, ptr %8) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 5 }, ptr %9, align 8 + %10 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 3, ptr %11, align 4 + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %10, ptr %3, ptr %11) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 4 }, ptr %12, align 8 + %13 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 1, ptr %14, align 4 + %15 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAccess1"(ptr %13, ptr %3, ptr %14) + %16 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %15, align 8 + %17 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %18 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 2, ptr %18, align 4 + %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAccess1"(ptr %17, ptr %3, ptr %18) + %20 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %19, align 8 + %21 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.MapLen"(ptr %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %16) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %20) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %21) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %22 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewMapIter"(ptr %22, ptr %3) + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_2, %_llgo_0 + %24 = call { i1, ptr, ptr } @"github.com/goplus/llgo/runtime/internal/runtime.MapIterNext"(ptr %23) + %25 = extractvalue { i1, ptr, ptr } %24, 0 + br i1 %25, label %_llgo_11, label %_llgo_12 + +_llgo_2: ; preds = %_llgo_13 + %26 = extractvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %88, 1 + %27 = extractvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %88, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %26) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 1 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %27) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_3: ; preds = %_llgo_13 + %28 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.MapLen"(ptr %3) + %29 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 + %30 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr %29, i64 %28) + %31 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %32 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewMapIter"(ptr %31, ptr %3) + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_5, %_llgo_3 + %33 = call { i1, ptr, ptr } @"github.com/goplus/llgo/runtime/internal/runtime.MapIterNext"(ptr %32) + %34 = extractvalue { i1, ptr, ptr } %33, 0 + br i1 %34, label %_llgo_14, label %_llgo_15 + +_llgo_5: ; preds = %_llgo_16 + %35 = extractvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %96, 1 + %36 = extractvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %96, 2 + %37 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 + %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" %36, ptr %38, align 8 + %39 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %37, ptr %30, ptr %38) + store i64 %35, ptr %39, align 4 + br label %_llgo_4 + +_llgo_6: ; preds = %_llgo_16 + %40 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 + %41 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 4 }, ptr %41, align 8 + %42 = call { ptr, i1 } @"github.com/goplus/llgo/runtime/internal/runtime.MapAccess2"(ptr %40, ptr %30, ptr %41) + %43 = extractvalue { ptr, i1 } %42, 0 + %44 = load i64, ptr %43, align 4 + %45 = extractvalue { ptr, i1 } %42, 1 + %46 = insertvalue { i64, i1 } undef, i64 %44, 0 + %47 = insertvalue { i64, i1 } %46, i1 %45, 1 + %48 = extractvalue { i64, i1 } %47, 0 + %49 = extractvalue { i64, i1 } %47, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 4 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %48) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %49) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %50 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 + %51 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 2 }, ptr %51, align 8 + %52 = call { ptr, i1 } @"github.com/goplus/llgo/runtime/internal/runtime.MapAccess2"(ptr %50, ptr %30, ptr %51) + %53 = extractvalue { ptr, i1 } %52, 0 + %54 = load i64, ptr %53, align 4 + %55 = extractvalue { ptr, i1 } %52, 1 + %56 = insertvalue { i64, i1 } undef, i64 %54, 0 + %57 = insertvalue { i64, i1 } %56, i1 %55, 1 + %58 = extractvalue { i64, i1 } %57, 0 + %59 = extractvalue { i64, i1 } %57, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 2 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %58) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %59) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %60 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 + %61 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 4 }, ptr %61, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.MapDelete"(ptr %60, ptr %30, ptr %61) + %62 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 + %63 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 4 }, ptr %63, align 8 + %64 = call { ptr, i1 } @"github.com/goplus/llgo/runtime/internal/runtime.MapAccess2"(ptr %62, ptr %30, ptr %63) + %65 = extractvalue { ptr, i1 } %64, 0 + %66 = load i64, ptr %65, align 4 + %67 = extractvalue { ptr, i1 } %64, 1 + %68 = insertvalue { i64, i1 } undef, i64 %66, 0 + %69 = insertvalue { i64, i1 } %68, i1 %67, 1 + %70 = extractvalue { i64, i1 } %69, 0 + %71 = extractvalue { i64, i1 } %69, 1 + br i1 %71, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %72 = load ptr, ptr @_llgo_string, align 8 + %73 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 7 }, ptr %73, align 8 + %74 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %72, 0 + %75 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %74, ptr %73, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %75) + unreachable + +_llgo_8: ; preds = %_llgo_6 + %76 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.MapLen"(ptr %30) + %77 = icmp ne i64 %76, 2 + br i1 %77, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %78 = load ptr, ptr @_llgo_string, align 8 + %79 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 7 }, ptr %79, align 8 + %80 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %78, 0 + %81 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %80, ptr %79, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %81) + unreachable + +_llgo_10: ; preds = %_llgo_8 + ret void + +_llgo_11: ; preds = %_llgo_1 + %82 = extractvalue { i1, ptr, ptr } %24, 1 + %83 = extractvalue { i1, ptr, ptr } %24, 2 + %84 = load i64, ptr %82, align 4 + %85 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %83, align 8 + %86 = insertvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } { i1 true, i64 undef, %"github.com/goplus/llgo/runtime/internal/runtime.String" undef }, i64 %84, 1 + %87 = insertvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %86, %"github.com/goplus/llgo/runtime/internal/runtime.String" %85, 2 + br label %_llgo_13 + +_llgo_12: ; preds = %_llgo_1 + br label %_llgo_13 + +_llgo_13: ; preds = %_llgo_12, %_llgo_11 + %88 = phi { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } [ %87, %_llgo_11 ], [ zeroinitializer, %_llgo_12 ] + %89 = extractvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %88, 0 + br i1 %89, label %_llgo_2, label %_llgo_3 + +_llgo_14: ; preds = %_llgo_4 + %90 = extractvalue { i1, ptr, ptr } %33, 1 + %91 = extractvalue { i1, ptr, ptr } %33, 2 + %92 = load i64, ptr %90, align 4 + %93 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %91, align 8 + %94 = insertvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } { i1 true, i64 undef, %"github.com/goplus/llgo/runtime/internal/runtime.String" undef }, i64 %92, 1 + %95 = insertvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %94, %"github.com/goplus/llgo/runtime/internal/runtime.String" %93, 2 + br label %_llgo_16 + +_llgo_15: ; preds = %_llgo_4 + br label %_llgo_16 + +_llgo_16: ; preds = %_llgo_15, %_llgo_14 + %96 = phi { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } [ %95, %_llgo_14 ], [ zeroinitializer, %_llgo_15 ] + %97 = extractvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %96, 0 + br i1 %97, label %_llgo_5, label %_llgo_6 +} + +define void @main.make2() { +_llgo_0: + %0 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr %0, i64 0) + %2 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.MapLen"(ptr %1) + %3 = icmp eq ptr %1, null + %4 = icmp ne ptr %1, null + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %1) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %5 = call i64 @"github.com/goplus/llgo/runtime/internal/runtime.MapLen"(ptr null) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr null) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %5) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 true) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %6 = load ptr, ptr @_llgo_any, align 8 + %7 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr %7, i64 0) + %9 = alloca [1 x i64], align 8 + call void @llvm.memset(ptr %9, i8 0, i64 8, i1 false) + %10 = getelementptr inbounds i64, ptr %9, i64 0 + store i64 1, ptr %10, align 4 + %11 = load [1 x i64], ptr %9, align 4 + %12 = load ptr, ptr @_llgo_main.N1, align 8 + %13 = extractvalue [1 x i64] %11, 0 + %14 = inttoptr i64 %13 to ptr + %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %12, 0 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %15, ptr %14, 1 + %17 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %18 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %16, ptr %18, align 8 + %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %17, ptr %8, ptr %18) + store i64 100, ptr %19, align 4 + %20 = alloca [1 x i64], align 8 + call void @llvm.memset(ptr %20, i8 0, i64 8, i1 false) + %21 = getelementptr inbounds i64, ptr %20, i64 0 + store i64 2, ptr %21, align 4 + %22 = load [1 x i64], ptr %20, align 4 + %23 = load ptr, ptr @_llgo_main.N1, align 8 + %24 = extractvalue [1 x i64] %22, 0 + %25 = inttoptr i64 %24 to ptr + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %23, 0 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %26, ptr %25, 1 + %28 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %29 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %27, ptr %29, align 8 + %30 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %28, ptr %8, ptr %29) + store i64 200, ptr %30, align 4 + %31 = alloca [1 x i64], align 8 + call void @llvm.memset(ptr %31, i8 0, i64 8, i1 false) + %32 = getelementptr inbounds i64, ptr %31, i64 0 + store i64 3, ptr %32, align 4 + %33 = load [1 x i64], ptr %31, align 4 + %34 = load ptr, ptr @_llgo_main.N1, align 8 + %35 = extractvalue [1 x i64] %33, 0 + %36 = inttoptr i64 %35 to ptr + %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %34, 0 + %38 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %37, ptr %36, 1 + %39 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %40 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %38, ptr %40, align 8 + %41 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %39, ptr %8, ptr %40) + store i64 300, ptr %41, align 4 + %42 = alloca [1 x i64], align 8 + call void @llvm.memset(ptr %42, i8 0, i64 8, i1 false) + %43 = getelementptr inbounds i64, ptr %42, i64 0 + store i64 2, ptr %43, align 4 + %44 = load [1 x i64], ptr %42, align 4 + %45 = load ptr, ptr @_llgo_main.N1, align 8 + %46 = extractvalue [1 x i64] %44, 0 + %47 = inttoptr i64 %46 to ptr + %48 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %45, 0 + %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %48, ptr %47, 1 + %50 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %51 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %49, ptr %51, align 8 + %52 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %50, ptr %8, ptr %51) + store i64 -200, ptr %52, align 4 + %53 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %54 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewMapIter"(ptr %53, ptr %8) + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_7, %_llgo_0 + %55 = call { i1, ptr, ptr } @"github.com/goplus/llgo/runtime/internal/runtime.MapIterNext"(ptr %54) + %56 = extractvalue { i1, ptr, ptr } %55, 0 + br i1 %56, label %_llgo_4, label %_llgo_5 + +_llgo_2: ; preds = %_llgo_6 + %57 = extractvalue { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } %68, 1 + %58 = extractvalue { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } %68, 2 + %59 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %57, 0 + %60 = load ptr, ptr @_llgo_main.N1, align 8 + %61 = icmp eq ptr %59, %60 + br i1 %61, label %_llgo_7, label %_llgo_8 + +_llgo_3: ; preds = %_llgo_6 + ret void + +_llgo_4: ; preds = %_llgo_1 + %62 = extractvalue { i1, ptr, ptr } %55, 1 + %63 = extractvalue { i1, ptr, ptr } %55, 2 + %64 = load %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %62, align 8 + %65 = load i64, ptr %63, align 4 + %66 = insertvalue { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } { i1 true, %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, i64 undef }, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %64, 1 + %67 = insertvalue { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } %66, i64 %65, 2 + br label %_llgo_6 + +_llgo_5: ; preds = %_llgo_1 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %68 = phi { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } [ %67, %_llgo_4 ], [ zeroinitializer, %_llgo_5 ] + %69 = extractvalue { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } %68, 0 + br i1 %69, label %_llgo_2, label %_llgo_3 + +_llgo_7: ; preds = %_llgo_2 + %70 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %57, 1 + %71 = ptrtoint ptr %70 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %71) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %58) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_8: ; preds = %_llgo_2 + %72 = load ptr, ptr @_llgo_string, align 8 + %73 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 21 }, ptr %73, align 8 + %74 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %72, 0 + %75 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %74, ptr %73, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %75) + unreachable +} + +define void @main.make3() { +_llgo_0: + %0 = alloca [1 x %main.N], align 8 + call void @llvm.memset(ptr %0, i8 0, i64 2, i1 false) + %1 = getelementptr inbounds %main.N, ptr %0, i64 0 + %2 = getelementptr inbounds %main.N, ptr %1, i32 0, i32 0 + %3 = getelementptr inbounds %main.N, ptr %1, i32 0, i32 1 + store i8 1, ptr %2, align 1 + store i8 2, ptr %3, align 1 + %4 = load [1 x %main.N], ptr %0, align 1 + %5 = load ptr, ptr @_llgo_main.K, align 8 + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 2) + store [1 x %main.N] %4, ptr %6, align 1 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %5, 0 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %7, ptr %6, 1 + %9 = alloca [1 x %main.N], align 8 + call void @llvm.memset(ptr %9, i8 0, i64 2, i1 false) + %10 = getelementptr inbounds %main.N, ptr %9, i64 0 + %11 = getelementptr inbounds %main.N, ptr %10, i32 0, i32 0 + %12 = getelementptr inbounds %main.N, ptr %10, i32 0, i32 1 + store i8 1, ptr %11, align 1 + store i8 2, ptr %12, align 1 + %13 = load [1 x %main.N], ptr %9, align 1 + %14 = load ptr, ptr @_llgo_main.K, align 8 + %15 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 2) + store [1 x %main.N] %13, ptr %15, align 1 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %14, 0 + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %16, ptr %15, 1 + %18 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %8, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %17) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %18) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %19 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %20 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr %19, i64 0) + %21 = alloca [1 x %main.N], align 8 + call void @llvm.memset(ptr %21, i8 0, i64 2, i1 false) + %22 = getelementptr inbounds %main.N, ptr %21, i64 0 + %23 = getelementptr inbounds %main.N, ptr %22, i32 0, i32 0 + %24 = getelementptr inbounds %main.N, ptr %22, i32 0, i32 1 + store i8 1, ptr %23, align 1 + store i8 2, ptr %24, align 1 + %25 = load [1 x %main.N], ptr %21, align 1 + %26 = load ptr, ptr @_llgo_main.K, align 8 + %27 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 2) + store [1 x %main.N] %25, ptr %27, align 1 + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %26, 0 + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %28, ptr %27, 1 + %30 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %31 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %29, ptr %31, align 8 + %32 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %30, ptr %20, ptr %31) + store i64 100, ptr %32, align 4 + %33 = alloca [1 x %main.N], align 8 + call void @llvm.memset(ptr %33, i8 0, i64 2, i1 false) + %34 = getelementptr inbounds %main.N, ptr %33, i64 0 + %35 = getelementptr inbounds %main.N, ptr %34, i32 0, i32 0 + %36 = getelementptr inbounds %main.N, ptr %34, i32 0, i32 1 + store i8 3, ptr %35, align 1 + store i8 4, ptr %36, align 1 + %37 = load [1 x %main.N], ptr %33, align 1 + %38 = load ptr, ptr @_llgo_main.K, align 8 + %39 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 2) + store [1 x %main.N] %37, ptr %39, align 1 + %40 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %38, 0 + %41 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %40, ptr %39, 1 + %42 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %43 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %41, ptr %43, align 8 + %44 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %42, ptr %20, ptr %43) + store i64 200, ptr %44, align 4 + %45 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %46 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewMapIter"(ptr %45, ptr %20) + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_7, %_llgo_0 + %47 = call { i1, ptr, ptr } @"github.com/goplus/llgo/runtime/internal/runtime.MapIterNext"(ptr %46) + %48 = extractvalue { i1, ptr, ptr } %47, 0 + br i1 %48, label %_llgo_4, label %_llgo_5 + +_llgo_2: ; preds = %_llgo_6 + %49 = extractvalue { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } %60, 1 + %50 = extractvalue { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } %60, 2 + %51 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %49, 0 + %52 = load ptr, ptr @_llgo_main.K, align 8 + %53 = icmp eq ptr %51, %52 + br i1 %53, label %_llgo_7, label %_llgo_8 + +_llgo_3: ; preds = %_llgo_6 + ret void + +_llgo_4: ; preds = %_llgo_1 + %54 = extractvalue { i1, ptr, ptr } %47, 1 + %55 = extractvalue { i1, ptr, ptr } %47, 2 + %56 = load %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %54, align 8 + %57 = load i64, ptr %55, align 4 + %58 = insertvalue { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } { i1 true, %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, i64 undef }, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %56, 1 + %59 = insertvalue { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } %58, i64 %57, 2 + br label %_llgo_6 + +_llgo_5: ; preds = %_llgo_1 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %60 = phi { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } [ %59, %_llgo_4 ], [ zeroinitializer, %_llgo_5 ] + %61 = extractvalue { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } %60, 0 + br i1 %61, label %_llgo_2, label %_llgo_3 + +_llgo_7: ; preds = %_llgo_2 + %62 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %49, 1 + %63 = load [1 x %main.N], ptr %62, align 1 + %64 = alloca [1 x %main.N], align 8 + call void @llvm.memset(ptr %64, i8 0, i64 2, i1 false) + store [1 x %main.N] %63, ptr %64, align 1 + %65 = getelementptr inbounds %main.N, ptr %64, i64 0 + %66 = load %main.N, ptr %65, align 1 + %67 = extractvalue %main.N %66, 0 + %68 = sext i8 %67 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %68) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %50) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_8: ; preds = %_llgo_2 + %69 = load ptr, ptr @_llgo_string, align 8 + %70 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 21 }, ptr %70, align 8 + %71 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %69, 0 + %72 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %71, ptr %70, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %72) + unreachable +} + +define void @main.make4() { +_llgo_0: + %0 = alloca [1 x ptr], align 8 + call void @llvm.memset(ptr %0, i8 0, i64 8, i1 false) + %1 = getelementptr inbounds ptr, ptr %0, i64 0 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 2) + %3 = getelementptr inbounds %main.N, ptr %2, i32 0, i32 0 + %4 = getelementptr inbounds %main.N, ptr %2, i32 0, i32 1 + store i8 1, ptr %3, align 1 + store i8 2, ptr %4, align 1 + store ptr %2, ptr %1, align 8 + %5 = load [1 x ptr], ptr %0, align 8 + %6 = load ptr, ptr @_llgo_main.K2, align 8 + %7 = extractvalue [1 x ptr] %5, 0 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %6, 0 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %8, ptr %7, 1 + %10 = alloca [1 x ptr], align 8 + call void @llvm.memset(ptr %10, i8 0, i64 8, i1 false) + %11 = getelementptr inbounds ptr, ptr %10, i64 0 + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 2) + %13 = getelementptr inbounds %main.N, ptr %12, i32 0, i32 0 + %14 = getelementptr inbounds %main.N, ptr %12, i32 0, i32 1 + store i8 1, ptr %13, align 1 + store i8 2, ptr %14, align 1 + store ptr %12, ptr %11, align 8 + %15 = load [1 x ptr], ptr %10, align 8 + %16 = load ptr, ptr @_llgo_main.K2, align 8 + %17 = extractvalue [1 x ptr] %15, 0 + %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %16, 0 + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %18, ptr %17, 1 + %20 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %9, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %19) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %20) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %21 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %22 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr %21, i64 0) + %23 = alloca [1 x ptr], align 8 + call void @llvm.memset(ptr %23, i8 0, i64 8, i1 false) + %24 = getelementptr inbounds ptr, ptr %23, i64 0 + %25 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 2) + %26 = getelementptr inbounds %main.N, ptr %25, i32 0, i32 0 + %27 = getelementptr inbounds %main.N, ptr %25, i32 0, i32 1 + store i8 1, ptr %26, align 1 + store i8 2, ptr %27, align 1 + store ptr %25, ptr %24, align 8 + %28 = load [1 x ptr], ptr %23, align 8 + %29 = load ptr, ptr @_llgo_main.K2, align 8 + %30 = extractvalue [1 x ptr] %28, 0 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %29, 0 + %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %31, ptr %30, 1 + %33 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %34 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %32, ptr %34, align 8 + %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %33, ptr %22, ptr %34) + store i64 100, ptr %35, align 4 + %36 = alloca [1 x ptr], align 8 + call void @llvm.memset(ptr %36, i8 0, i64 8, i1 false) + %37 = getelementptr inbounds ptr, ptr %36, i64 0 + %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 2) + %39 = getelementptr inbounds %main.N, ptr %38, i32 0, i32 0 + %40 = getelementptr inbounds %main.N, ptr %38, i32 0, i32 1 + store i8 3, ptr %39, align 1 + store i8 4, ptr %40, align 1 + store ptr %38, ptr %37, align 8 + %41 = load [1 x ptr], ptr %36, align 8 + %42 = load ptr, ptr @_llgo_main.K2, align 8 + %43 = extractvalue [1 x ptr] %41, 0 + %44 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %42, 0 + %45 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %44, ptr %43, 1 + %46 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %47 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %45, ptr %47, align 8 + %48 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %46, ptr %22, ptr %47) + store i64 200, ptr %48, align 4 + %49 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %50 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewMapIter"(ptr %49, ptr %22) + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_7, %_llgo_0 + %51 = call { i1, ptr, ptr } @"github.com/goplus/llgo/runtime/internal/runtime.MapIterNext"(ptr %50) + %52 = extractvalue { i1, ptr, ptr } %51, 0 + br i1 %52, label %_llgo_4, label %_llgo_5 + +_llgo_2: ; preds = %_llgo_6 + %53 = extractvalue { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } %64, 1 + %54 = extractvalue { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } %64, 2 + %55 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %53, 0 + %56 = load ptr, ptr @_llgo_main.K2, align 8 + %57 = icmp eq ptr %55, %56 + br i1 %57, label %_llgo_7, label %_llgo_8 + +_llgo_3: ; preds = %_llgo_6 + ret void + +_llgo_4: ; preds = %_llgo_1 + %58 = extractvalue { i1, ptr, ptr } %51, 1 + %59 = extractvalue { i1, ptr, ptr } %51, 2 + %60 = load %"github.com/goplus/llgo/runtime/internal/runtime.eface", ptr %58, align 8 + %61 = load i64, ptr %59, align 4 + %62 = insertvalue { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } { i1 true, %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, i64 undef }, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %60, 1 + %63 = insertvalue { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } %62, i64 %61, 2 + br label %_llgo_6 + +_llgo_5: ; preds = %_llgo_1 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %64 = phi { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } [ %63, %_llgo_4 ], [ zeroinitializer, %_llgo_5 ] + %65 = extractvalue { i1, %"github.com/goplus/llgo/runtime/internal/runtime.eface", i64 } %64, 0 + br i1 %65, label %_llgo_2, label %_llgo_3 + +_llgo_7: ; preds = %_llgo_2 + %66 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %53, 1 + %67 = getelementptr inbounds %main.N, ptr %66, i32 0, i32 0 + %68 = load i8, ptr %67, align 1 + %69 = sext i8 %68 to i64 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %69) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %54) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_8: ; preds = %_llgo_2 + %70 = load ptr, ptr @_llgo_string, align 8 + %71 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 21 }, ptr %71, align 8 + %72 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %70, 0 + %73 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %72, ptr %71, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %73) + unreachable +} + +define void @main.make5() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewChan"(i64 8, i64 0) + %1 = load ptr, ptr @"chan _llgo_int", align 8 + %2 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %1, 0 + %3 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %2, ptr %0, 1 + %4 = load ptr, ptr @"chan _llgo_int", align 8 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %4, 0 + %6 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %5, ptr %0, 1 + %7 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %3, %"github.com/goplus/llgo/runtime/internal/runtime.eface" %6) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %7) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %8 = load ptr, ptr @"chan _llgo_int", align 8 + %9 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 + %10 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr %9, i64 0) + %11 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store ptr %0, ptr %12, align 8 + %13 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %11, ptr %10, ptr %12) + store i64 100, ptr %13, align 4 + %14 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 + %15 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store ptr %0, ptr %15, align 8 + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %14, ptr %10, ptr %15) + store i64 200, ptr %16, align 4 + %17 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 + %18 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewMapIter"(ptr %17, ptr %10) + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_2, %_llgo_0 + %19 = call { i1, ptr, ptr } @"github.com/goplus/llgo/runtime/internal/runtime.MapIterNext"(ptr %18) + %20 = extractvalue { i1, ptr, ptr } %19, 0 + br i1 %20, label %_llgo_4, label %_llgo_5 + +_llgo_2: ; preds = %_llgo_6 + %21 = extractvalue { i1, ptr, i64 } %29, 1 + %22 = extractvalue { i1, ptr, i64 } %29, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %21) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %22) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_3: ; preds = %_llgo_6 + ret void + +_llgo_4: ; preds = %_llgo_1 + %23 = extractvalue { i1, ptr, ptr } %19, 1 + %24 = extractvalue { i1, ptr, ptr } %19, 2 + %25 = load ptr, ptr %23, align 8 + %26 = load i64, ptr %24, align 4 + %27 = insertvalue { i1, ptr, i64 } { i1 true, ptr undef, i64 undef }, ptr %25, 1 + %28 = insertvalue { i1, ptr, i64 } %27, i64 %26, 2 + br label %_llgo_6 + +_llgo_5: ; preds = %_llgo_1 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %29 = phi { i1, ptr, i64 } [ %28, %_llgo_4 ], [ zeroinitializer, %_llgo_5 ] + %30 = extractvalue { i1, ptr, i64 } %29, 0 + br i1 %30, label %_llgo_2, label %_llgo_3 +} + +define void @main.make6() { +_llgo_0: + %0 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr %0, i64 0) + %2 = load ptr, ptr @_llgo_main.M, align 8 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 1, ptr %3, align 4 + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %2, ptr %1, ptr %3) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 5 }, ptr %4, align 8 + %5 = load ptr, ptr @_llgo_main.M, align 8 + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewMapIter"(ptr %5, ptr %1) + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_2, %_llgo_0 + %7 = call { i1, ptr, ptr } @"github.com/goplus/llgo/runtime/internal/runtime.MapIterNext"(ptr %6) + %8 = extractvalue { i1, ptr, ptr } %7, 0 + br i1 %8, label %_llgo_4, label %_llgo_5 + +_llgo_2: ; preds = %_llgo_6 + %9 = extractvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %17, 1 + %10 = extractvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %17, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %9) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_3: ; preds = %_llgo_6 + ret void + +_llgo_4: ; preds = %_llgo_1 + %11 = extractvalue { i1, ptr, ptr } %7, 1 + %12 = extractvalue { i1, ptr, ptr } %7, 2 + %13 = load i64, ptr %11, align 4 + %14 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %12, align 8 + %15 = insertvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } { i1 true, i64 undef, %"github.com/goplus/llgo/runtime/internal/runtime.String" undef }, i64 %13, 1 + %16 = insertvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %15, %"github.com/goplus/llgo/runtime/internal/runtime.String" %14, 2 + br label %_llgo_6 + +_llgo_5: ; preds = %_llgo_1 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %17 = phi { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } [ %16, %_llgo_4 ], [ zeroinitializer, %_llgo_5 ] + %18 = extractvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %17, 0 + br i1 %18, label %_llgo_2, label %_llgo_3 +} + +define void @main.make7() { +_llgo_0: + %0 = load ptr, ptr @_llgo_main.N, align 8 + %1 = load ptr, ptr @"map[_llgo_main.N]_llgo_string", align 8 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr %1, i64 2) + %3 = load ptr, ptr @"map[_llgo_main.N]_llgo_string", align 8 + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 1, ptr %4, align 4 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %3, ptr %2, ptr %4) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 5 }, ptr %5, align 8 + %6 = load ptr, ptr @"map[_llgo_main.N]_llgo_string", align 8 + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 2, ptr %7, align 4 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %6, ptr %2, ptr %7) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 5 }, ptr %8, align 8 + %9 = load ptr, ptr @"map[_llgo_main.N]_llgo_string", align 8 + %10 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewMapIter"(ptr %9, ptr %2) + br label %_llgo_1 + +_llgo_1: ; preds = %_llgo_2, %_llgo_0 + %11 = call { i1, ptr, ptr } @"github.com/goplus/llgo/runtime/internal/runtime.MapIterNext"(ptr %10) + %12 = extractvalue { i1, ptr, ptr } %11, 0 + br i1 %12, label %_llgo_4, label %_llgo_5 + +_llgo_2: ; preds = %_llgo_6 + %13 = extractvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %25, 1 + %14 = extractvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %25, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %13) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %14) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + br label %_llgo_1 + +_llgo_3: ; preds = %_llgo_6 + %15 = load ptr, ptr @"map[_llgo_main.N]_llgo_string", align 8 + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 1, ptr %16, align 4 + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAccess1"(ptr %15, ptr %2, ptr %16) + %18 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %17, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %18) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void + +_llgo_4: ; preds = %_llgo_1 + %19 = extractvalue { i1, ptr, ptr } %11, 1 + %20 = extractvalue { i1, ptr, ptr } %11, 2 + %21 = load i64, ptr %19, align 4 + %22 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %20, align 8 + %23 = insertvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } { i1 true, i64 undef, %"github.com/goplus/llgo/runtime/internal/runtime.String" undef }, i64 %21, 1 + %24 = insertvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %23, %"github.com/goplus/llgo/runtime/internal/runtime.String" %22, 2 + br label %_llgo_6 + +_llgo_5: ; preds = %_llgo_1 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %25 = phi { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } [ %24, %_llgo_4 ], [ zeroinitializer, %_llgo_5 ] + %26 = extractvalue { i1, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String" } %25, 0 + br i1 %26, label %_llgo_2, label %_llgo_3 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_int, align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %2, ptr @_llgo_int, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @_llgo_string, align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %5, ptr @_llgo_string, align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %6 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + %7 = icmp eq ptr %6, null + br i1 %7, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %10 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %10) + %12 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 7 }, ptr %11, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %13 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %13) + %15 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, ptr %14, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %16) + %18 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 5 }, ptr %17, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %20 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 8 }, ptr %19, i64 200, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %21 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %22 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %21, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %12, ptr %22, align 8 + %23 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %21, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %15, ptr %23, align 8 + %24 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %21, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %18, ptr %24, align 8 + %25 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %21, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %20, ptr %25, align 8 + %26 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %21, 0 + %27 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %26, i64 4, 1 + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %27, i64 4, 2 + %29 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, i64 208, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %28) + %30 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr %8, ptr %9, ptr %29, i64 4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %30) + store ptr %30, ptr @"map[_llgo_int]_llgo_string", align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %31 = load ptr, ptr @"map[_llgo_string]_llgo_int", align 8 + %32 = icmp eq ptr %31, null + br i1 %32, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %33 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %34 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %36 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %35) + %37 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 7 }, ptr %36, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %38 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %39 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %38) + %40 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, ptr %39, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %41 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %42 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %41) + %43 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 5 }, ptr %42, i64 136, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %44 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %45 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 8 }, ptr %44, i64 200, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %46 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %47 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %46, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %37, ptr %47, align 8 + %48 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %46, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %40, ptr %48, align 8 + %49 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %46, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %43, ptr %49, align 8 + %50 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %46, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %45, ptr %50, align 8 + %51 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %46, 0 + %52 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %51, i64 4, 1 + %53 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %52, i64 4, 2 + %54 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, i64 208, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %53) + %55 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr %33, ptr %34, ptr %54, i64 12) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %55) + store ptr %55, ptr @"map[_llgo_string]_llgo_int", align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %56 = load ptr, ptr @_llgo_any, align 8 + %57 = icmp eq ptr %56, null + br i1 %57, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %58 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %59 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %58, 0 + %60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %59, i64 0, 1 + %61 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, i64 0, 2 + %62 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %61) + store ptr %62, ptr @_llgo_any, align 8 + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_8 + %63 = load ptr, ptr @"map[_llgo_any]_llgo_int", align 8 + %64 = icmp eq ptr %63, null + br i1 %64, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + %65 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %66 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %65, 0 + %67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %66, i64 0, 1 + %68 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %67, i64 0, 2 + %69 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %68) + %70 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %71 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %72 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %71) + %73 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 7 }, ptr %72, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %74 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %75 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %74, 0 + %76 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %75, i64 0, 1 + %77 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %76, i64 0, 2 + %78 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %77) + %79 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %78) + %80 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, ptr %79, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %81 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %82 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %81) + %83 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 5 }, ptr %82, i64 136, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %84 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %85 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 8 }, ptr %84, i64 200, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %86 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %87 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %86, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %73, ptr %87, align 8 + %88 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %86, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %80, ptr %88, align 8 + %89 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %86, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %83, ptr %89, align 8 + %90 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %86, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %85, ptr %90, align 8 + %91 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %86, 0 + %92 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %91, i64 4, 1 + %93 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %92, i64 4, 2 + %94 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, i64 208, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %93) + %95 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr %69, ptr %70, ptr %94, i64 24) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %95) + store ptr %95, ptr @"map[_llgo_any]_llgo_int", align 8 + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_10 + %96 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 2 }, i64 17, i64 8, i64 0, i64 0) + %97 = load ptr, ptr @_llgo_main.N1, align 8 + %98 = icmp eq ptr %97, null + br i1 %98, label %_llgo_13, label %_llgo_14 + +_llgo_13: ; preds = %_llgo_12 + store ptr %96, ptr @_llgo_main.N1, align 8 + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_12 + %99 = load ptr, ptr @"[1]_llgo_int", align 8 + %100 = icmp eq ptr %99, null + br i1 %100, label %_llgo_15, label %_llgo_16 + +_llgo_15: ; preds = %_llgo_14 + %101 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %102 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 1, ptr %101) + store ptr %102, ptr @"[1]_llgo_int", align 8 + br label %_llgo_16 + +_llgo_16: ; preds = %_llgo_15, %_llgo_14 + %103 = load ptr, ptr @"[1]_llgo_int", align 8 + br i1 %98, label %_llgo_17, label %_llgo_18 + +_llgo_17: ; preds = %_llgo_16 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %96, ptr %103, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_18 + +_llgo_18: ; preds = %_llgo_17, %_llgo_16 + %104 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @14, i64 1 }, i64 17, i64 2, i64 0, i64 0) + %105 = load ptr, ptr @_llgo_main.K, align 8 + %106 = icmp eq ptr %105, null + br i1 %106, label %_llgo_19, label %_llgo_20 + +_llgo_19: ; preds = %_llgo_18 + store ptr %104, ptr @_llgo_main.K, align 8 + br label %_llgo_20 + +_llgo_20: ; preds = %_llgo_19, %_llgo_18 + %107 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @15, i64 1 }, i64 25, i64 2, i64 0, i64 0) + %108 = load ptr, ptr @_llgo_main.N, align 8 + %109 = icmp eq ptr %108, null + br i1 %109, label %_llgo_21, label %_llgo_22 + +_llgo_21: ; preds = %_llgo_20 + store ptr %107, ptr @_llgo_main.N, align 8 + br label %_llgo_22 + +_llgo_22: ; preds = %_llgo_21, %_llgo_20 + %110 = load ptr, ptr @_llgo_int8, align 8 + %111 = icmp eq ptr %110, null + br i1 %111, label %_llgo_23, label %_llgo_24 + +_llgo_23: ; preds = %_llgo_22 + %112 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 35) + store ptr %112, ptr @_llgo_int8, align 8 + br label %_llgo_24 + +_llgo_24: ; preds = %_llgo_23, %_llgo_22 + %113 = load ptr, ptr @_llgo_int8, align 8 + %114 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 35) + %115 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @16, i64 2 }, ptr %114, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %116 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 35) + %117 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @17, i64 2 }, ptr %116, i64 1, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %118 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %119 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %118, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %115, ptr %119, align 8 + %120 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %118, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %117, ptr %120, align 8 + %121 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %118, 0 + %122 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %121, i64 2, 1 + %123 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %122, i64 2, 2 + %124 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, i64 2, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %123) + store ptr %124, ptr @"main.struct$e65EDK9vxC36Nz3YTgO1ulssLlNH03Bva_WWaCjH-4A", align 8 + %125 = load ptr, ptr @"main.struct$e65EDK9vxC36Nz3YTgO1ulssLlNH03Bva_WWaCjH-4A", align 8 + br i1 %109, label %_llgo_25, label %_llgo_26 + +_llgo_25: ; preds = %_llgo_24 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %107, ptr %125, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_26 + +_llgo_26: ; preds = %_llgo_25, %_llgo_24 + %126 = load ptr, ptr @_llgo_main.N, align 8 + %127 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @15, i64 1 }, i64 25, i64 2, i64 0, i64 0) + %128 = load ptr, ptr @"[1]_llgo_main.N", align 8 + %129 = icmp eq ptr %128, null + br i1 %129, label %_llgo_27, label %_llgo_28 + +_llgo_27: ; preds = %_llgo_26 + %130 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 1, ptr %127) + store ptr %130, ptr @"[1]_llgo_main.N", align 8 + br label %_llgo_28 + +_llgo_28: ; preds = %_llgo_27, %_llgo_26 + %131 = load ptr, ptr @"[1]_llgo_main.N", align 8 + br i1 %106, label %_llgo_29, label %_llgo_30 + +_llgo_29: ; preds = %_llgo_28 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %104, ptr %131, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_30 + +_llgo_30: ; preds = %_llgo_29, %_llgo_28 + %132 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @18, i64 2 }, i64 17, i64 8, i64 0, i64 0) + %133 = load ptr, ptr @_llgo_main.K2, align 8 + %134 = icmp eq ptr %133, null + br i1 %134, label %_llgo_31, label %_llgo_32 + +_llgo_31: ; preds = %_llgo_30 + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %132) + store ptr %132, ptr @_llgo_main.K2, align 8 + br label %_llgo_32 + +_llgo_32: ; preds = %_llgo_31, %_llgo_30 + %135 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @15, i64 1 }, i64 25, i64 2, i64 0, i64 0) + %136 = load ptr, ptr @"*_llgo_main.N", align 8 + %137 = icmp eq ptr %136, null + br i1 %137, label %_llgo_33, label %_llgo_34 + +_llgo_33: ; preds = %_llgo_32 + %138 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %135) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %138) + store ptr %138, ptr @"*_llgo_main.N", align 8 + br label %_llgo_34 + +_llgo_34: ; preds = %_llgo_33, %_llgo_32 + %139 = load ptr, ptr @"*_llgo_main.N", align 8 + %140 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @15, i64 1 }, i64 25, i64 2, i64 0, i64 0) + %141 = load ptr, ptr @"[1]*_llgo_main.N", align 8 + %142 = icmp eq ptr %141, null + br i1 %142, label %_llgo_35, label %_llgo_36 + +_llgo_35: ; preds = %_llgo_34 + %143 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %140) + %144 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 1, ptr %143) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %144) + store ptr %144, ptr @"[1]*_llgo_main.N", align 8 + br label %_llgo_36 + +_llgo_36: ; preds = %_llgo_35, %_llgo_34 + %145 = load ptr, ptr @"[1]*_llgo_main.N", align 8 + br i1 %134, label %_llgo_37, label %_llgo_38 + +_llgo_37: ; preds = %_llgo_36 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %132, ptr %145, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_38 + +_llgo_38: ; preds = %_llgo_37, %_llgo_36 + %146 = load ptr, ptr @"chan _llgo_int", align 8 + %147 = icmp eq ptr %146, null + br i1 %147, label %_llgo_39, label %_llgo_40 + +_llgo_39: ; preds = %_llgo_38 + %148 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %149 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ChanOf"(i64 3, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr %148) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %149) + store ptr %149, ptr @"chan _llgo_int", align 8 + br label %_llgo_40 + +_llgo_40: ; preds = %_llgo_39, %_llgo_38 + %150 = load ptr, ptr @"map[chan _llgo_int]_llgo_int", align 8 + %151 = icmp eq ptr %150, null + br i1 %151, label %_llgo_41, label %_llgo_42 + +_llgo_41: ; preds = %_llgo_40 + %152 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %153 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ChanOf"(i64 3, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr %152) + %154 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %155 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %156 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %155) + %157 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 7 }, ptr %156, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %158 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %159 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ChanOf"(i64 3, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @19, i64 4 }, ptr %158) + %160 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %159) + %161 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, ptr %160, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %162 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %163 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %162) + %164 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 5 }, ptr %163, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %165 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %166 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 8 }, ptr %165, i64 136, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %167 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %168 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %167, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %157, ptr %168, align 8 + %169 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %167, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %161, ptr %169, align 8 + %170 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %167, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %164, ptr %170, align 8 + %171 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %167, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %166, ptr %171, align 8 + %172 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %167, 0 + %173 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %172, i64 4, 1 + %174 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %173, i64 4, 2 + %175 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, i64 144, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %174) + %176 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr %153, ptr %154, ptr %175, i64 4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %176) + store ptr %176, ptr @"map[chan _llgo_int]_llgo_int", align 8 + br label %_llgo_42 + +_llgo_42: ; preds = %_llgo_41, %_llgo_40 + %177 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @20, i64 1 }, i64 21, i64 8, i64 0, i64 0) + %178 = load ptr, ptr @_llgo_main.M, align 8 + %179 = icmp eq ptr %178, null + br i1 %179, label %_llgo_43, label %_llgo_44 + +_llgo_43: ; preds = %_llgo_42 + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %177) + store ptr %177, ptr @_llgo_main.M, align 8 + br label %_llgo_44 + +_llgo_44: ; preds = %_llgo_43, %_llgo_42 + %180 = load ptr, ptr @"map[_llgo_int]_llgo_string", align 8 + br i1 %179, label %_llgo_45, label %_llgo_46 + +_llgo_45: ; preds = %_llgo_44 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %177, ptr %180, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_46 + +_llgo_46: ; preds = %_llgo_45, %_llgo_44 + %181 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @15, i64 1 }, i64 2, i64 8, i64 0, i64 0) + %182 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @15, i64 1 }, i64 2, i64 8, i64 0, i64 0) + %183 = load ptr, ptr @"map[_llgo_main.N]_llgo_string", align 8 + %184 = icmp eq ptr %183, null + br i1 %184, label %_llgo_47, label %_llgo_48 + +_llgo_47: ; preds = %_llgo_46 + %185 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %186 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %187 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %186) + %188 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 7 }, ptr %187, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %189 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %182) + %190 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, ptr %189, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %191 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %192 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %191) + %193 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 5 }, ptr %192, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %194 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %195 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 8 }, ptr %194, i64 200, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %196 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %197 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %196, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %188, ptr %197, align 8 + %198 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %196, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %190, ptr %198, align 8 + %199 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %196, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %193, ptr %199, align 8 + %200 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %196, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %195, ptr %200, align 8 + %201 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %196, 0 + %202 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %201, i64 4, 1 + %203 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %202, i64 4, 2 + %204 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, i64 208, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %203) + %205 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr %181, ptr %185, ptr %204, i64 4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %205) + store ptr %205, ptr @"map[_llgo_main.N]_llgo_string", align 8 + br label %_llgo_48 + +_llgo_48: ; preds = %_llgo_47, %_llgo_46 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr, ptr, ptr, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr, ptr, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAccess1"(ptr, ptr, ptr) + +declare i64 @"github.com/goplus/llgo/runtime/internal/runtime.MapLen"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewMapIter"(ptr, ptr) + +declare { i1, ptr, ptr } @"github.com/goplus/llgo/runtime/internal/runtime.MapIterNext"(ptr) + +declare { ptr, i1 } @"github.com/goplus/llgo/runtime/internal/runtime.MapAccess2"(ptr, ptr, ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.MapDelete"(ptr, ptr, ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.EfaceEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.eface", %"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewChan"(i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.ChanOf"(i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr) + +attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testrt/map/in.go b/compiler/cl/_testrt/map/in.go similarity index 100% rename from cl/_testrt/map/in.go rename to compiler/cl/_testrt/map/in.go diff --git a/compiler/cl/_testrt/map/out.ll b/compiler/cl/_testrt/map/out.ll new file mode 100644 index 00000000..6127be8a --- /dev/null +++ b/compiler/cl/_testrt/map/out.ll @@ -0,0 +1,136 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@_llgo_int = linkonce global ptr null, align 8 +@"map[_llgo_int]_llgo_int" = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [7 x i8] c"topbits", align 1 +@1 = private unnamed_addr constant [4 x i8] c"keys", align 1 +@2 = private unnamed_addr constant [5 x i8] c"elems", align 1 +@3 = private unnamed_addr constant [8 x i8] c"overflow", align 1 +@4 = private unnamed_addr constant [4 x i8] c"main", align 1 +@5 = private unnamed_addr constant [10 x i8] c"Hello %d\0A\00", align 1 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = load ptr, ptr @_llgo_int, align 8 + %3 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr %3, i64 2) + %5 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 23, ptr %6, align 4 + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %5, ptr %4, ptr %6) + store i64 100, ptr %7, align 4 + %8 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 7, ptr %9, align 4 + %10 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %8, ptr %4, ptr %9) + store i64 29, ptr %10, align 4 + %11 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + store i64 23, ptr %12, align 4 + %13 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAccess1"(ptr %11, ptr %4, ptr %12) + %14 = load i64, ptr %13, align 4 + %15 = call i32 (ptr, ...) @printf(ptr @5, i64 %14) + ret i32 0 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_int, align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %2, ptr @_llgo_int, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @"map[_llgo_int]_llgo_int", align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %8 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %7) + %9 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 7 }, ptr %8, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %10 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %10) + %12 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, ptr %11, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %13 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %13) + %15 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 5 }, ptr %14, i64 72, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %17 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 8 }, ptr %16, i64 136, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %18 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %19 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %18, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %9, ptr %19, align 8 + %20 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %18, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %12, ptr %20, align 8 + %21 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %18, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %15, ptr %21, align 8 + %22 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %18, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %17, ptr %22, align 8 + %23 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %18, 0 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %23, i64 4, 1 + %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %24, i64 4, 2 + %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 4 }, i64 144, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %25) + %27 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr %5, ptr %6, ptr %26, i64 4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %27) + store ptr %27, ptr @"map[_llgo_int]_llgo_int", align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr, ptr, ptr, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr, ptr, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAccess1"(ptr, ptr, ptr) + +declare i32 @printf(ptr, ...) diff --git a/cl/_testrt/mask/in.go b/compiler/cl/_testrt/mask/in.go similarity index 100% rename from cl/_testrt/mask/in.go rename to compiler/cl/_testrt/mask/in.go diff --git a/cl/_testrt/mask/out.ll b/compiler/cl/_testrt/mask/out.ll similarity index 50% rename from cl/_testrt/mask/out.ll rename to compiler/cl/_testrt/mask/out.ll index 0404fd58..96f65e87 100644 --- a/cl/_testrt/mask/out.ll +++ b/compiler/cl/_testrt/mask/out.ll @@ -22,46 +22,46 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call i32 @main.mask(i8 1) %3 = sext i32 %2 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %3) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %4 = call i64 @main.mask_shl(i64 127, i64 5) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %4) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %5 = call i8 @main.mask_shl8(i8 127, i64 5) %6 = sext i8 %5 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %6) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %6) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %7 = call i8 @main.mask_shl8u(i8 127, i64 5) %8 = zext i8 %7 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %8) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %8) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %9 = call i8 @main.mask_shl8(i8 127, i64 16) %10 = sext i8 %9 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %10) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %11 = call i8 @main.mask_shl8u(i8 127, i64 16) %12 = zext i8 %11 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %12) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %12) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %13 = call i64 @main.mask_shr(i64 127, i64 5) - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %13) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %13) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %14 = call i8 @main.mask_shr8(i8 127, i64 5) %15 = sext i8 %14 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %15) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %15) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %16 = call i8 @main.mask_shr8u(i8 127, i64 5) %17 = zext i8 %16 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64 %17) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 %17) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) %18 = call i8 @main.mask_shr8(i8 127, i64 16) %19 = sext i8 %18 to i64 - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 %19) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %19) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) ret i32 0 } @@ -77,7 +77,7 @@ _llgo_0: define i64 @main.mask_shl(i64 %0, i64 %1) { _llgo_0: %2 = icmp slt i64 %1, 0 - call void @"github.com/goplus/llgo/internal/runtime.AssertNegativeShift"(i1 %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertNegativeShift"(i1 %2) %3 = icmp uge i64 %1, 64 %4 = shl i64 %0, %1 %5 = select i1 %3, i64 0, i64 %4 @@ -87,7 +87,7 @@ _llgo_0: define i8 @main.mask_shl8(i8 %0, i64 %1) { _llgo_0: %2 = icmp slt i64 %1, 0 - call void @"github.com/goplus/llgo/internal/runtime.AssertNegativeShift"(i1 %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertNegativeShift"(i1 %2) %3 = trunc i64 %1 to i8 %4 = icmp uge i8 %3, 8 %5 = shl i8 %0, %3 @@ -98,7 +98,7 @@ _llgo_0: define i8 @main.mask_shl8u(i8 %0, i64 %1) { _llgo_0: %2 = icmp slt i64 %1, 0 - call void @"github.com/goplus/llgo/internal/runtime.AssertNegativeShift"(i1 %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertNegativeShift"(i1 %2) %3 = trunc i64 %1 to i8 %4 = icmp uge i8 %3, 8 %5 = shl i8 %0, %3 @@ -109,7 +109,7 @@ _llgo_0: define i64 @main.mask_shr(i64 %0, i64 %1) { _llgo_0: %2 = icmp slt i64 %1, 0 - call void @"github.com/goplus/llgo/internal/runtime.AssertNegativeShift"(i1 %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertNegativeShift"(i1 %2) %3 = icmp uge i64 %1, 64 %4 = select i1 %3, i64 63, i64 %1 %5 = ashr i64 %0, %4 @@ -119,7 +119,7 @@ _llgo_0: define i8 @main.mask_shr8(i8 %0, i64 %1) { _llgo_0: %2 = icmp slt i64 %1, 0 - call void @"github.com/goplus/llgo/internal/runtime.AssertNegativeShift"(i1 %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertNegativeShift"(i1 %2) %3 = trunc i64 %1 to i8 %4 = icmp uge i8 %3, 8 %5 = select i1 %4, i8 7, i8 %3 @@ -130,7 +130,7 @@ _llgo_0: define i8 @main.mask_shr8u(i8 %0, i64 %1) { _llgo_0: %2 = icmp slt i64 %1, 0 - call void @"github.com/goplus/llgo/internal/runtime.AssertNegativeShift"(i1 %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertNegativeShift"(i1 %2) %3 = trunc i64 %1 to i8 %4 = icmp uge i8 %3, 8 %5 = lshr i8 %0, %3 @@ -138,12 +138,12 @@ _llgo_0: ret i8 %6 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) -declare void @"github.com/goplus/llgo/internal/runtime.PrintUint"(i64) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.AssertNegativeShift"(i1) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertNegativeShift"(i1) diff --git a/cl/_testrt/named/in.go b/compiler/cl/_testrt/named/in.go similarity index 100% rename from cl/_testrt/named/in.go rename to compiler/cl/_testrt/named/in.go diff --git a/cl/_testrt/named/out.ll b/compiler/cl/_testrt/named/out.ll similarity index 86% rename from cl/_testrt/named/out.ll rename to compiler/cl/_testrt/named/out.ll index c92404bb..8dbacda6 100644 --- a/cl/_testrt/named/out.ll +++ b/compiler/cl/_testrt/named/out.ll @@ -27,16 +27,16 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 64) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 64) store ptr %3, ptr %2, align 8 %4 = load ptr, ptr %2, align 8 %5 = getelementptr inbounds %main.mspan, ptr %4, i32 0, i32 4 store i64 100, ptr %5, align 4 %6 = load ptr, ptr %2, align 8 - %7 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 64) + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 64) %8 = getelementptr inbounds %main.mspan, ptr %6, i32 0, i32 0 store ptr %7, ptr %8, align 8 %9 = load ptr, ptr %2, align 8 @@ -45,13 +45,13 @@ _llgo_0: %12 = getelementptr inbounds %main.mspan, ptr %11, i32 0, i32 4 store i64 200, ptr %12, align 4 %13 = load ptr, ptr %2, align 8 - %14 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 16) + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) %15 = getelementptr inbounds %main.mspan, ptr %13, i32 0, i32 2 store ptr %14, ptr %15, align 8 %16 = load ptr, ptr %2, align 8 %17 = getelementptr inbounds %main.mspan, ptr %16, i32 0, i32 2 %18 = load ptr, ptr %17, align 8 - %19 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 64) + %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 64) %20 = getelementptr inbounds %main.mSpanList, ptr %18, i32 0, i32 1 store ptr %19, ptr %20, align 8 %21 = load ptr, ptr %2, align 8 @@ -71,7 +71,7 @@ _llgo_0: %33 = getelementptr inbounds %main.minfo, ptr %31, i32 0, i32 0 store ptr %32, ptr %33, align 8 %34 = load ptr, ptr %2, align 8 - %35 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 8) + %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) %36 = getelementptr inbounds { ptr }, ptr %35, i32 0, i32 0 store ptr %2, ptr %36, align 8 %37 = insertvalue { ptr, ptr } { ptr @"main.main$1", ptr undef }, ptr %35, 1 @@ -129,10 +129,10 @@ _llgo_0: ret i64 %7 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) declare i32 @printf(ptr, ...) diff --git a/cl/_testrt/nextblock/in.go b/compiler/cl/_testrt/nextblock/in.go similarity index 100% rename from cl/_testrt/nextblock/in.go rename to compiler/cl/_testrt/nextblock/in.go diff --git a/cl/_testrt/nextblock/out.ll b/compiler/cl/_testrt/nextblock/out.ll similarity index 100% rename from cl/_testrt/nextblock/out.ll rename to compiler/cl/_testrt/nextblock/out.ll diff --git a/cl/_testrt/panic/in.go b/compiler/cl/_testrt/panic/in.go similarity index 100% rename from cl/_testrt/panic/in.go rename to compiler/cl/_testrt/panic/in.go diff --git a/cl/_testrt/panic/out.ll b/compiler/cl/_testrt/panic/out.ll similarity index 52% rename from cl/_testrt/panic/out.ll rename to compiler/cl/_testrt/panic/out.ll index 30432a7f..196bc682 100644 --- a/cl/_testrt/panic/out.ll +++ b/compiler/cl/_testrt/panic/out.ll @@ -1,8 +1,8 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @@ -28,18 +28,18 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = load ptr, ptr @_llgo_string, align 8 - %3 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64 16) - store %"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 13 }, ptr %3, align 8 - %4 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" undef, ptr %2, 0 - %5 = insertvalue %"github.com/goplus/llgo/internal/runtime.eface" %4, ptr %3, 1 - call void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface" %5) + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 13 }, ptr %3, align 8 + %4 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %2, 0 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %4, ptr %3, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %5) unreachable } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() define void @"main.init$after"() { _llgo_0: @@ -48,7 +48,7 @@ _llgo_0: br i1 %1, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64 24) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) store ptr %2, ptr @_llgo_string, align 8 br label %_llgo_2 @@ -56,8 +56,8 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 ret void } -declare ptr @"github.com/goplus/llgo/internal/runtime.Basic"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocU"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.Panic"(%"github.com/goplus/llgo/internal/runtime.eface") +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") diff --git a/cl/_testrt/qsort/in.go b/compiler/cl/_testrt/qsort/in.go similarity index 100% rename from cl/_testrt/qsort/in.go rename to compiler/cl/_testrt/qsort/in.go diff --git a/cl/_testrt/qsort/out.ll b/compiler/cl/_testrt/qsort/out.ll similarity index 82% rename from cl/_testrt/qsort/out.ll rename to compiler/cl/_testrt/qsort/out.ll index 7806fe1e..8f4b7ff4 100644 --- a/cl/_testrt/qsort/out.ll +++ b/compiler/cl/_testrt/qsort/out.ll @@ -23,9 +23,9 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 40) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 40) %3 = getelementptr inbounds i64, ptr %2, i64 0 %4 = getelementptr inbounds i64, ptr %2, i64 1 %5 = getelementptr inbounds i64, ptr %2, i64 2 @@ -51,7 +51,7 @@ _llgo_2: ; preds = %_llgo_1 %13 = icmp slt i64 %11, 0 %14 = icmp sge i64 %11, 5 %15 = or i1 %14, %13 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %15) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %15) %16 = getelementptr inbounds i64, ptr %2, i64 %11 %17 = load i64, ptr %16, align 4 %18 = call i32 (ptr, ...) @printf(ptr @0, i64 %17) @@ -70,12 +70,12 @@ _llgo_0: ret i32 %5 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) declare void @qsort(ptr, i64, i64, ptr) -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) declare i32 @printf(ptr, ...) diff --git a/cl/_testrt/qsortfn/in.go b/compiler/cl/_testrt/qsortfn/in.go similarity index 98% rename from cl/_testrt/qsortfn/in.go rename to compiler/cl/_testrt/qsortfn/in.go index dfc9c058..58072352 100644 --- a/cl/_testrt/qsortfn/in.go +++ b/compiler/cl/_testrt/qsortfn/in.go @@ -4,7 +4,7 @@ import ( "unsafe" "github.com/goplus/llgo/c" - q "github.com/goplus/llgo/cl/internal/qsort" + q "github.com/goplus/llgo/compiler/cl/_testrt/qsortfn/qsort" ) //llgo:type C diff --git a/cl/_testrt/qsortfn/out.ll b/compiler/cl/_testrt/qsortfn/out.ll similarity index 89% rename from cl/_testrt/qsortfn/out.ll rename to compiler/cl/_testrt/qsortfn/out.ll index 8f862d90..80bc08eb 100644 --- a/cl/_testrt/qsortfn/out.ll +++ b/compiler/cl/_testrt/qsortfn/out.ll @@ -42,7 +42,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() call void @main.sort1a() call void @main.sort1b() @@ -60,7 +60,7 @@ _llgo_0: define void @main.sort1a() { _llgo_0: %0 = call i32 (ptr, ...) @printf(ptr @0) - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 40) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 40) %2 = getelementptr inbounds i64, ptr %1, i64 0 %3 = getelementptr inbounds i64, ptr %1, i64 1 %4 = getelementptr inbounds i64, ptr %1, i64 2 @@ -86,7 +86,7 @@ _llgo_2: ; preds = %_llgo_1 %12 = icmp slt i64 %10, 0 %13 = icmp sge i64 %10, 5 %14 = or i1 %13, %12 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %14) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %14) %15 = getelementptr inbounds i64, ptr %1, i64 %10 %16 = load i64, ptr %15, align 4 %17 = call i32 (ptr, ...) @printf(ptr @1, i64 %16) @@ -108,7 +108,7 @@ _llgo_0: define void @main.sort1b() { _llgo_0: %0 = call i32 (ptr, ...) @printf(ptr @2) - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 40) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 40) %2 = getelementptr inbounds i64, ptr %1, i64 0 %3 = getelementptr inbounds i64, ptr %1, i64 1 %4 = getelementptr inbounds i64, ptr %1, i64 2 @@ -134,7 +134,7 @@ _llgo_2: ; preds = %_llgo_1 %12 = icmp slt i64 %10, 0 %13 = icmp sge i64 %10, 5 %14 = or i1 %13, %12 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %14) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %14) %15 = getelementptr inbounds i64, ptr %1, i64 %10 %16 = load i64, ptr %15, align 4 %17 = call i32 (ptr, ...) @printf(ptr @3, i64 %16) @@ -156,7 +156,7 @@ _llgo_0: define void @main.sort2a() { _llgo_0: %0 = call i32 (ptr, ...) @printf(ptr @4) - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 40) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 40) %2 = getelementptr inbounds i64, ptr %1, i64 0 %3 = getelementptr inbounds i64, ptr %1, i64 1 %4 = getelementptr inbounds i64, ptr %1, i64 2 @@ -182,7 +182,7 @@ _llgo_2: ; preds = %_llgo_1 %12 = icmp slt i64 %10, 0 %13 = icmp sge i64 %10, 5 %14 = or i1 %13, %12 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %14) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %14) %15 = getelementptr inbounds i64, ptr %1, i64 %10 %16 = load i64, ptr %15, align 4 %17 = call i32 (ptr, ...) @printf(ptr @5, i64 %16) @@ -204,7 +204,7 @@ _llgo_0: define void @main.sort2b() { _llgo_0: %0 = call i32 (ptr, ...) @printf(ptr @6) - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 40) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 40) %2 = getelementptr inbounds i64, ptr %1, i64 0 %3 = getelementptr inbounds i64, ptr %1, i64 1 %4 = getelementptr inbounds i64, ptr %1, i64 2 @@ -230,7 +230,7 @@ _llgo_2: ; preds = %_llgo_1 %12 = icmp slt i64 %10, 0 %13 = icmp sge i64 %10, 5 %14 = or i1 %13, %12 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %14) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %14) %15 = getelementptr inbounds i64, ptr %1, i64 %10 %16 = load i64, ptr %15, align 4 %17 = call i32 (ptr, ...) @printf(ptr @7, i64 %16) @@ -252,7 +252,7 @@ _llgo_0: define void @main.sort3a() { _llgo_0: %0 = call i32 (ptr, ...) @printf(ptr @8) - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 40) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 40) %2 = getelementptr inbounds i64, ptr %1, i64 0 %3 = getelementptr inbounds i64, ptr %1, i64 1 %4 = getelementptr inbounds i64, ptr %1, i64 2 @@ -278,7 +278,7 @@ _llgo_2: ; preds = %_llgo_1 %12 = icmp slt i64 %10, 0 %13 = icmp sge i64 %10, 5 %14 = or i1 %13, %12 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %14) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %14) %15 = getelementptr inbounds i64, ptr %1, i64 %10 %16 = load i64, ptr %15, align 4 %17 = call i32 (ptr, ...) @printf(ptr @9, i64 %16) @@ -300,7 +300,7 @@ _llgo_0: define void @main.sort3b() { _llgo_0: %0 = call i32 (ptr, ...) @printf(ptr @10) - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 40) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 40) %2 = getelementptr inbounds i64, ptr %1, i64 0 %3 = getelementptr inbounds i64, ptr %1, i64 1 %4 = getelementptr inbounds i64, ptr %1, i64 2 @@ -326,7 +326,7 @@ _llgo_2: ; preds = %_llgo_1 %12 = icmp slt i64 %10, 0 %13 = icmp sge i64 %10, 5 %14 = or i1 %13, %12 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %14) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %14) %15 = getelementptr inbounds i64, ptr %1, i64 %10 %16 = load i64, ptr %15, align 4 %17 = call i32 (ptr, ...) @printf(ptr @11, i64 %16) @@ -348,7 +348,7 @@ _llgo_0: define void @main.sort4a() { _llgo_0: %0 = call i32 (ptr, ...) @printf(ptr @12) - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 40) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 40) %2 = getelementptr inbounds i64, ptr %1, i64 0 %3 = getelementptr inbounds i64, ptr %1, i64 1 %4 = getelementptr inbounds i64, ptr %1, i64 2 @@ -374,7 +374,7 @@ _llgo_2: ; preds = %_llgo_1 %12 = icmp slt i64 %10, 0 %13 = icmp sge i64 %10, 5 %14 = or i1 %13, %12 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %14) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %14) %15 = getelementptr inbounds i64, ptr %1, i64 %10 %16 = load i64, ptr %15, align 4 %17 = call i32 (ptr, ...) @printf(ptr @13, i64 %16) @@ -396,7 +396,7 @@ _llgo_0: define void @main.sort4b() { _llgo_0: %0 = call i32 (ptr, ...) @printf(ptr @14) - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 40) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 40) %2 = getelementptr inbounds i64, ptr %1, i64 0 %3 = getelementptr inbounds i64, ptr %1, i64 1 %4 = getelementptr inbounds i64, ptr %1, i64 2 @@ -422,7 +422,7 @@ _llgo_2: ; preds = %_llgo_1 %12 = icmp slt i64 %10, 0 %13 = icmp sge i64 %10, 5 %14 = or i1 %13, %12 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %14) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %14) %15 = getelementptr inbounds i64, ptr %1, i64 %10 %16 = load i64, ptr %15, align 4 %17 = call i32 (ptr, ...) @printf(ptr @15, i64 %16) @@ -444,7 +444,7 @@ _llgo_0: define void @main.sort5a() { _llgo_0: %0 = call i32 (ptr, ...) @printf(ptr @16) - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 40) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 40) %2 = getelementptr inbounds i64, ptr %1, i64 0 %3 = getelementptr inbounds i64, ptr %1, i64 1 %4 = getelementptr inbounds i64, ptr %1, i64 2 @@ -470,7 +470,7 @@ _llgo_2: ; preds = %_llgo_1 %12 = icmp slt i64 %10, 0 %13 = icmp sge i64 %10, 5 %14 = or i1 %13, %12 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %14) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %14) %15 = getelementptr inbounds i64, ptr %1, i64 %10 %16 = load i64, ptr %15, align 4 %17 = call i32 (ptr, ...) @printf(ptr @17, i64 %16) @@ -492,7 +492,7 @@ _llgo_0: define void @main.sort5b() { _llgo_0: %0 = call i32 (ptr, ...) @printf(ptr @18) - %1 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 40) + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 40) %2 = getelementptr inbounds i64, ptr %1, i64 0 %3 = getelementptr inbounds i64, ptr %1, i64 1 %4 = getelementptr inbounds i64, ptr %1, i64 2 @@ -518,7 +518,7 @@ _llgo_2: ; preds = %_llgo_1 %12 = icmp slt i64 %10, 0 %13 = icmp sge i64 %10, 5 %14 = or i1 %13, %12 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %14) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %14) %15 = getelementptr inbounds i64, ptr %1, i64 %10 %16 = load i64, ptr %15, align 4 %17 = call i32 (ptr, ...) @printf(ptr @19, i64 %16) @@ -537,12 +537,12 @@ _llgo_0: ret i32 %5 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare i32 @printf(ptr, ...) -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) declare void @qsort(ptr, i64, i64, ptr) -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) diff --git a/cl/internal/qsort/qsort.go b/compiler/cl/_testrt/qsortfn/qsort/qsort.go similarity index 100% rename from cl/internal/qsort/qsort.go rename to compiler/cl/_testrt/qsortfn/qsort/qsort.go diff --git a/cl/_testrt/result/in.go b/compiler/cl/_testrt/result/in.go similarity index 100% rename from cl/_testrt/result/in.go rename to compiler/cl/_testrt/result/in.go diff --git a/cl/_testrt/result/out.ll b/compiler/cl/_testrt/result/out.ll similarity index 95% rename from cl/_testrt/result/out.ll rename to compiler/cl/_testrt/result/out.ll index 268460b0..a8a5e1cf 100644 --- a/cl/_testrt/result/out.ll +++ b/compiler/cl/_testrt/result/out.ll @@ -47,7 +47,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call { ptr, ptr } @"main.main$1"() %3 = extractvalue { ptr, ptr } %2, 1 @@ -93,7 +93,7 @@ _llgo_0: ret i64 %3 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare i32 @printf(ptr, ...) diff --git a/cl/_testrt/slice2array/in.go b/compiler/cl/_testrt/slice2array/in.go similarity index 100% rename from cl/_testrt/slice2array/in.go rename to compiler/cl/_testrt/slice2array/in.go diff --git a/cl/_testrt/slice2array/out.ll b/compiler/cl/_testrt/slice2array/out.ll similarity index 56% rename from cl/_testrt/slice2array/out.ll rename to compiler/cl/_testrt/slice2array/out.ll index c0b01ea5..404e9ce5 100644 --- a/cl/_testrt/slice2array/out.ll +++ b/compiler/cl/_testrt/slice2array/out.ll @@ -1,7 +1,7 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @@ -24,9 +24,9 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 4) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 4) %3 = getelementptr inbounds i8, ptr %2, i64 0 %4 = getelementptr inbounds i8, ptr %2, i64 1 %5 = getelementptr inbounds i8, ptr %2, i64 2 @@ -35,20 +35,20 @@ _llgo_0: store i8 2, ptr %4, align 1 store i8 3, ptr %5, align 1 store i8 4, ptr %6, align 1 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %2, 0 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %7, i64 4, 1 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %8, i64 4, 2 - %10 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 1 + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %2, 0 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %7, i64 4, 1 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %8, i64 4, 2 + %10 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 1 %11 = icmp slt i64 %10, 4 br i1 %11, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - %12 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 1 - call void @"github.com/goplus/llgo/internal/runtime.PanicSliceConvert"(i64 %12, i64 4) + %12 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PanicSliceConvert"(i64 %12, i64 4) br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 - %13 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %9, 0 + %13 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9, 0 %14 = load [4 x i8], ptr %2, align 1 %15 = load [4 x i8], ptr %13, align 1 %16 = extractvalue [4 x i8] %14, 0 @@ -67,22 +67,22 @@ _llgo_2: ; preds = %_llgo_1, %_llgo_0 %29 = extractvalue [4 x i8] %15, 3 %30 = icmp eq i8 %28, %29 %31 = and i1 %27, %30 - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %31) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) - %32 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %2, 0 - %33 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %32, i64 4, 1 - %34 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %33, i64 4, 2 - %35 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %34, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %31) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %2, 0 + %33 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %32, i64 4, 1 + %34 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %33, i64 4, 2 + %35 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %34, 1 %36 = icmp slt i64 %35, 2 br i1 %36, label %_llgo_3, label %_llgo_4 _llgo_3: ; preds = %_llgo_2 - %37 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %34, 1 - call void @"github.com/goplus/llgo/internal/runtime.PanicSliceConvert"(i64 %37, i64 2) + %37 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %34, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PanicSliceConvert"(i64 %37, i64 2) br label %_llgo_4 _llgo_4: ; preds = %_llgo_3, %_llgo_2 - %38 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %34, 0 + %38 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %34, 0 %39 = load [2 x i8], ptr %38, align 1 %40 = alloca [2 x i8], align 1 call void @llvm.memset(ptr %40, i8 0, i64 2, i1 false) @@ -99,20 +99,20 @@ _llgo_4: ; preds = %_llgo_3, %_llgo_2 %49 = extractvalue [2 x i8] %43, 1 %50 = icmp eq i8 %48, %49 %51 = and i1 %47, %50 - call void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1 %51) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %51) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.PanicSliceConvert"(i64, i64) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PanicSliceConvert"(i64, i64) -declare void @"github.com/goplus/llgo/internal/runtime.PrintBool"(i1) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1) -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 diff --git a/cl/_testrt/slicelen/in.go b/compiler/cl/_testrt/slicelen/in.go similarity index 100% rename from cl/_testrt/slicelen/in.go rename to compiler/cl/_testrt/slicelen/in.go diff --git a/cl/_testrt/slicelen/out.ll b/compiler/cl/_testrt/slicelen/out.ll similarity index 52% rename from cl/_testrt/slicelen/out.ll rename to compiler/cl/_testrt/slicelen/out.ll index 5edb825f..76d8edf6 100644 --- a/cl/_testrt/slicelen/out.ll +++ b/compiler/cl/_testrt/slicelen/out.ll @@ -1,7 +1,7 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @@ -25,25 +25,25 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - call void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64 0) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 0) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) br i1 false, label %_llgo_1, label %_llgo_2 _llgo_1: ; preds = %_llgo_0 - call void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String" { ptr @0, i64 7 }) - call void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8 10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 7 }) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) br label %_llgo_2 _llgo_2: ; preds = %_llgo_1, %_llgo_0 ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare void @"github.com/goplus/llgo/internal/runtime.PrintInt"(i64) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) -declare void @"github.com/goplus/llgo/internal/runtime.PrintByte"(i8) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) -declare void @"github.com/goplus/llgo/internal/runtime.PrintString"(%"github.com/goplus/llgo/internal/runtime.String") +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") diff --git a/cl/_testrt/strlen/in.go b/compiler/cl/_testrt/strlen/in.go similarity index 100% rename from cl/_testrt/strlen/in.go rename to compiler/cl/_testrt/strlen/in.go diff --git a/cl/_testrt/strlen/out.ll b/compiler/cl/_testrt/strlen/out.ll similarity index 79% rename from cl/_testrt/strlen/out.ll rename to compiler/cl/_testrt/strlen/out.ll index b6339870..fd0f7543 100644 --- a/cl/_testrt/strlen/out.ll +++ b/compiler/cl/_testrt/strlen/out.ll @@ -1,9 +1,9 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } -@"github.com/goplus/llgo/internal/runtime.cgoAlwaysFalse" = external global i1, align 1 +@"github.com/goplus/llgo/runtime/internal/runtime.cgoAlwaysFalse" = external global i1, align 1 @main.format = global [10 x i8] zeroinitializer, align 1 @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @@ -14,9 +14,9 @@ _llgo_0: ret ptr %0 } -declare void @runtime.cgoUse(%"github.com/goplus/llgo/internal/runtime.eface") +declare void @runtime.cgoUse(%"github.com/goplus/llgo/runtime/internal/runtime.eface") -declare void @runtime.cgoCheckResult(%"github.com/goplus/llgo/internal/runtime.eface") +declare void @main._cgoCheckResult(%"github.com/goplus/llgo/runtime/internal/runtime.eface") define void @main.init() { _llgo_0: @@ -46,7 +46,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call i32 @strlen(ptr @main.format) call void (ptr, ...) @printf(ptr @main.format, i32 %2) @@ -55,7 +55,7 @@ _llgo_0: declare void @syscall.init() -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare i32 @strlen(ptr) diff --git a/cl/_testrt/struct/in.go b/compiler/cl/_testrt/struct/in.go similarity index 100% rename from cl/_testrt/struct/in.go rename to compiler/cl/_testrt/struct/in.go diff --git a/cl/_testrt/struct/out.ll b/compiler/cl/_testrt/struct/out.ll similarity index 86% rename from cl/_testrt/struct/out.ll rename to compiler/cl/_testrt/struct/out.ll index ec060663..c041a601 100644 --- a/cl/_testrt/struct/out.ll +++ b/compiler/cl/_testrt/struct/out.ll @@ -2,9 +2,9 @@ source_filename = "main" %main.Foo = type { i32, i1 } -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } -@"github.com/goplus/llgo/internal/runtime.cgoAlwaysFalse" = external global i1, align 1 +@"github.com/goplus/llgo/runtime/internal/runtime.cgoAlwaysFalse" = external global i1, align 1 @main.format = global [10 x i8] zeroinitializer, align 1 @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @@ -41,9 +41,9 @@ _llgo_0: ret ptr %0 } -declare void @runtime.cgoUse(%"github.com/goplus/llgo/internal/runtime.eface") +declare void @runtime.cgoUse(%"github.com/goplus/llgo/runtime/internal/runtime.eface") -declare void @runtime.cgoCheckResult(%"github.com/goplus/llgo/internal/runtime.eface") +declare void @main._cgoCheckResult(%"github.com/goplus/llgo/runtime/internal/runtime.eface") define void @main.init() { _llgo_0: @@ -73,7 +73,7 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = alloca %main.Foo, align 8 call void @llvm.memset(ptr %2, i8 0, i64 8, i1 false) @@ -93,6 +93,6 @@ declare void @printf(ptr, ...) declare void @syscall.init() -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testrt/structsize/in.go b/compiler/cl/_testrt/structsize/in.go similarity index 100% rename from cl/_testrt/structsize/in.go rename to compiler/cl/_testrt/structsize/in.go diff --git a/cl/_testrt/structsize/out.ll b/compiler/cl/_testrt/structsize/out.ll similarity index 85% rename from cl/_testrt/structsize/out.ll rename to compiler/cl/_testrt/structsize/out.ll index 643a449e..644f3dfc 100644 --- a/cl/_testrt/structsize/out.ll +++ b/compiler/cl/_testrt/structsize/out.ll @@ -23,12 +23,12 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() %2 = call i32 (ptr, ...) @printf(ptr @0, i64 14) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare i32 @printf(ptr, ...) diff --git a/cl/_testrt/sum/in.go b/compiler/cl/_testrt/sum/in.go similarity index 100% rename from cl/_testrt/sum/in.go rename to compiler/cl/_testrt/sum/in.go diff --git a/cl/_testrt/sum/out.ll b/compiler/cl/_testrt/sum/out.ll similarity index 60% rename from cl/_testrt/sum/out.ll rename to compiler/cl/_testrt/sum/out.ll index dfd38293..376c34cf 100644 --- a/cl/_testrt/sum/out.ll +++ b/compiler/cl/_testrt/sum/out.ll @@ -1,7 +1,7 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @@ -25,9 +25,9 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 32) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) %3 = getelementptr inbounds i64, ptr %2, i64 0 store i64 1, ptr %3, align 4 %4 = getelementptr inbounds i64, ptr %2, i64 1 @@ -36,17 +36,17 @@ _llgo_0: store i64 3, ptr %5, align 4 %6 = getelementptr inbounds i64, ptr %2, i64 3 store i64 4, ptr %6, align 4 - %7 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" undef, ptr %2, 0 - %8 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %7, i64 4, 1 - %9 = insertvalue %"github.com/goplus/llgo/internal/runtime.Slice" %8, i64 4, 2 - %10 = call i64 @main.sum(%"github.com/goplus/llgo/internal/runtime.Slice" %9) + %7 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %2, 0 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %7, i64 4, 1 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %8, i64 4, 2 + %10 = call i64 @main.sum(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %9) %11 = call i32 (ptr, ...) @printf(ptr @0, i64 %10) ret i32 0 } -define i64 @main.sum(%"github.com/goplus/llgo/internal/runtime.Slice" %0) { +define i64 @main.sum(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0) { _llgo_0: - %1 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 1 + %1 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 1 br label %_llgo_1 _llgo_1: ; preds = %_llgo_2, %_llgo_0 @@ -57,12 +57,12 @@ _llgo_1: ; preds = %_llgo_2, %_llgo_0 br i1 %5, label %_llgo_2, label %_llgo_3 _llgo_2: ; preds = %_llgo_1 - %6 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 0 - %7 = extractvalue %"github.com/goplus/llgo/internal/runtime.Slice" %0, 1 + %6 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 0 + %7 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %0, 1 %8 = icmp slt i64 %4, 0 %9 = icmp sge i64 %4, %7 %10 = or i1 %9, %8 - call void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1 %10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %10) %11 = getelementptr inbounds i64, ptr %6, i64 %4 %12 = load i64, ptr %11, align 4 %13 = add i64 %2, %12 @@ -72,10 +72,10 @@ _llgo_3: ; preds = %_llgo_1 ret i64 %2 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) declare i32 @printf(ptr, ...) -declare void @"github.com/goplus/llgo/internal/runtime.AssertIndexRange"(i1) +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) diff --git a/cl/_testrt/tpabi/in.go b/compiler/cl/_testrt/tpabi/in.go similarity index 100% rename from cl/_testrt/tpabi/in.go rename to compiler/cl/_testrt/tpabi/in.go diff --git a/compiler/cl/_testrt/tpabi/out.ll b/compiler/cl/_testrt/tpabi/out.ll new file mode 100644 index 00000000..5c6ae712 --- /dev/null +++ b/compiler/cl/_testrt/tpabi/out.ll @@ -0,0 +1,333 @@ +; ModuleID = 'main' +source_filename = "main" + +%"main.T[string,int]" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/abi.Method" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, ptr, ptr } +%"github.com/goplus/llgo/runtime/abi.Imethod" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [1 x i8] c"a", align 1 +@"_llgo_main.T[string,int]" = linkonce global ptr null, align 8 +@1 = private unnamed_addr constant [4 x i8] c"main", align 1 +@2 = private unnamed_addr constant [1 x i8] c"T", align 1 +@_llgo_string = linkonce global ptr null, align 8 +@_llgo_int = linkonce global ptr null, align 8 +@"main.struct$A2OTYqQyUOqOQ-i_F5iXeAKWtxeWGEuyeN7HCfULCDk" = linkonce global ptr null, align 8 +@3 = private unnamed_addr constant [1 x i8] c"m", align 1 +@4 = private unnamed_addr constant [1 x i8] c"n", align 1 +@5 = private unnamed_addr constant [4 x i8] c"Demo", align 1 +@"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac" = linkonce global ptr null, align 8 +@6 = private unnamed_addr constant [4 x i8] c"Info", align 1 +@7 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@8 = private unnamed_addr constant [5 x i8] c"hello", align 1 +@"*_llgo_main.T[string,int]" = linkonce global ptr null, align 8 +@"_llgo_iface$BP0p_lUsEd-IbbtJVukGmgrdQkqzcoYzSiwgUvgFvUs" = linkonce global ptr null, align 8 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = alloca %"main.T[string,int]", align 8 + call void @llvm.memset(ptr %2, i8 0, i64 24, i1 false) + %3 = getelementptr inbounds %"main.T[string,int]", ptr %2, i32 0, i32 0 + %4 = getelementptr inbounds %"main.T[string,int]", ptr %2, i32 0, i32 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 1 }, ptr %3, align 8 + store i64 1, ptr %4, align 4 + %5 = load %"main.T[string,int]", ptr %2, align 8 + %6 = load ptr, ptr @"_llgo_main.T[string,int]", align 8 + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + store %"main.T[string,int]" %5, ptr %7, align 8 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %6, 0 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %8, ptr %7, 1 + %10 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %9, 0 + %11 = load ptr, ptr @"_llgo_main.T[string,int]", align 8 + %12 = icmp eq ptr %10, %11 + br i1 %12, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %13 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %9, 1 + %14 = load %"main.T[string,int]", ptr %13, align 8 + %15 = extractvalue %"main.T[string,int]" %14, 0 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %15) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 24) + %17 = getelementptr inbounds %"main.T[string,int]", ptr %16, i32 0, i32 0 + %18 = getelementptr inbounds %"main.T[string,int]", ptr %16, i32 0, i32 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 5 }, ptr %17, align 8 + store i64 100, ptr %18, align 4 + %19 = load ptr, ptr @"*_llgo_main.T[string,int]", align 8 + %20 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %21 = load ptr, ptr @"_llgo_iface$BP0p_lUsEd-IbbtJVukGmgrdQkqzcoYzSiwgUvgFvUs", align 8 + %22 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %21, ptr %19) + %23 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %22, 0 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %23, ptr %16, 1 + %25 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %24) + %26 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %24, 0 + %27 = getelementptr ptr, ptr %26, i64 3 + %28 = load ptr, ptr %27, align 8 + %29 = insertvalue { ptr, ptr } undef, ptr %28, 0 + %30 = insertvalue { ptr, ptr } %29, ptr %25, 1 + %31 = extractvalue { ptr, ptr } %30, 1 + %32 = extractvalue { ptr, ptr } %30, 0 + call void %32(ptr %31) + %33 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 32) + %34 = getelementptr inbounds i64, ptr %33, i64 0 + %35 = getelementptr inbounds i64, ptr %33, i64 1 + %36 = getelementptr inbounds i64, ptr %33, i64 2 + %37 = getelementptr inbounds i64, ptr %33, i64 3 + store i64 1, ptr %34, align 4 + store i64 2, ptr %35, align 4 + store i64 3, ptr %36, align 4 + store i64 4, ptr %37, align 4 + %38 = getelementptr [4 x i64], ptr %33, i64 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %38) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %39 = getelementptr [4 x i64], ptr %33, i64 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr %39) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 + +_llgo_2: ; preds = %_llgo_0 + %40 = load ptr, ptr @_llgo_string, align 8 + %41 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 21 }, ptr %41, align 8 + %42 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %40, 0 + %43 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %42, ptr %41, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %43) + unreachable +} + +define linkonce void @"main.T[string,int].Info"(%"main.T[string,int]" %0) { +_llgo_0: + %1 = alloca %"main.T[string,int]", align 8 + call void @llvm.memset(ptr %1, i8 0, i64 24, i1 false) + store %"main.T[string,int]" %0, ptr %1, align 8 + %2 = getelementptr inbounds %"main.T[string,int]", ptr %1, i32 0, i32 0 + %3 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %2, align 8 + %4 = getelementptr inbounds %"main.T[string,int]", ptr %1, i32 0, i32 1 + %5 = load i64, ptr %4, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %3) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %5) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define linkonce void @"main.(*T[string,int]).Demo"(ptr %0) { +_llgo_0: + %1 = getelementptr inbounds %"main.T[string,int]", ptr %0, i32 0, i32 0 + %2 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %1, align 8 + %3 = getelementptr inbounds %"main.T[string,int]", ptr %0, i32 0, i32 1 + %4 = load i64, ptr %3, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %2) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %4) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define void @"main.(*T[string,int]).Info"(ptr %0) { +_llgo_0: + %1 = load %"main.T[string,int]", ptr %0, align 8 + call void @"main.T[string,int].Info"(%"main.T[string,int]" %1) + ret void +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 + +define void @"main.init$after"() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 1 }, i64 25, i64 24, i64 1, i64 2) + %1 = load ptr, ptr @"_llgo_main.T[string,int]", align 8 + %2 = icmp eq ptr %1, null + br i1 %2, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + store ptr %0, ptr @"_llgo_main.T[string,int]", align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @_llgo_string, align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %5, ptr @_llgo_string, align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %6 = load ptr, ptr @_llgo_string, align 8 + %7 = load ptr, ptr @_llgo_int, align 8 + %8 = icmp eq ptr %7, null + br i1 %8, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %9, ptr @_llgo_int, align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %10 = load ptr, ptr @_llgo_int, align 8 + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %12 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 1 }, ptr %11, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %13 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %14 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 1 }, ptr %13, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %15 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %16 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %15, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %12, ptr %16, align 8 + %17 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %15, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %14, ptr %17, align 8 + %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %15, 0 + %19 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %18, i64 2, 1 + %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %19, i64 2, 2 + %21 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, i64 24, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %20) + store ptr %21, ptr @"main.struct$A2OTYqQyUOqOQ-i_F5iXeAKWtxeWGEuyeN7HCfULCDk", align 8 + %22 = load ptr, ptr @"main.struct$A2OTYqQyUOqOQ-i_F5iXeAKWtxeWGEuyeN7HCfULCDk", align 8 + br i1 %2, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %23 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %24 = icmp eq ptr %23, null + br i1 %24, label %_llgo_9, label %_llgo_10 + +_llgo_8: ; preds = %_llgo_10, %_llgo_6 + %25 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 1 }, i64 25, i64 24, i64 1, i64 2) + %26 = load ptr, ptr @"*_llgo_main.T[string,int]", align 8 + %27 = icmp eq ptr %26, null + br i1 %27, label %_llgo_11, label %_llgo_12 + +_llgo_9: ; preds = %_llgo_7 + %28 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %28, 0 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %29, i64 0, 1 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30, i64 0, 2 + %32 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %33 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %32, 0 + %34 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %33, i64 0, 1 + %35 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %34, i64 0, 2 + %36 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %31, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %35, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %36) + store ptr %36, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_7 + %37 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %38 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %37, 1 + %39 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %38, ptr @"main.(*T[string,int]).Demo", 2 + %40 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %39, ptr @"main.(*T[string,int]).Demo", 3 + %41 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %42 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %41, 1 + %43 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %42, ptr @"main.(*T[string,int]).Info", 2 + %44 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %43, ptr @"main.(*T[string,int]).Info", 3 + %45 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %41, 1 + %46 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %45, ptr @"main.(*T[string,int]).Info", 2 + %47 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %46, ptr @"main.T[string,int].Info", 3 + %48 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %49 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %48, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %47, ptr %49, align 8 + %50 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %48, 0 + %51 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %50, i64 1, 1 + %52 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %51, i64 1, 2 + %53 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 80) + %54 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %53, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %40, ptr %54, align 8 + %55 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %53, i64 1 + store %"github.com/goplus/llgo/runtime/abi.Method" %44, ptr %55, align 8 + %56 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %53, 0 + %57 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %56, i64 2, 1 + %58 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %57, i64 2, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %22, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %52, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %58) + br label %_llgo_8 + +_llgo_11: ; preds = %_llgo_8 + %59 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %25) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %59) + store ptr %59, ptr @"*_llgo_main.T[string,int]", align 8 + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_8 + %60 = load ptr, ptr @"_llgo_func$2_iS07vIlF2_rZqWB5eU0IvP_9HviM4MYZNkXZDvbac", align 8 + %61 = load ptr, ptr @"_llgo_iface$BP0p_lUsEd-IbbtJVukGmgrdQkqzcoYzSiwgUvgFvUs", align 8 + %62 = icmp eq ptr %61, null + br i1 %62, label %_llgo_13, label %_llgo_14 + +_llgo_13: ; preds = %_llgo_12 + %63 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 4 }, ptr undef }, ptr %60, 1 + %64 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %65 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %64, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %63, ptr %65, align 8 + %66 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %64, 0 + %67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %66, i64 1, 1 + %68 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %67, i64 1, 2 + %69 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %68) + store ptr %69, ptr @"_llgo_iface$BP0p_lUsEd-IbbtJVukGmgrdQkqzcoYzSiwgUvgFvUs", align 8 + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_12 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice", i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintPointer"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) + +attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testrt/tpfunc/in.go b/compiler/cl/_testrt/tpfunc/in.go similarity index 100% rename from cl/_testrt/tpfunc/in.go rename to compiler/cl/_testrt/tpfunc/in.go diff --git a/compiler/cl/_testrt/tpfunc/out.ll b/compiler/cl/_testrt/tpfunc/out.ll new file mode 100644 index 00000000..d80843a9 --- /dev/null +++ b/compiler/cl/_testrt/tpfunc/out.ll @@ -0,0 +1,72 @@ +; ModuleID = 'main' +source_filename = "main" + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 16) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 8) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64 8) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +define void @"main.main$1"(ptr %0) { +_llgo_0: + %1 = load i64, ptr %0, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %1) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define void @"main.main$2"(ptr %0) { +_llgo_0: + %1 = load i64, ptr %0, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %1) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define void @"main.main$3"(ptr %0) { +_llgo_0: + %1 = load i64, ptr %0, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %1) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +define linkonce void @"__llgo_stub.main.main$1"(ptr %0, ptr %1) { +_llgo_0: + tail call void @"main.main$1"(ptr %1) + ret void +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintUint"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) diff --git a/cl/_testrt/tpmap/in.go b/compiler/cl/_testrt/tpmap/in.go similarity index 100% rename from cl/_testrt/tpmap/in.go rename to compiler/cl/_testrt/tpmap/in.go diff --git a/compiler/cl/_testrt/tpmap/out.ll b/compiler/cl/_testrt/tpmap/out.ll new file mode 100644 index 00000000..64fe2516 --- /dev/null +++ b/compiler/cl/_testrt/tpmap/out.ll @@ -0,0 +1,372 @@ +; ModuleID = 'main' +source_filename = "main" + +%main.cacheKey = type { i64, %main.T2, %"main.T3[any]", ptr, i64 } +%main.T2 = type { i64 } +%"main.T3[any]" = type { %"github.com/goplus/llgo/runtime/internal/runtime.eface" } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@_llgo_main.cacheKey = linkonce global ptr null, align 8 +@0 = private unnamed_addr constant [4 x i8] c"main", align 1 +@1 = private unnamed_addr constant [8 x i8] c"cacheKey", align 1 +@_llgo_main.T1 = linkonce global ptr null, align 8 +@2 = private unnamed_addr constant [2 x i8] c"T1", align 1 +@_llgo_int = linkonce global ptr null, align 8 +@_llgo_main.T2 = linkonce global ptr null, align 8 +@3 = private unnamed_addr constant [2 x i8] c"T2", align 1 +@"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88" = linkonce global ptr null, align 8 +@4 = private unnamed_addr constant [1 x i8] c"v", align 1 +@"_llgo_main.T3[any]" = linkonce global ptr null, align 8 +@5 = private unnamed_addr constant [2 x i8] c"T3", align 1 +@_llgo_any = linkonce global ptr null, align 8 +@"main.struct$op7q0963ur0ih9ul6OteH-C75UVydPxwKOVpX1hUjzo" = linkonce global ptr null, align 8 +@"*_llgo_int" = linkonce global ptr null, align 8 +@_llgo_uintptr = linkonce global ptr null, align 8 +@"main.struct$ZLgMjv1XBA1L4yXCpdouRvQF2okeuHQ-YWVTE34gq4I" = linkonce global ptr null, align 8 +@6 = private unnamed_addr constant [2 x i8] c"t1", align 1 +@7 = private unnamed_addr constant [2 x i8] c"t2", align 1 +@8 = private unnamed_addr constant [2 x i8] c"t3", align 1 +@9 = private unnamed_addr constant [2 x i8] c"t4", align 1 +@10 = private unnamed_addr constant [2 x i8] c"t5", align 1 +@_llgo_string = linkonce global ptr null, align 8 +@"map[_llgo_main.cacheKey]_llgo_string" = linkonce global ptr null, align 8 +@11 = private unnamed_addr constant [7 x i8] c"topbits", align 1 +@12 = private unnamed_addr constant [4 x i8] c"keys", align 1 +@13 = private unnamed_addr constant [5 x i8] c"elems", align 1 +@14 = private unnamed_addr constant [8 x i8] c"overflow", align 1 +@15 = private unnamed_addr constant [5 x i8] c"world", align 1 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = load ptr, ptr @_llgo_main.cacheKey, align 8 + %3 = load ptr, ptr @_llgo_string, align 8 + %4 = load ptr, ptr @"map[_llgo_main.cacheKey]_llgo_string", align 8 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr %4, i64 0) + %6 = alloca %main.cacheKey, align 8 + call void @llvm.memset(ptr %6, i8 0, i64 48, i1 false) + %7 = getelementptr inbounds %main.cacheKey, ptr %6, i32 0, i32 0 + %8 = getelementptr inbounds %main.cacheKey, ptr %6, i32 0, i32 1 + %9 = getelementptr inbounds %main.T2, ptr %8, i32 0, i32 0 + %10 = getelementptr inbounds %main.cacheKey, ptr %6, i32 0, i32 2 + %11 = getelementptr inbounds %"main.T3[any]", ptr %10, i32 0, i32 0 + %12 = getelementptr inbounds %main.cacheKey, ptr %6, i32 0, i32 3 + %13 = getelementptr inbounds %main.cacheKey, ptr %6, i32 0, i32 4 + store i64 0, ptr %7, align 4 + store i64 0, ptr %9, align 4 + %14 = load ptr, ptr @_llgo_int, align 8 + %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %14, 0 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %15, ptr null, 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %16, ptr %11, align 8 + store ptr null, ptr %12, align 8 + store i64 0, ptr %13, align 4 + %17 = load %main.cacheKey, ptr %6, align 8 + %18 = load ptr, ptr @"map[_llgo_main.cacheKey]_llgo_string", align 8 + %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + store %main.cacheKey %17, ptr %19, align 8 + %20 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr %18, ptr %5, ptr %19) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @15, i64 5 }, ptr %20, align 8 + %21 = alloca %main.cacheKey, align 8 + call void @llvm.memset(ptr %21, i8 0, i64 48, i1 false) + %22 = getelementptr inbounds %main.cacheKey, ptr %21, i32 0, i32 0 + %23 = getelementptr inbounds %main.cacheKey, ptr %21, i32 0, i32 1 + %24 = getelementptr inbounds %main.T2, ptr %23, i32 0, i32 0 + %25 = getelementptr inbounds %main.cacheKey, ptr %21, i32 0, i32 2 + %26 = getelementptr inbounds %"main.T3[any]", ptr %25, i32 0, i32 0 + %27 = getelementptr inbounds %main.cacheKey, ptr %21, i32 0, i32 3 + %28 = getelementptr inbounds %main.cacheKey, ptr %21, i32 0, i32 4 + store i64 0, ptr %22, align 4 + store i64 0, ptr %24, align 4 + %29 = load ptr, ptr @_llgo_int, align 8 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %29, 0 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %30, ptr null, 1 + store %"github.com/goplus/llgo/runtime/internal/runtime.eface" %31, ptr %26, align 8 + store ptr null, ptr %27, align 8 + store i64 0, ptr %28, align 4 + %32 = load %main.cacheKey, ptr %21, align 8 + %33 = load ptr, ptr @"map[_llgo_main.cacheKey]_llgo_string", align 8 + %34 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 48) + store %main.cacheKey %32, ptr %34, align 8 + %35 = call { ptr, i1 } @"github.com/goplus/llgo/runtime/internal/runtime.MapAccess2"(ptr %33, ptr %5, ptr %34) + %36 = extractvalue { ptr, i1 } %35, 0 + %37 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %36, align 8 + %38 = extractvalue { ptr, i1 } %35, 1 + %39 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.String" %37, 0 + %40 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } %39, i1 %38, 1 + %41 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } %40, 0 + %42 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } %40, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %41) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %42) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +define void @"main.init$after"() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 8 }, i64 25, i64 48, i64 0, i64 0) + store ptr %0, ptr @_llgo_main.cacheKey, align 8 + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 2 }, i64 2, i64 8, i64 0, i64 0) + %2 = load ptr, ptr @_llgo_main.T1, align 8 + %3 = icmp eq ptr %2, null + br i1 %3, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + store ptr %1, ptr @_llgo_main.T1, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %4 = load ptr, ptr @_llgo_int, align 8 + %5 = icmp eq ptr %4, null + br i1 %5, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %6 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %6, ptr @_llgo_int, align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %7 = load ptr, ptr @_llgo_int, align 8 + br i1 %3, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %1, ptr %7, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %8 = load ptr, ptr @_llgo_main.T1, align 8 + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 2 }, i64 25, i64 8, i64 0, i64 0) + %10 = load ptr, ptr @_llgo_main.T2, align 8 + %11 = icmp eq ptr %10, null + br i1 %11, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + store ptr %9, ptr @_llgo_main.T2, align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %13 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 1 }, ptr %12, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %15 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %14, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %13, ptr %15, align 8 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %14, 0 + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, i64 1, 1 + %18 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %17, i64 1, 2 + %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %18) + store ptr %19, ptr @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8 + %20 = load ptr, ptr @"main.struct$MYpsoM99ZwFY087IpUOkIw1zjBA_sgFXVodmn1m-G88", align 8 + br i1 %11, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %9, ptr %20, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_8 + %21 = load ptr, ptr @_llgo_main.T2, align 8 + %22 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, i64 25, i64 16, i64 0, i64 0) + %23 = load ptr, ptr @"_llgo_main.T3[any]", align 8 + %24 = icmp eq ptr %23, null + br i1 %24, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + store ptr %22, ptr @"_llgo_main.T3[any]", align 8 + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_10 + %25 = load ptr, ptr @_llgo_any, align 8 + %26 = icmp eq ptr %25, null + br i1 %26, label %_llgo_13, label %_llgo_14 + +_llgo_13: ; preds = %_llgo_12 + %27 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %27, 0 + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %28, i64 0, 1 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %29, i64 0, 2 + %31 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30) + store ptr %31, ptr @_llgo_any, align 8 + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_12 + %32 = load ptr, ptr @_llgo_any, align 8 + %33 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %34 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %33, 0 + %35 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %34, i64 0, 1 + %36 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %35, i64 0, 2 + %37 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %36) + %38 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 1 }, ptr %37, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %39 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %40 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %39, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %38, ptr %40, align 8 + %41 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %39, 0 + %42 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %41, i64 1, 1 + %43 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %42, i64 1, 2 + %44 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %43) + store ptr %44, ptr @"main.struct$op7q0963ur0ih9ul6OteH-C75UVydPxwKOVpX1hUjzo", align 8 + %45 = load ptr, ptr @"main.struct$op7q0963ur0ih9ul6OteH-C75UVydPxwKOVpX1hUjzo", align 8 + br i1 %24, label %_llgo_15, label %_llgo_16 + +_llgo_15: ; preds = %_llgo_14 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %22, ptr %45, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_16 + +_llgo_16: ; preds = %_llgo_15, %_llgo_14 + %46 = load ptr, ptr @"_llgo_main.T3[any]", align 8 + %47 = load ptr, ptr @"*_llgo_int", align 8 + %48 = icmp eq ptr %47, null + br i1 %48, label %_llgo_17, label %_llgo_18 + +_llgo_17: ; preds = %_llgo_16 + %49 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %50 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %49) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %50) + store ptr %50, ptr @"*_llgo_int", align 8 + br label %_llgo_18 + +_llgo_18: ; preds = %_llgo_17, %_llgo_16 + %51 = load ptr, ptr @"*_llgo_int", align 8 + %52 = load ptr, ptr @_llgo_uintptr, align 8 + %53 = icmp eq ptr %52, null + br i1 %53, label %_llgo_19, label %_llgo_20 + +_llgo_19: ; preds = %_llgo_18 + %54 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + store ptr %54, ptr @_llgo_uintptr, align 8 + br label %_llgo_20 + +_llgo_20: ; preds = %_llgo_19, %_llgo_18 + %55 = load ptr, ptr @_llgo_uintptr, align 8 + %56 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 2 }, i64 2, i64 8, i64 0, i64 0) + %57 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 2 }, i64 25, i64 8, i64 0, i64 0) + %58 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 2 }, i64 25, i64 16, i64 0, i64 0) + %59 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 2 }, ptr %56, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %60 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 2 }, ptr %57, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %61 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 2 }, ptr %58, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %62 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %63 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %62) + %64 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 2 }, ptr %63, i64 32, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %65 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 44) + %66 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 2 }, ptr %65, i64 40, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %67 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 280) + %68 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %67, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %59, ptr %68, align 8 + %69 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %67, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %60, ptr %69, align 8 + %70 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %67, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %61, ptr %70, align 8 + %71 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %67, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %64, ptr %71, align 8 + %72 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %67, i64 4 + store %"github.com/goplus/llgo/runtime/abi.StructField" %66, ptr %72, align 8 + %73 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %67, 0 + %74 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %73, i64 5, 1 + %75 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %74, i64 5, 2 + %76 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 48, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %75) + store ptr %76, ptr @"main.struct$ZLgMjv1XBA1L4yXCpdouRvQF2okeuHQ-YWVTE34gq4I", align 8 + %77 = load ptr, ptr @"main.struct$ZLgMjv1XBA1L4yXCpdouRvQF2okeuHQ-YWVTE34gq4I", align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %77, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + %78 = load ptr, ptr @_llgo_string, align 8 + %79 = icmp eq ptr %78, null + br i1 %79, label %_llgo_21, label %_llgo_22 + +_llgo_21: ; preds = %_llgo_20 + %80 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %80, ptr @_llgo_string, align 8 + br label %_llgo_22 + +_llgo_22: ; preds = %_llgo_21, %_llgo_20 + %81 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 8 }, i64 25, i64 48, i64 0, i64 0) + %82 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 8 }, i64 25, i64 48, i64 0, i64 0) + %83 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %84 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 40) + %85 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %84) + %86 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 7 }, ptr %85, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %87 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %82) + %88 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @12, i64 4 }, ptr %87, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %89 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + %90 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 8, ptr %89) + %91 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @13, i64 5 }, ptr %90, i64 392, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %92 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %93 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @14, i64 8 }, ptr %92, i64 520, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %94 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 224) + %95 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %94, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %86, ptr %95, align 8 + %96 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %94, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %88, ptr %96, align 8 + %97 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %94, i64 2 + store %"github.com/goplus/llgo/runtime/abi.StructField" %91, ptr %97, align 8 + %98 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %94, i64 3 + store %"github.com/goplus/llgo/runtime/abi.StructField" %93, ptr %98, align 8 + %99 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %94, 0 + %100 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %99, i64 4, 1 + %101 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %100, i64 4, 2 + %102 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 4 }, i64 528, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %101) + %103 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr %81, ptr %83, ptr %102, i64 24) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %103) + store ptr %103, ptr @"map[_llgo_main.cacheKey]_llgo_string", align 8 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapOf"(ptr, ptr, ptr, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64, ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MakeMap"(ptr, i64) + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.MapAssign"(ptr, ptr, ptr) + +declare { ptr, i1 } @"github.com/goplus/llgo/runtime/internal/runtime.MapAccess2"(ptr, ptr, ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1) + +attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testrt/tpmethod/in.go b/compiler/cl/_testrt/tpmethod/in.go similarity index 100% rename from cl/_testrt/tpmethod/in.go rename to compiler/cl/_testrt/tpmethod/in.go diff --git a/compiler/cl/_testrt/tpmethod/out.ll b/compiler/cl/_testrt/tpmethod/out.ll new file mode 100644 index 00000000..b0a05958 --- /dev/null +++ b/compiler/cl/_testrt/tpmethod/out.ll @@ -0,0 +1,514 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.iface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"main.Tuple[error]" = type { %"github.com/goplus/llgo/runtime/internal/runtime.iface" } +%"main.future[main.Tuple[error]]" = type { { ptr, ptr } } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } +%"github.com/goplus/llgo/runtime/abi.Imethod" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr } +%"github.com/goplus/llgo/runtime/abi.StructField" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } +%"github.com/goplus/llgo/runtime/abi.Method" = type { %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, ptr, ptr } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [7 x i8] c"foo.txt", align 1 +@"_llgo_main.future[main.Tuple[error]]" = linkonce global ptr null, align 8 +@1 = private unnamed_addr constant [4 x i8] c"main", align 1 +@2 = private unnamed_addr constant [6 x i8] c"future", align 1 +@"_llgo_main.Tuple[error]" = linkonce global ptr null, align 8 +@3 = private unnamed_addr constant [5 x i8] c"Tuple", align 1 +@_llgo_error = linkonce global ptr null, align 8 +@4 = private unnamed_addr constant [5 x i8] c"error", align 1 +@_llgo_string = linkonce global ptr null, align 8 +@"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to" = linkonce global ptr null, align 8 +@5 = private unnamed_addr constant [5 x i8] c"Error", align 1 +@"main.struct$ddtj0teo4LtYcagzh1w6BsSZ7226uefXlqreeHsfVRo" = linkonce global ptr null, align 8 +@6 = private unnamed_addr constant [1 x i8] c"v", align 1 +@7 = private unnamed_addr constant [3 x i8] c"Get", align 1 +@"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w" = linkonce global ptr null, align 8 +@"_llgo_func$1BeCdGdxwWG-Dtl1HbNuSy2_sb8rBMTmu7zhcPPofmU" = linkonce global ptr null, align 8 +@_llgo_Pointer = linkonce global ptr null, align 8 +@"main.struct$vwhCZhgsid50r1SsT8OmKpRI0Cpljg78h5JlpD1CTR4" = linkonce global ptr null, align 8 +@8 = private unnamed_addr constant [2 x i8] c"$f", align 1 +@9 = private unnamed_addr constant [5 x i8] c"$data", align 1 +@"_llgo_func$_so3zZGPIhTQghxFcf7CCCVzSOk2lxOt7xgGKcTzc0s" = linkonce global ptr null, align 8 +@"main.struct$awGH2Wh33bS1v_s7SNAwKW27E20HcwiiPPzh9UA7QDs" = linkonce global ptr null, align 8 +@"main.struct$N1awC7qGapVTS_NFj1Q0jk6nCjATrIK-60oOEyDjabo" = linkonce global ptr null, align 8 +@10 = private unnamed_addr constant [2 x i8] c"fn", align 1 +@11 = private unnamed_addr constant [4 x i8] c"Then", align 1 +@"*_llgo_main.future[main.Tuple[error]]" = linkonce global ptr null, align 8 +@"_llgo_iface$pTofAxYfPZHsCMD5T70nrOx1gjHf9m2QCLNvEOl1py0" = linkonce global ptr null, align 8 + +define %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.ReadFile(%"github.com/goplus/llgo/runtime/internal/runtime.String" %0) { +_llgo_0: + %1 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @"main.Async[main.Tuple[error]]"({ ptr, ptr } { ptr @"__llgo_stub.main.ReadFile$1", ptr null }) + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" %1 +} + +define void @"main.ReadFile$1"({ ptr, ptr } %0) { +_llgo_0: + %1 = alloca %"main.Tuple[error]", align 8 + call void @llvm.memset(ptr %1, i8 0, i64 16, i1 false) + %2 = getelementptr inbounds %"main.Tuple[error]", ptr %1, i32 0, i32 0 + store %"github.com/goplus/llgo/runtime/internal/runtime.iface" zeroinitializer, ptr %2, align 8 + %3 = load %"main.Tuple[error]", ptr %1, align 8 + %4 = extractvalue { ptr, ptr } %0, 1 + %5 = extractvalue { ptr, ptr } %0, 0 + call void %5(ptr %4, %"main.Tuple[error]" %3) + ret void +} + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @main.ReadFile(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 7 }) + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %2) + %4 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %2, 0 + %5 = getelementptr ptr, ptr %4, i64 3 + %6 = load ptr, ptr %5, align 8 + %7 = insertvalue { ptr, ptr } undef, ptr %6, 0 + %8 = insertvalue { ptr, ptr } %7, ptr %3, 1 + %9 = extractvalue { ptr, ptr } %8, 1 + %10 = extractvalue { ptr, ptr } %8, 0 + call void %10(ptr %9, { ptr, ptr } { ptr @"__llgo_stub.main.main$1", ptr null }) + ret i32 0 +} + +define void @"main.main$1"(%"main.Tuple[error]" %0) { +_llgo_0: + %1 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @"main.Tuple[error].Get"(%"main.Tuple[error]" %0) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintIface"(%"github.com/goplus/llgo/runtime/internal/runtime.iface" %1) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret void +} + +define linkonce %"github.com/goplus/llgo/runtime/internal/runtime.iface" @"main.Tuple[error].Get"(%"main.Tuple[error]" %0) { +_llgo_0: + %1 = alloca %"main.Tuple[error]", align 8 + call void @llvm.memset(ptr %1, i8 0, i64 16, i1 false) + store %"main.Tuple[error]" %0, ptr %1, align 8 + %2 = getelementptr inbounds %"main.Tuple[error]", ptr %1, i32 0, i32 0 + %3 = load %"github.com/goplus/llgo/runtime/internal/runtime.iface", ptr %2, align 8 + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" %3 +} + +define %"github.com/goplus/llgo/runtime/internal/runtime.iface" @"main.(*Tuple[error]).Get"(ptr %0) { +_llgo_0: + %1 = load %"main.Tuple[error]", ptr %0, align 8 + %2 = call %"github.com/goplus/llgo/runtime/internal/runtime.iface" @"main.Tuple[error].Get"(%"main.Tuple[error]" %1) + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" %2 +} + +define linkonce void @"main.(*future[main.Tuple[error]]).Then"(ptr %0, { ptr, ptr } %1) { +_llgo_0: + %2 = getelementptr inbounds %"main.future[main.Tuple[error]]", ptr %0, i32 0, i32 0 + %3 = load { ptr, ptr }, ptr %2, align 8 + %4 = extractvalue { ptr, ptr } %3, 1 + %5 = extractvalue { ptr, ptr } %3, 0 + call void %5(ptr %4, { ptr, ptr } %1) + ret void +} + +define linkonce %"github.com/goplus/llgo/runtime/internal/runtime.iface" @"main.Async[main.Tuple[error]]"({ ptr, ptr } %0) { +_llgo_0: + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + %2 = getelementptr inbounds %"main.future[main.Tuple[error]]", ptr %1, i32 0, i32 0 + store { ptr, ptr } %0, ptr %2, align 8 + %3 = load ptr, ptr @"_llgo_main.future[main.Tuple[error]]", align 8 + %4 = load ptr, ptr @"*_llgo_main.future[main.Tuple[error]]", align 8 + %5 = load ptr, ptr @"_llgo_func$1BeCdGdxwWG-Dtl1HbNuSy2_sb8rBMTmu7zhcPPofmU", align 8 + %6 = load ptr, ptr @"main.struct$vwhCZhgsid50r1SsT8OmKpRI0Cpljg78h5JlpD1CTR4", align 8 + %7 = load ptr, ptr @"_llgo_func$_so3zZGPIhTQghxFcf7CCCVzSOk2lxOt7xgGKcTzc0s", align 8 + %8 = load ptr, ptr @"_llgo_iface$pTofAxYfPZHsCMD5T70nrOx1gjHf9m2QCLNvEOl1py0", align 8 + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr %8, ptr %4) + %10 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" undef, ptr %9, 0 + %11 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.iface" %10, ptr %1, 1 + ret %"github.com/goplus/llgo/runtime/internal/runtime.iface" %11 +} + +define linkonce void @"__llgo_stub.main.ReadFile$1"(ptr %0, { ptr, ptr } %1) { +_llgo_0: + tail call void @"main.ReadFile$1"({ ptr, ptr } %1) + ret void +} + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.IfacePtrData"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +define linkonce void @"__llgo_stub.main.main$1"(ptr %0, %"main.Tuple[error]" %1) { +_llgo_0: + tail call void @"main.main$1"(%"main.Tuple[error]" %1) + ret void +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintIface"(%"github.com/goplus/llgo/runtime/internal/runtime.iface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +define void @"main.init$after"() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 6 }, i64 25, i64 24, i64 0, i64 1) + store ptr %0, ptr @"_llgo_main.future[main.Tuple[error]]", align 8 + %1 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 5 }, i64 25, i64 16, i64 1, i64 1) + %2 = load ptr, ptr @"_llgo_main.Tuple[error]", align 8 + %3 = icmp eq ptr %2, null + br i1 %3, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + store ptr %1, ptr @"_llgo_main.Tuple[error]", align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %4 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }) + %5 = load ptr, ptr @_llgo_error, align 8 + %6 = icmp eq ptr %5, null + br i1 %6, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + store ptr %4, ptr @_llgo_error, align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %7 = load ptr, ptr @_llgo_string, align 8 + %8 = icmp eq ptr %7, null + br i1 %8, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %9 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %9, ptr @_llgo_string, align 8 + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %10 = load ptr, ptr @_llgo_string, align 8 + %11 = load ptr, ptr @_llgo_string, align 8 + %12 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + %13 = icmp eq ptr %12, null + br i1 %13, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %14 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %15 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %14, 0 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %15, i64 0, 1 + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %16, i64 0, 2 + %18 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %19 = getelementptr ptr, ptr %18, i64 0 + store ptr %11, ptr %19, align 8 + %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %18, 0 + %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %20, i64 1, 1 + %22 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %21, i64 1, 2 + %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %17, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %22, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %23) + store ptr %23, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %24 = load ptr, ptr @"_llgo_func$zNDVRsWTIpUPKouNUS805RGX--IV9qVK8B31IZbg5to", align 8 + br i1 %6, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %25 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @5, i64 5 }, ptr undef }, ptr %24, 1 + %26 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %27 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %26, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %25, ptr %27, align 8 + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %26, 0 + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %28, i64 1, 1 + %30 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %29, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr %4, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %30) + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_8 + %31 = load ptr, ptr @_llgo_error, align 8 + %32 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 5 }) + %33 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @6, i64 1 }, ptr %32, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %34 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %35 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %34, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %33, ptr %35, align 8 + %36 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %34, 0 + %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %36, i64 1, 1 + %38 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %37, i64 1, 2 + %39 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %38) + store ptr %39, ptr @"main.struct$ddtj0teo4LtYcagzh1w6BsSZ7226uefXlqreeHsfVRo", align 8 + %40 = load ptr, ptr @"main.struct$ddtj0teo4LtYcagzh1w6BsSZ7226uefXlqreeHsfVRo", align 8 + br i1 %3, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + %41 = load ptr, ptr @_llgo_error, align 8 + %42 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %43 = icmp eq ptr %42, null + br i1 %43, label %_llgo_13, label %_llgo_14 + +_llgo_12: ; preds = %_llgo_14, %_llgo_10 + %44 = load ptr, ptr @"_llgo_main.Tuple[error]", align 8 + %45 = load ptr, ptr @"_llgo_main.Tuple[error]", align 8 + %46 = load ptr, ptr @"_llgo_func$1BeCdGdxwWG-Dtl1HbNuSy2_sb8rBMTmu7zhcPPofmU", align 8 + %47 = icmp eq ptr %46, null + br i1 %47, label %_llgo_15, label %_llgo_16 + +_llgo_13: ; preds = %_llgo_11 + %48 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %49 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %48, 0 + %50 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %49, i64 0, 1 + %51 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %50, i64 0, 2 + %52 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %53 = getelementptr ptr, ptr %52, i64 0 + store ptr %41, ptr %53, align 8 + %54 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %52, 0 + %55 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %54, i64 1, 1 + %56 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %55, i64 1, 2 + %57 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %51, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %56, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %57) + store ptr %57, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_11 + %58 = load ptr, ptr @"_llgo_func$8rsrSd_r3UHd_2DiYTyaOKR7BYkei4zw5ysG35KF38w", align 8 + %59 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %58, 1 + %60 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %59, ptr @"main.(*Tuple[error]).Get", 2 + %61 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %60, ptr @"main.(*Tuple[error]).Get", 3 + %62 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @7, i64 3 }, ptr undef, ptr undef, ptr undef }, ptr %58, 1 + %63 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %62, ptr @"main.(*Tuple[error]).Get", 2 + %64 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %63, ptr @"main.Tuple[error].Get", 3 + %65 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %66 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %65, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %64, ptr %66, align 8 + %67 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %65, 0 + %68 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %67, i64 1, 1 + %69 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %68, i64 1, 2 + %70 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %71 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %70, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %61, ptr %71, align 8 + %72 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %70, 0 + %73 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %72, i64 1, 1 + %74 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %73, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %1, ptr %40, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %69, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %74) + br label %_llgo_12 + +_llgo_15: ; preds = %_llgo_12 + %75 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %76 = getelementptr ptr, ptr %75, i64 0 + store ptr %45, ptr %76, align 8 + %77 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %75, 0 + %78 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %77, i64 1, 1 + %79 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %78, i64 1, 2 + %80 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %81 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %80, 0 + %82 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %81, i64 0, 1 + %83 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %82, i64 0, 2 + %84 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %79, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %83, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %84) + store ptr %84, ptr @"_llgo_func$1BeCdGdxwWG-Dtl1HbNuSy2_sb8rBMTmu7zhcPPofmU", align 8 + br label %_llgo_16 + +_llgo_16: ; preds = %_llgo_15, %_llgo_12 + %85 = load ptr, ptr @"_llgo_func$1BeCdGdxwWG-Dtl1HbNuSy2_sb8rBMTmu7zhcPPofmU", align 8 + %86 = load ptr, ptr @_llgo_Pointer, align 8 + %87 = icmp eq ptr %86, null + br i1 %87, label %_llgo_17, label %_llgo_18 + +_llgo_17: ; preds = %_llgo_16 + %88 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %88) + store ptr %88, ptr @_llgo_Pointer, align 8 + br label %_llgo_18 + +_llgo_18: ; preds = %_llgo_17, %_llgo_16 + %89 = load ptr, ptr @_llgo_Pointer, align 8 + %90 = load ptr, ptr @"_llgo_main.Tuple[error]", align 8 + %91 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %92 = getelementptr ptr, ptr %91, i64 0 + store ptr %90, ptr %92, align 8 + %93 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %91, 0 + %94 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %93, i64 1, 1 + %95 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %94, i64 1, 2 + %96 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %97 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %96, 0 + %98 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %97, i64 0, 1 + %99 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %98, i64 0, 2 + %100 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %95, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %99, i1 false) + %101 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 2 }, ptr %100, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %102 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %103 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 5 }, ptr %102, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %104 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %105 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %104, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %101, ptr %105, align 8 + %106 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %104, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %103, ptr %106, align 8 + %107 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %104, 0 + %108 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %107, i64 2, 1 + %109 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %108, i64 2, 2 + %110 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %109) + store ptr %110, ptr @"main.struct$vwhCZhgsid50r1SsT8OmKpRI0Cpljg78h5JlpD1CTR4", align 8 + %111 = load ptr, ptr @"main.struct$vwhCZhgsid50r1SsT8OmKpRI0Cpljg78h5JlpD1CTR4", align 8 + %112 = load ptr, ptr @"main.struct$vwhCZhgsid50r1SsT8OmKpRI0Cpljg78h5JlpD1CTR4", align 8 + %113 = load ptr, ptr @"_llgo_func$_so3zZGPIhTQghxFcf7CCCVzSOk2lxOt7xgGKcTzc0s", align 8 + %114 = icmp eq ptr %113, null + br i1 %114, label %_llgo_19, label %_llgo_20 + +_llgo_19: ; preds = %_llgo_18 + %115 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %116 = getelementptr ptr, ptr %115, i64 0 + store ptr %112, ptr %116, align 8 + %117 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %115, 0 + %118 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %117, i64 1, 1 + %119 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %118, i64 1, 2 + %120 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %121 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %120, 0 + %122 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %121, i64 0, 1 + %123 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %122, i64 0, 2 + %124 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %119, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %123, i1 false) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %124) + store ptr %124, ptr @"_llgo_func$_so3zZGPIhTQghxFcf7CCCVzSOk2lxOt7xgGKcTzc0s", align 8 + br label %_llgo_20 + +_llgo_20: ; preds = %_llgo_19, %_llgo_18 + %125 = load ptr, ptr @"_llgo_func$_so3zZGPIhTQghxFcf7CCCVzSOk2lxOt7xgGKcTzc0s", align 8 + %126 = load ptr, ptr @"main.struct$vwhCZhgsid50r1SsT8OmKpRI0Cpljg78h5JlpD1CTR4", align 8 + %127 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %128 = getelementptr ptr, ptr %127, i64 0 + store ptr %126, ptr %128, align 8 + %129 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %127, 0 + %130 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %129, i64 1, 1 + %131 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %130, i64 1, 2 + %132 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %133 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %132, 0 + %134 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %133, i64 0, 1 + %135 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %134, i64 0, 2 + %136 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %131, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %135, i1 false) + %137 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 2 }, ptr %136, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %138 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %139 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 5 }, ptr %138, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %140 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %141 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %140, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %137, ptr %141, align 8 + %142 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %140, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %139, ptr %142, align 8 + %143 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %140, 0 + %144 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %143, i64 2, 1 + %145 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %144, i64 2, 2 + %146 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %145) + store ptr %146, ptr @"main.struct$awGH2Wh33bS1v_s7SNAwKW27E20HcwiiPPzh9UA7QDs", align 8 + %147 = load ptr, ptr @"main.struct$awGH2Wh33bS1v_s7SNAwKW27E20HcwiiPPzh9UA7QDs", align 8 + %148 = load ptr, ptr @"main.struct$vwhCZhgsid50r1SsT8OmKpRI0Cpljg78h5JlpD1CTR4", align 8 + %149 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 8) + %150 = getelementptr ptr, ptr %149, i64 0 + store ptr %148, ptr %150, align 8 + %151 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %149, 0 + %152 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %151, i64 1, 1 + %153 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %152, i64 1, 2 + %154 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 0) + %155 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %154, 0 + %156 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %155, i64 0, 1 + %157 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %156, i64 0, 2 + %158 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice" %153, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %157, i1 false) + %159 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @8, i64 2 }, ptr %158, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %160 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 58) + %161 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @9, i64 5 }, ptr %160, i64 8, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %162 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 112) + %163 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %162, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %159, ptr %163, align 8 + %164 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %162, i64 1 + store %"github.com/goplus/llgo/runtime/abi.StructField" %161, ptr %164, align 8 + %165 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %162, 0 + %166 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %165, i64 2, 1 + %167 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %166, i64 2, 2 + %168 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %167) + %169 = call %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @10, i64 2 }, ptr %168, i64 0, %"github.com/goplus/llgo/runtime/internal/runtime.String" zeroinitializer, i1 false) + %170 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 56) + %171 = getelementptr %"github.com/goplus/llgo/runtime/abi.StructField", ptr %170, i64 0 + store %"github.com/goplus/llgo/runtime/abi.StructField" %169, ptr %171, align 8 + %172 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %170, 0 + %173 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %172, i64 1, 1 + %174 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %173, i64 1, 2 + %175 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, i64 16, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %174) + store ptr %175, ptr @"main.struct$N1awC7qGapVTS_NFj1Q0jk6nCjATrIK-60oOEyDjabo", align 8 + %176 = load ptr, ptr @"main.struct$N1awC7qGapVTS_NFj1Q0jk6nCjATrIK-60oOEyDjabo", align 8 + %177 = load ptr, ptr @"_llgo_func$1BeCdGdxwWG-Dtl1HbNuSy2_sb8rBMTmu7zhcPPofmU", align 8 + %178 = load ptr, ptr @"main.struct$vwhCZhgsid50r1SsT8OmKpRI0Cpljg78h5JlpD1CTR4", align 8 + %179 = load ptr, ptr @"_llgo_func$_so3zZGPIhTQghxFcf7CCCVzSOk2lxOt7xgGKcTzc0s", align 8 + %180 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 4 }, ptr undef, ptr undef, ptr undef }, ptr %179, 1 + %181 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %180, ptr @"main.(*future[main.Tuple[error]]).Then", 2 + %182 = insertvalue %"github.com/goplus/llgo/runtime/abi.Method" %181, ptr @"main.(*future[main.Tuple[error]]).Then", 3 + %183 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 40) + %184 = getelementptr %"github.com/goplus/llgo/runtime/abi.Method", ptr %183, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Method" %182, ptr %184, align 8 + %185 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %183, 0 + %186 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %185, i64 1, 1 + %187 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %186, i64 1, 2 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %176, { ptr, i64, i64 } zeroinitializer, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %187) + %188 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 6 }, i64 25, i64 24, i64 0, i64 1) + %189 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr %188) + call void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr %189) + store ptr %189, ptr @"*_llgo_main.future[main.Tuple[error]]", align 8 + %190 = load ptr, ptr @"_llgo_func$_so3zZGPIhTQghxFcf7CCCVzSOk2lxOt7xgGKcTzc0s", align 8 + %191 = load ptr, ptr @"_llgo_iface$pTofAxYfPZHsCMD5T70nrOx1gjHf9m2QCLNvEOl1py0", align 8 + %192 = icmp eq ptr %191, null + br i1 %192, label %_llgo_21, label %_llgo_22 + +_llgo_21: ; preds = %_llgo_20 + %193 = insertvalue %"github.com/goplus/llgo/runtime/abi.Imethod" { %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @11, i64 4 }, ptr undef }, ptr %190, 1 + %194 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 24) + %195 = getelementptr %"github.com/goplus/llgo/runtime/abi.Imethod", ptr %194, i64 0 + store %"github.com/goplus/llgo/runtime/abi.Imethod" %193, ptr %195, align 8 + %196 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %194, 0 + %197 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %196, i64 1, 1 + %198 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %197, i64 1, 2 + %199 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %198) + store ptr %199, ptr @"_llgo_iface$pTofAxYfPZHsCMD5T70nrOx1gjHf9m2QCLNvEOl1py0", align 8 + br label %_llgo_22 + +_llgo_22: ; preds = %_llgo_21, %_llgo_20 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamedInterface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Func"(%"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice", i1) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.SetDirectIface"(ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamedInterface"(ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Struct"(%"github.com/goplus/llgo/runtime/internal/runtime.String", i64, %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare %"github.com/goplus/llgo/runtime/abi.StructField" @"github.com/goplus/llgo/runtime/internal/runtime.StructField"(%"github.com/goplus/llgo/runtime/internal/runtime.String", ptr, i64, %"github.com/goplus/llgo/runtime/internal/runtime.String", i1) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.PointerTo"(ptr) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Interface"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewItab"(ptr, ptr) + +attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testrt/typalias/in.go b/compiler/cl/_testrt/typalias/in.go similarity index 100% rename from cl/_testrt/typalias/in.go rename to compiler/cl/_testrt/typalias/in.go diff --git a/cl/_testrt/typalias/out.ll b/compiler/cl/_testrt/typalias/out.ll similarity index 79% rename from cl/_testrt/typalias/out.ll rename to compiler/cl/_testrt/typalias/out.ll index 54c4b87e..976e8bac 100644 --- a/cl/_testrt/typalias/out.ll +++ b/compiler/cl/_testrt/typalias/out.ll @@ -1,9 +1,9 @@ ; ModuleID = 'main' source_filename = "main" -%"github.com/goplus/llgo/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } -@"github.com/goplus/llgo/internal/runtime.cgoAlwaysFalse" = external global i1, align 1 +@"github.com/goplus/llgo/runtime/internal/runtime.cgoAlwaysFalse" = external global i1, align 1 @main.format = global [10 x i8] zeroinitializer, align 1 @"main.init$guard" = global i1 false, align 1 @__llgo_argc = global i32 0, align 4 @@ -30,9 +30,9 @@ _llgo_0: ret ptr %0 } -declare void @runtime.cgoUse(%"github.com/goplus/llgo/internal/runtime.eface") +declare void @runtime.cgoUse(%"github.com/goplus/llgo/runtime/internal/runtime.eface") -declare void @runtime.cgoCheckResult(%"github.com/goplus/llgo/internal/runtime.eface") +declare void @main._cgoCheckResult(%"github.com/goplus/llgo/runtime/internal/runtime.eface") define void @main.init() { _llgo_0: @@ -62,9 +62,9 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() - %2 = call ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64 8) + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 8) %3 = getelementptr inbounds { i32, i1 }, ptr %2, i32 0, i32 0 %4 = getelementptr inbounds { i32, i1 }, ptr %2, i32 0, i32 1 store i32 100, ptr %3, align 4 @@ -77,6 +77,6 @@ declare void @printf(ptr, ...) declare void @syscall.init() -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() -declare ptr @"github.com/goplus/llgo/internal/runtime.AllocZ"(i64) +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) diff --git a/cl/_testrt/typed/in.go b/compiler/cl/_testrt/typed/in.go similarity index 100% rename from cl/_testrt/typed/in.go rename to compiler/cl/_testrt/typed/in.go diff --git a/compiler/cl/_testrt/typed/out.ll b/compiler/cl/_testrt/typed/out.ll new file mode 100644 index 00000000..e2d62e03 --- /dev/null +++ b/compiler/cl/_testrt/typed/out.ll @@ -0,0 +1,234 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [5 x i8] c"hello", align 1 +@_llgo_main.T = linkonce global ptr null, align 8 +@1 = private unnamed_addr constant [4 x i8] c"main", align 1 +@2 = private unnamed_addr constant [1 x i8] c"T", align 1 +@_llgo_string = linkonce global ptr null, align 8 +@3 = private unnamed_addr constant [21 x i8] c"type assertion failed", align 1 +@_llgo_main.A = linkonce global ptr null, align 8 +@4 = private unnamed_addr constant [1 x i8] c"A", align 1 +@_llgo_int = linkonce global ptr null, align 8 +@"[2]_llgo_int" = linkonce global ptr null, align 8 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + %2 = load ptr, ptr @_llgo_main.T, align 8 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %3, align 8 + %4 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %2, 0 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %4, ptr %3, 1 + %6 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %5, 0 + %7 = load ptr, ptr @_llgo_main.T, align 8 + %8 = icmp eq ptr %6, %7 + br i1 %8, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %9 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %5, 1 + %10 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %9, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %10) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %11 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %5, 0 + %12 = load ptr, ptr @_llgo_string, align 8 + %13 = icmp eq ptr %11, %12 + br i1 %13, label %_llgo_3, label %_llgo_4 + +_llgo_2: ; preds = %_llgo_0 + %14 = load ptr, ptr @_llgo_string, align 8 + %15 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @3, i64 21 }, ptr %15, align 8 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %14, 0 + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %16, ptr %15, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %17) + unreachable + +_llgo_3: ; preds = %_llgo_1 + %18 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %5, 1 + %19 = load %"github.com/goplus/llgo/runtime/internal/runtime.String", ptr %18, align 8 + %20 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } undef, %"github.com/goplus/llgo/runtime/internal/runtime.String" %19, 0 + %21 = insertvalue { %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } %20, i1 true, 1 + br label %_llgo_5 + +_llgo_4: ; preds = %_llgo_1 + br label %_llgo_5 + +_llgo_5: ; preds = %_llgo_4, %_llgo_3 + %22 = phi { %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } [ %21, %_llgo_3 ], [ zeroinitializer, %_llgo_4 ] + %23 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } %22, 0 + %24 = extractvalue { %"github.com/goplus/llgo/runtime/internal/runtime.String", i1 } %22, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String" %23) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %24) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + %25 = alloca [2 x i64], align 8 + call void @llvm.memset(ptr %25, i8 0, i64 16, i1 false) + %26 = getelementptr inbounds i64, ptr %25, i64 0 + %27 = getelementptr inbounds i64, ptr %25, i64 1 + store i64 1, ptr %26, align 4 + store i64 2, ptr %27, align 4 + %28 = load [2 x i64], ptr %25, align 4 + %29 = load ptr, ptr @_llgo_main.A, align 8 + %30 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store [2 x i64] %28, ptr %30, align 4 + %31 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %29, 0 + %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %31, ptr %30, 1 + %33 = alloca [2 x i64], align 8 + call void @llvm.memset(ptr %33, i8 0, i64 16, i1 false) + %34 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %32, 0 + %35 = load ptr, ptr @_llgo_main.A, align 8 + %36 = icmp eq ptr %34, %35 + br i1 %36, label %_llgo_6, label %_llgo_7 + +_llgo_6: ; preds = %_llgo_5 + %37 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %32, 1 + %38 = load [2 x i64], ptr %37, align 4 + %39 = insertvalue { [2 x i64], i1 } undef, [2 x i64] %38, 0 + %40 = insertvalue { [2 x i64], i1 } %39, i1 true, 1 + br label %_llgo_8 + +_llgo_7: ; preds = %_llgo_5 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %41 = phi { [2 x i64], i1 } [ %40, %_llgo_6 ], [ zeroinitializer, %_llgo_7 ] + %42 = extractvalue { [2 x i64], i1 } %41, 0 + store [2 x i64] %42, ptr %33, align 4 + %43 = extractvalue { [2 x i64], i1 } %41, 1 + %44 = getelementptr inbounds i64, ptr %33, i64 0 + %45 = load i64, ptr %44, align 4 + %46 = getelementptr inbounds i64, ptr %33, i64 1 + %47 = load i64, ptr %46, align 4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %45) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64 %47) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 32) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1 %43) + call void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8 10) + ret i32 0 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +define void @"main.init$after"() { +_llgo_0: + %0 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 1 }, i64 24, i64 16, i64 0, i64 0) + %1 = load ptr, ptr @_llgo_main.T, align 8 + %2 = icmp eq ptr %1, null + br i1 %2, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + store ptr %0, ptr @_llgo_main.T, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + %3 = load ptr, ptr @_llgo_string, align 8 + %4 = icmp eq ptr %3, null + br i1 %4, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %5 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %5, ptr @_llgo_string, align 8 + br label %_llgo_4 + +_llgo_4: ; preds = %_llgo_3, %_llgo_2 + %6 = load ptr, ptr @_llgo_string, align 8 + br i1 %2, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %0, ptr %6, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_6 + +_llgo_6: ; preds = %_llgo_5, %_llgo_4 + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 4 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @4, i64 1 }, i64 17, i64 16, i64 0, i64 0) + %8 = load ptr, ptr @_llgo_main.A, align 8 + %9 = icmp eq ptr %8, null + br i1 %9, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + store ptr %7, ptr @_llgo_main.A, align 8 + br label %_llgo_8 + +_llgo_8: ; preds = %_llgo_7, %_llgo_6 + %10 = load ptr, ptr @_llgo_int, align 8 + %11 = icmp eq ptr %10, null + br i1 %11, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %12 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + store ptr %12, ptr @_llgo_int, align 8 + br label %_llgo_10 + +_llgo_10: ; preds = %_llgo_9, %_llgo_8 + %13 = load ptr, ptr @_llgo_int, align 8 + %14 = load ptr, ptr @"[2]_llgo_int", align 8 + %15 = icmp eq ptr %14, null + br i1 %15, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + %16 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 34) + %17 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64 2, ptr %16) + store ptr %17, ptr @"[2]_llgo_int", align 8 + br label %_llgo_12 + +_llgo_12: ; preds = %_llgo_11, %_llgo_10 + %18 = load ptr, ptr @"[2]_llgo_int", align 8 + br i1 %9, label %_llgo_13, label %_llgo_14 + +_llgo_13: ; preds = %_llgo_12 + call void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr %7, ptr %18, { ptr, i64, i64 } zeroinitializer, { ptr, i64, i64 } zeroinitializer) + br label %_llgo_14 + +_llgo_14: ; preds = %_llgo_13, %_llgo_12 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.NewNamed"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String", i64, i64, i64, i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.InitNamed"(ptr, ptr, %"github.com/goplus/llgo/runtime/internal/runtime.Slice", %"github.com/goplus/llgo/runtime/internal/runtime.Slice") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintString"(%"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintByte"(i8) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintBool"(i1) + +; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) +declare void @llvm.memset(ptr nocapture writeonly, i8, i64, i1 immarg) #0 + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.ArrayOf"(i64, ptr) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.PrintInt"(i64) + +attributes #0 = { nocallback nofree nounwind willreturn memory(argmem: write) } diff --git a/cl/_testrt/unreachable/in.go b/compiler/cl/_testrt/unreachable/in.go similarity index 100% rename from cl/_testrt/unreachable/in.go rename to compiler/cl/_testrt/unreachable/in.go diff --git a/cl/_testrt/unreachable/out.ll b/compiler/cl/_testrt/unreachable/out.ll similarity index 86% rename from cl/_testrt/unreachable/out.ll rename to compiler/cl/_testrt/unreachable/out.ll index 3f984679..28f8ad08 100644 --- a/cl/_testrt/unreachable/out.ll +++ b/compiler/cl/_testrt/unreachable/out.ll @@ -29,13 +29,13 @@ define i32 @main(i32 %0, ptr %1) { _llgo_0: store i32 %0, ptr @__llgo_argc, align 4 store ptr %1, ptr @__llgo_argv, align 8 - call void @"github.com/goplus/llgo/internal/runtime.init"() + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() call void @main.init() call void @main.foo() %2 = call i32 (ptr, ...) @printf(ptr @0) ret i32 0 } -declare void @"github.com/goplus/llgo/internal/runtime.init"() +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() declare i32 @printf(ptr, ...) diff --git a/cl/_testrt/unsafe/in.go b/compiler/cl/_testrt/unsafe/in.go similarity index 100% rename from cl/_testrt/unsafe/in.go rename to compiler/cl/_testrt/unsafe/in.go diff --git a/compiler/cl/_testrt/unsafe/out.ll b/compiler/cl/_testrt/unsafe/out.ll new file mode 100644 index 00000000..b0d07dba --- /dev/null +++ b/compiler/cl/_testrt/unsafe/out.ll @@ -0,0 +1,289 @@ +; ModuleID = 'main' +source_filename = "main" + +%"github.com/goplus/llgo/runtime/internal/runtime.String" = type { ptr, i64 } +%"github.com/goplus/llgo/runtime/internal/runtime.eface" = type { ptr, ptr } +%"github.com/goplus/llgo/runtime/internal/runtime.Slice" = type { ptr, i64, i64 } + +@"main.init$guard" = global i1 false, align 1 +@__llgo_argc = global i32 0, align 4 +@__llgo_argv = global ptr null, align 8 +@0 = private unnamed_addr constant [5 x i8] c"error", align 1 +@_llgo_string = linkonce global ptr null, align 8 +@1 = private unnamed_addr constant [4 x i8] c"abc\00", align 1 +@2 = private unnamed_addr constant [3 x i8] c"abc", align 1 + +define void @main.init() { +_llgo_0: + %0 = load i1, ptr @"main.init$guard", align 1 + br i1 %0, label %_llgo_2, label %_llgo_1 + +_llgo_1: ; preds = %_llgo_0 + store i1 true, ptr @"main.init$guard", align 1 + call void @"main.init$after"() + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +define i32 @main(i32 %0, ptr %1) { +_llgo_0: + store i32 %0, ptr @__llgo_argc, align 4 + store ptr %1, ptr @__llgo_argv, align 8 + call void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + call void @main.init() + br i1 false, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = load ptr, ptr @_llgo_string, align 8 + %3 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %3, align 8 + %4 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %2, 0 + %5 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %4, ptr %3, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %5) + unreachable + +_llgo_2: ; preds = %_llgo_0 + br i1 false, label %_llgo_3, label %_llgo_4 + +_llgo_3: ; preds = %_llgo_2 + %6 = load ptr, ptr @_llgo_string, align 8 + %7 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %7, align 8 + %8 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %6, 0 + %9 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %8, ptr %7, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %9) + unreachable + +_llgo_4: ; preds = %_llgo_2 + br i1 false, label %_llgo_5, label %_llgo_6 + +_llgo_5: ; preds = %_llgo_4 + %10 = load ptr, ptr @_llgo_string, align 8 + %11 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %11, align 8 + %12 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %10, 0 + %13 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %12, ptr %11, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %13) + unreachable + +_llgo_6: ; preds = %_llgo_4 + br i1 false, label %_llgo_7, label %_llgo_8 + +_llgo_7: ; preds = %_llgo_6 + %14 = load ptr, ptr @_llgo_string, align 8 + %15 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %15, align 8 + %16 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %14, 0 + %17 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %16, ptr %15, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %17) + unreachable + +_llgo_8: ; preds = %_llgo_6 + br i1 false, label %_llgo_9, label %_llgo_10 + +_llgo_9: ; preds = %_llgo_8 + %18 = load ptr, ptr @_llgo_string, align 8 + %19 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %19, align 8 + %20 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %18, 0 + %21 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %20, ptr %19, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %21) + unreachable + +_llgo_10: ; preds = %_llgo_8 + br i1 false, label %_llgo_11, label %_llgo_12 + +_llgo_11: ; preds = %_llgo_10 + %22 = load ptr, ptr @_llgo_string, align 8 + %23 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %23, align 8 + %24 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %22, 0 + %25 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %24, ptr %23, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %25) + unreachable + +_llgo_12: ; preds = %_llgo_10 + br i1 false, label %_llgo_13, label %_llgo_14 + +_llgo_13: ; preds = %_llgo_12 + %26 = load ptr, ptr @_llgo_string, align 8 + %27 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %27, align 8 + %28 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %26, 0 + %29 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %28, ptr %27, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %29) + unreachable + +_llgo_14: ; preds = %_llgo_12 + br i1 false, label %_llgo_15, label %_llgo_16 + +_llgo_15: ; preds = %_llgo_14 + %30 = load ptr, ptr @_llgo_string, align 8 + %31 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %31, align 8 + %32 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %30, 0 + %33 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %32, ptr %31, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %33) + unreachable + +_llgo_16: ; preds = %_llgo_14 + br i1 false, label %_llgo_17, label %_llgo_18 + +_llgo_17: ; preds = %_llgo_16 + %34 = load ptr, ptr @_llgo_string, align 8 + %35 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %35, align 8 + %36 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %34, 0 + %37 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %36, ptr %35, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %37) + unreachable + +_llgo_18: ; preds = %_llgo_16 + br i1 false, label %_llgo_19, label %_llgo_20 + +_llgo_19: ; preds = %_llgo_18 + %38 = load ptr, ptr @_llgo_string, align 8 + %39 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %39, align 8 + %40 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %38, 0 + %41 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %40, ptr %39, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %41) + unreachable + +_llgo_20: ; preds = %_llgo_18 + %42 = call i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @1, i64 3 }, %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @2, i64 3 }) + %43 = xor i1 %42, true + br i1 %43, label %_llgo_21, label %_llgo_22 + +_llgo_21: ; preds = %_llgo_20 + %44 = load ptr, ptr @_llgo_string, align 8 + %45 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %45, align 8 + %46 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %44, 0 + %47 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %46, ptr %45, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %47) + unreachable + +_llgo_22: ; preds = %_llgo_20 + %48 = load i8, ptr @1, align 1 + %49 = icmp ne i8 %48, 97 + br i1 %49, label %_llgo_23, label %_llgo_26 + +_llgo_23: ; preds = %_llgo_25, %_llgo_26, %_llgo_22 + %50 = load ptr, ptr @_llgo_string, align 8 + %51 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %51, align 8 + %52 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %50, 0 + %53 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %52, ptr %51, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %53) + unreachable + +_llgo_24: ; preds = %_llgo_25 + %54 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64 16) + %55 = getelementptr inbounds i64, ptr %54, i64 0 + %56 = getelementptr inbounds i64, ptr %54, i64 1 + store i64 1, ptr %55, align 4 + store i64 2, ptr %56, align 4 + %57 = getelementptr inbounds i64, ptr %54, i64 0 + %58 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" undef, ptr %57, 0 + %59 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %58, i64 2, 1 + %60 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %59, i64 2, 2 + %61 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, 0 + %62 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, 1 + %63 = icmp sge i64 0, %62 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %63) + %64 = getelementptr inbounds i64, ptr %61, i64 0 + %65 = load i64, ptr %64, align 4 + %66 = icmp ne i64 %65, 1 + br i1 %66, label %_llgo_27, label %_llgo_29 + +_llgo_25: ; preds = %_llgo_26 + %67 = load i8, ptr getelementptr inbounds (i8, ptr @1, i64 2), align 1 + %68 = icmp ne i8 %67, 99 + br i1 %68, label %_llgo_23, label %_llgo_24 + +_llgo_26: ; preds = %_llgo_22 + %69 = load i8, ptr getelementptr inbounds (i8, ptr @1, i64 1), align 1 + %70 = icmp ne i8 %69, 98 + br i1 %70, label %_llgo_23, label %_llgo_25 + +_llgo_27: ; preds = %_llgo_29, %_llgo_24 + %71 = load ptr, ptr @_llgo_string, align 8 + %72 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %72, align 8 + %73 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %71, 0 + %74 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %73, ptr %72, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %74) + unreachable + +_llgo_28: ; preds = %_llgo_29 + %75 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, 0 + %76 = load i64, ptr %75, align 4 + %77 = icmp ne i64 %76, 1 + br i1 %77, label %_llgo_30, label %_llgo_31 + +_llgo_29: ; preds = %_llgo_24 + %78 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, 0 + %79 = extractvalue %"github.com/goplus/llgo/runtime/internal/runtime.Slice" %60, 1 + %80 = icmp sge i64 1, %79 + call void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1 %80) + %81 = getelementptr inbounds i64, ptr %78, i64 1 + %82 = load i64, ptr %81, align 4 + %83 = icmp ne i64 %82, 2 + br i1 %83, label %_llgo_27, label %_llgo_28 + +_llgo_30: ; preds = %_llgo_28 + %84 = load ptr, ptr @_llgo_string, align 8 + %85 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %85, align 8 + %86 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %84, 0 + %87 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %86, ptr %85, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %87) + unreachable + +_llgo_31: ; preds = %_llgo_28 + br i1 icmp ne (i64 ptrtoint (ptr getelementptr (i8, ptr null, i64 1) to i64), i64 1), label %_llgo_32, label %_llgo_33 + +_llgo_32: ; preds = %_llgo_31 + %88 = load ptr, ptr @_llgo_string, align 8 + %89 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64 16) + store %"github.com/goplus/llgo/runtime/internal/runtime.String" { ptr @0, i64 5 }, ptr %89, align 8 + %90 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" undef, ptr %88, 0 + %91 = insertvalue %"github.com/goplus/llgo/runtime/internal/runtime.eface" %90, ptr %89, 1 + call void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface" %91) + unreachable + +_llgo_33: ; preds = %_llgo_31 + ret i32 0 +} + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.init"() + +define void @"main.init$after"() { +_llgo_0: + %0 = load ptr, ptr @_llgo_string, align 8 + %1 = icmp eq ptr %0, null + br i1 %1, label %_llgo_1, label %_llgo_2 + +_llgo_1: ; preds = %_llgo_0 + %2 = call ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64 24) + store ptr %2, ptr @_llgo_string, align 8 + br label %_llgo_2 + +_llgo_2: ; preds = %_llgo_1, %_llgo_0 + ret void +} + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.Basic"(i64) + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocU"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.Panic"(%"github.com/goplus/llgo/runtime/internal/runtime.eface") + +declare i1 @"github.com/goplus/llgo/runtime/internal/runtime.StringEqual"(%"github.com/goplus/llgo/runtime/internal/runtime.String", %"github.com/goplus/llgo/runtime/internal/runtime.String") + +declare ptr @"github.com/goplus/llgo/runtime/internal/runtime.AllocZ"(i64) + +declare void @"github.com/goplus/llgo/runtime/internal/runtime.AssertIndexRange"(i1) diff --git a/cl/blocks/block.go b/compiler/cl/blocks/block.go similarity index 98% rename from cl/blocks/block.go rename to compiler/cl/blocks/block.go index 4f220339..2ba328ec 100644 --- a/cl/blocks/block.go +++ b/compiler/cl/blocks/block.go @@ -17,7 +17,7 @@ package blocks import ( - llssa "github.com/goplus/llgo/ssa" + llssa "github.com/goplus/llgo/compiler/ssa" "golang.org/x/tools/go/ssa" ) diff --git a/cl/blocks/block_test.go b/compiler/cl/blocks/block_test.go similarity index 98% rename from cl/blocks/block_test.go rename to compiler/cl/blocks/block_test.go index f30b582c..8a6d9c8b 100644 --- a/cl/blocks/block_test.go +++ b/compiler/cl/blocks/block_test.go @@ -33,7 +33,7 @@ import ( "golang.org/x/tools/go/ssa" "golang.org/x/tools/go/ssa/ssautil" - llssa "github.com/goplus/llgo/ssa" + llssa "github.com/goplus/llgo/compiler/ssa" ) func TestTestdefer(t *testing.T) { diff --git a/cl/builtin_test.go b/compiler/cl/builtin_test.go similarity index 99% rename from cl/builtin_test.go rename to compiler/cl/builtin_test.go index d9fbc3fb..d52ed6d0 100644 --- a/cl/builtin_test.go +++ b/compiler/cl/builtin_test.go @@ -23,7 +23,7 @@ import ( "testing" "unsafe" - llssa "github.com/goplus/llgo/ssa" + llssa "github.com/goplus/llgo/compiler/ssa" "golang.org/x/tools/go/ssa" ) diff --git a/cl/cltest/cltest.go b/compiler/cl/cltest/cltest.go similarity index 95% rename from cl/cltest/cltest.go rename to compiler/cl/cltest/cltest.go index 5bfde54f..0e0cd0ec 100644 --- a/cl/cltest/cltest.go +++ b/compiler/cl/cltest/cltest.go @@ -32,13 +32,13 @@ import ( "testing" "github.com/goplus/gogen/packages" - "github.com/goplus/llgo/cl" - "github.com/goplus/llgo/internal/llgen" - "github.com/goplus/llgo/ssa/ssatest" + "github.com/goplus/llgo/compiler/cl" + "github.com/goplus/llgo/compiler/internal/llgen" + "github.com/goplus/llgo/compiler/ssa/ssatest" "golang.org/x/tools/go/ssa" "golang.org/x/tools/go/ssa/ssautil" - llssa "github.com/goplus/llgo/ssa" + llssa "github.com/goplus/llgo/compiler/ssa" ) func init() { diff --git a/cl/compile.go b/compiler/cl/compile.go similarity index 99% rename from cl/compile.go rename to compiler/cl/compile.go index 62441e69..fe15ab8b 100644 --- a/cl/compile.go +++ b/compiler/cl/compile.go @@ -27,11 +27,11 @@ import ( "sort" "strings" - "github.com/goplus/llgo/cl/blocks" - "github.com/goplus/llgo/internal/typepatch" + "github.com/goplus/llgo/compiler/cl/blocks" + "github.com/goplus/llgo/compiler/internal/typepatch" "golang.org/x/tools/go/ssa" - llssa "github.com/goplus/llgo/ssa" + llssa "github.com/goplus/llgo/compiler/ssa" ) // ----------------------------------------------------------------------------- @@ -503,7 +503,7 @@ func callRuntimeInit(b llssa.Builder, pkg llssa.Package) { } func isAny(t types.Type) bool { - if t, ok := t.(*types.Interface); ok { + if t, ok := t.Underlying().(*types.Interface); ok { return t.Empty() } return false diff --git a/cl/compile_test.go b/compiler/cl/compile_test.go similarity index 95% rename from cl/compile_test.go rename to compiler/cl/compile_test.go index 4618ffef..5922f66f 100644 --- a/cl/compile_test.go +++ b/compiler/cl/compile_test.go @@ -19,9 +19,9 @@ package cl_test import ( "testing" - "github.com/goplus/llgo/cl" - "github.com/goplus/llgo/cl/cltest" - "github.com/goplus/llgo/internal/build" + "github.com/goplus/llgo/compiler/cl" + "github.com/goplus/llgo/compiler/cl/cltest" + "github.com/goplus/llgo/compiler/internal/build" ) func testCompile(t *testing.T, src, expected string) { diff --git a/cl/import.go b/compiler/cl/import.go similarity index 98% rename from cl/import.go rename to compiler/cl/import.go index 8e163e9a..944da09b 100644 --- a/cl/import.go +++ b/compiler/cl/import.go @@ -28,7 +28,8 @@ import ( "golang.org/x/tools/go/ssa" - llssa "github.com/goplus/llgo/ssa" + "github.com/goplus/llgo/compiler/internal/env" + llssa "github.com/goplus/llgo/compiler/ssa" ) // ----------------------------------------------------------------------------- @@ -617,7 +618,7 @@ func pkgKindByPath(pkgPath string) int { func replaceGoName(v string, pos int) string { switch v[:pos] { case "runtime": - return "github.com/goplus/llgo/internal/runtime" + v[pos:] + return env.LLGoRuntimePkg + "/internal/runtime" + v[pos:] } return v } @@ -636,7 +637,8 @@ func ignoreName(name string) bool { func supportedInternal(name string) bool { return strings.HasPrefix(name, "abi.") || strings.HasPrefix(name, "bytealg.") || - strings.HasPrefix(name, "itoa.") || strings.HasPrefix(name, "oserror.") || strings.HasPrefix(name, "reflectlite.") || + strings.HasPrefix(name, "itoa.") || strings.HasPrefix(name, "oserror.") || strings.HasPrefix(name, "race.") || + strings.HasPrefix(name, "reflectlite.") || strings.HasPrefix(name, "stringslite.") || strings.HasPrefix(name, "filepathlite.") || strings.HasPrefix(name, "syscall/unix.") || strings.HasPrefix(name, "syscall/execenv.") } diff --git a/cl/instr.go b/compiler/cl/instr.go similarity index 99% rename from cl/instr.go rename to compiler/cl/instr.go index e9c9effa..d938d40f 100644 --- a/cl/instr.go +++ b/compiler/cl/instr.go @@ -23,7 +23,7 @@ import ( "golang.org/x/tools/go/ssa" - llssa "github.com/goplus/llgo/ssa" + llssa "github.com/goplus/llgo/compiler/ssa" ) // ----------------------------------------------------------------------------- diff --git a/cmd/internal/base/base.go b/compiler/cmd/internal/base/base.go similarity index 99% rename from cmd/internal/base/base.go rename to compiler/cmd/internal/base/base.go index e23061cf..9876b837 100644 --- a/cmd/internal/base/base.go +++ b/compiler/cmd/internal/base/base.go @@ -22,7 +22,6 @@ import ( "flag" "fmt" "io" - "os" "strings" ) @@ -87,7 +86,6 @@ func (c *Command) Usage(w io.Writer) { c.Flag.SetOutput(w) c.Flag.PrintDefaults() fmt.Fprintln(w) - os.Exit(2) } // Runnable reports whether the command can be run; otherwise diff --git a/cmd/internal/build/build.go b/compiler/cmd/internal/build/build.go similarity index 92% rename from cmd/internal/build/build.go rename to compiler/cmd/internal/build/build.go index c578a8ee..fb704c51 100644 --- a/cmd/internal/build/build.go +++ b/compiler/cmd/internal/build/build.go @@ -21,8 +21,8 @@ import ( "fmt" "os" - "github.com/goplus/llgo/cmd/internal/base" - "github.com/goplus/llgo/internal/build" + "github.com/goplus/llgo/compiler/cmd/internal/base" + "github.com/goplus/llgo/compiler/internal/build" ) // llgo build diff --git a/cmd/internal/clean/clean.go b/compiler/cmd/internal/clean/clean.go similarity index 90% rename from cmd/internal/clean/clean.go rename to compiler/cmd/internal/clean/clean.go index f0b12fe2..6d3d7e2f 100644 --- a/cmd/internal/clean/clean.go +++ b/compiler/cmd/internal/clean/clean.go @@ -18,8 +18,8 @@ package clean import ( - "github.com/goplus/llgo/cmd/internal/base" - "github.com/goplus/llgo/internal/build" + "github.com/goplus/llgo/compiler/cmd/internal/base" + "github.com/goplus/llgo/compiler/internal/build" ) // llgo build diff --git a/cmd/internal/get/get.go b/compiler/cmd/internal/get/get.go similarity index 94% rename from cmd/internal/get/get.go rename to compiler/cmd/internal/get/get.go index f9d40745..fb51b57d 100644 --- a/cmd/internal/get/get.go +++ b/compiler/cmd/internal/get/get.go @@ -18,7 +18,7 @@ package get import ( - "github.com/goplus/llgo/cmd/internal/base" + "github.com/goplus/llgo/compiler/cmd/internal/base" ) // llgo get diff --git a/cmd/internal/help/help.go b/compiler/cmd/internal/help/help.go similarity index 98% rename from cmd/internal/help/help.go rename to compiler/cmd/internal/help/help.go index a1d07005..16c72298 100644 --- a/cmd/internal/help/help.go +++ b/compiler/cmd/internal/help/help.go @@ -28,7 +28,7 @@ import ( "unicode" "unicode/utf8" - "github.com/goplus/llgo/cmd/internal/base" + "github.com/goplus/llgo/compiler/cmd/internal/base" ) // Help implements the 'help' command. diff --git a/cmd/internal/install/install.go b/compiler/cmd/internal/install/install.go similarity index 91% rename from cmd/internal/install/install.go rename to compiler/cmd/internal/install/install.go index 5c0f5621..f917ed42 100644 --- a/cmd/internal/install/install.go +++ b/compiler/cmd/internal/install/install.go @@ -21,8 +21,8 @@ import ( "fmt" "os" - "github.com/goplus/llgo/cmd/internal/base" - "github.com/goplus/llgo/internal/build" + "github.com/goplus/llgo/compiler/cmd/internal/base" + "github.com/goplus/llgo/compiler/internal/build" ) // llgo install diff --git a/cmd/internal/run/run.go b/compiler/cmd/internal/run/run.go similarity index 95% rename from cmd/internal/run/run.go rename to compiler/cmd/internal/run/run.go index 2b5ff2ad..cb37f73e 100644 --- a/cmd/internal/run/run.go +++ b/compiler/cmd/internal/run/run.go @@ -23,8 +23,8 @@ import ( "os" "path/filepath" - "github.com/goplus/llgo/cmd/internal/base" - "github.com/goplus/llgo/internal/build" + "github.com/goplus/llgo/compiler/cmd/internal/base" + "github.com/goplus/llgo/compiler/internal/build" ) var ( diff --git a/cmd/internal/version/version.go b/compiler/cmd/internal/version/version.go similarity index 95% rename from cmd/internal/version/version.go rename to compiler/cmd/internal/version/version.go index 1a6adffc..9caf7cb2 100644 --- a/cmd/internal/version/version.go +++ b/compiler/cmd/internal/version/version.go @@ -20,7 +20,7 @@ import ( "fmt" "runtime" - "github.com/goplus/llgo/cmd/internal/base" + "github.com/goplus/llgo/compiler/cmd/internal/base" "github.com/goplus/llgo/x/env" ) diff --git a/cmd/llgo/llgo.go b/compiler/cmd/llgo/llgo.go similarity index 82% rename from cmd/llgo/llgo.go rename to compiler/cmd/llgo/llgo.go index de2d9b93..5ac3b026 100644 --- a/cmd/llgo/llgo.go +++ b/compiler/cmd/llgo/llgo.go @@ -24,19 +24,18 @@ import ( "github.com/qiniu/x/log" - "github.com/goplus/llgo/cmd/internal/base" - "github.com/goplus/llgo/cmd/internal/build" - "github.com/goplus/llgo/cmd/internal/clean" - "github.com/goplus/llgo/cmd/internal/get" - "github.com/goplus/llgo/cmd/internal/help" - "github.com/goplus/llgo/cmd/internal/install" - "github.com/goplus/llgo/cmd/internal/run" - "github.com/goplus/llgo/cmd/internal/version" + "github.com/goplus/llgo/compiler/cmd/internal/base" + "github.com/goplus/llgo/compiler/cmd/internal/build" + "github.com/goplus/llgo/compiler/cmd/internal/clean" + "github.com/goplus/llgo/compiler/cmd/internal/get" + "github.com/goplus/llgo/compiler/cmd/internal/help" + "github.com/goplus/llgo/compiler/cmd/internal/install" + "github.com/goplus/llgo/compiler/cmd/internal/run" + "github.com/goplus/llgo/compiler/cmd/internal/version" ) func mainUsage() { help.PrintUsage(os.Stderr, base.Llgo) - os.Exit(2) } func init() { @@ -57,6 +56,7 @@ func main() { args := flag.Args() if len(args) < 1 { flag.Usage() + return } log.SetFlags(log.Ldefault &^ log.LstdFlags) diff --git a/compiler/cmd/llgo/llgo_test.go b/compiler/cmd/llgo/llgo_test.go new file mode 100644 index 00000000..fbdf21de --- /dev/null +++ b/compiler/cmd/llgo/llgo_test.go @@ -0,0 +1,341 @@ +package main + +import ( + "bytes" + "flag" + "io" + "os" + "path/filepath" + "strings" + "testing" + + "github.com/goplus/llgo/compiler/cmd/internal/base" + "github.com/goplus/llgo/compiler/cmd/internal/build" + "github.com/goplus/llgo/compiler/cmd/internal/help" + "github.com/goplus/llgo/compiler/cmd/internal/install" + "github.com/goplus/llgo/compiler/cmd/internal/run" + "github.com/goplus/llgo/compiler/cmd/internal/version" +) + +func setupTestProject(t *testing.T) string { + // Create a temporary directory for the test project + tmpDir, err := os.MkdirTemp("", "llgo-test-*") + if err != nil { + t.Fatalf("Failed to create temp dir: %v", err) + } + + // Create a simple Go program + mainFile := filepath.Join(tmpDir, "main.go") + err = os.WriteFile(mainFile, []byte(`package main + +import "fmt" + +func main() { + fmt.Println("Hello, LLGO!") +} +`), 0644) + if err != nil { + os.RemoveAll(tmpDir) + t.Fatalf("Failed to write main.go: %v", err) + } + + // Create a go.mod file + goMod := filepath.Join(tmpDir, "go.mod") + err = os.WriteFile(goMod, []byte(`module testproject + +go 1.20 +`), 0644) + if err != nil { + os.RemoveAll(tmpDir) + t.Fatalf("Failed to write go.mod: %v", err) + } + + return tmpDir +} + +func TestProjectCommands(t *testing.T) { + // Setup test project + tmpDir := setupTestProject(t) + defer os.RemoveAll(tmpDir) + + // Save original working directory and environment + origWd, err := os.Getwd() + if err != nil { + t.Fatalf("Failed to get current directory: %v", err) + } + defer os.Chdir(origWd) + + // Change to test project directory + if err := os.Chdir(tmpDir); err != nil { + t.Fatalf("Failed to change to test directory: %v", err) + } + + tests := []struct { + name string + cmd *base.Command + args []string + wantErr bool + }{ + { + name: "build command", + cmd: build.Cmd, + args: []string{"."}, + wantErr: false, + }, + { + name: "install command", + cmd: install.Cmd, + args: []string{"."}, + wantErr: false, + }, + { + name: "run command", + cmd: run.Cmd, + args: []string{"main.go"}, + wantErr: false, + }, + } + + // Save original args and flags + oldArgs := os.Args + oldFlagCommandLine := flag.CommandLine + oldStdout := os.Stdout + oldStderr := os.Stderr + defer func() { + os.Args = oldArgs + flag.CommandLine = oldFlagCommandLine + os.Stdout = oldStdout + os.Stderr = oldStderr + }() + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + // Reset flag.CommandLine for each test + flag.CommandLine = flag.NewFlagSet("llgo", flag.ContinueOnError) + + // Setup command arguments + args := append([]string{"llgo", tt.cmd.Name()}, tt.args...) + os.Args = args + + // Capture output + outR, outW, err := os.Pipe() + if err != nil { + t.Fatalf("Failed to create stdout pipe: %v", err) + } + errR, errW, err := os.Pipe() + if err != nil { + t.Fatalf("Failed to create stderr pipe: %v", err) + } + + os.Stdout = outW + os.Stderr = errW + + // Run command + done := make(chan struct{}) + var outBuf, errBuf bytes.Buffer + go func() { + _, _ = io.Copy(&outBuf, outR) + done <- struct{}{} + }() + go func() { + _, _ = io.Copy(&errBuf, errR) + done <- struct{}{} + }() + + panicked := false + func() { + defer func() { + if r := recover(); r != nil { + panicked = true + t.Logf("%s: Command panicked: %v", tt.name, r) + } + outW.Close() + errW.Close() + }() + + flag.Parse() + base.CmdName = tt.cmd.Name() + + if !tt.cmd.Runnable() { + t.Fatalf("%s: Command is not runnable", tt.name) + } + + // Print current working directory and files for debugging + if cwd, err := os.Getwd(); err == nil { + t.Logf("%s: Current working directory: %s", tt.name, cwd) + if files, err := os.ReadDir("."); err == nil { + t.Log("Files in current directory:") + for _, f := range files { + t.Logf(" %s", f.Name()) + } + } + } + + // Run the command + tt.cmd.Run(tt.cmd, tt.args) + }() + + <-done + <-done + + // Check output + outStr := outBuf.String() + errStr := errBuf.String() + + if outStr == "" && errStr == "" && !panicked { + t.Logf("%s: Command completed with no output", tt.name) + } else { + if outStr != "" { + t.Logf("%s stdout:\n%s", tt.name, outStr) + } + if errStr != "" { + t.Logf("%s stderr:\n%s", tt.name, errStr) + } + } + + // Check if the command succeeded + if !tt.wantErr { + // For build/install commands, check if binary was created + if tt.cmd == build.Cmd || tt.cmd == install.Cmd { + binName := "testproject" + if _, err := os.Stat(binName); os.IsNotExist(err) { + t.Logf("%s: Binary %s was not created", tt.name, binName) + } + } + + // For run command, check if output contains expected string + if tt.cmd == run.Cmd { + if !strings.Contains(outStr, "Hello, LLGO!") { + t.Logf("%s: Expected output to contain 'Hello, LLGO!', got:\n%s", tt.name, outStr) + } + } + + // Check for common error indicators, but don't fail the test + if strings.Contains(errStr, "error:") || strings.Contains(errStr, "failed") { + // Ignore LLVM reexported library warning + if !strings.Contains(errStr, "ld: warning: reexported library") { + t.Logf("%s: Command produced error output:\n%s", tt.name, errStr) + } + } + } + }) + } +} + +func TestCommandHandling(t *testing.T) { + // Save original args and flags + oldArgs := os.Args + oldFlagCommandLine := flag.CommandLine + defer func() { + os.Args = oldArgs + flag.CommandLine = oldFlagCommandLine + }() + + tests := []struct { + name string + args []string + wantErr bool + commands []*base.Command + }{ + { + name: "version command", + args: []string{"llgo", "version"}, + wantErr: false, + commands: []*base.Command{ + version.Cmd, + }, + }, + { + name: "build command", + args: []string{"llgo", "build"}, + wantErr: false, + commands: []*base.Command{ + build.Cmd, + }, + }, + { + name: "unknown command", + args: []string{"llgo", "unknowncommand"}, + wantErr: true, + }, + { + name: "help command", + args: []string{"llgo", "help"}, + wantErr: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + // Reset flag.CommandLine for each test + flag.CommandLine = flag.NewFlagSet(tt.args[0], flag.ExitOnError) + os.Args = tt.args + + if tt.commands != nil { + base.Llgo.Commands = tt.commands + } + + // Capture panic that would normally exit + defer func() { + if r := recover(); r != nil { + if !tt.wantErr { + t.Errorf("unexpected panic: %v", r) + } + } + }() + + flag.Parse() + if len(tt.args) > 1 { + base.CmdName = tt.args[1] + } + }) + } +} + +func TestHelpCommand(t *testing.T) { + oldArgs := os.Args + oldFlagCommandLine := flag.CommandLine + defer func() { + os.Args = oldArgs + flag.CommandLine = oldFlagCommandLine + }() + + tests := []struct { + name string + args []string + wantErr bool + }{ + { + name: "help without subcommand", + args: []string{"llgo", "help"}, + wantErr: false, + }, + { + name: "help with subcommand", + args: []string{"llgo", "help", "build"}, + wantErr: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + flag.CommandLine = flag.NewFlagSet(tt.args[0], flag.ExitOnError) + os.Args = tt.args + + var buf bytes.Buffer + defer func() { + if r := recover(); r != nil { + if !tt.wantErr { + t.Errorf("unexpected panic: %v", r) + } + } + }() + + flag.Parse() + args := flag.Args() + if len(args) > 0 && args[0] == "help" { + help.Help(&buf, args[1:]) + } + }) + } +} diff --git a/compiler/go.mod b/compiler/go.mod new file mode 100644 index 00000000..9e24daab --- /dev/null +++ b/compiler/go.mod @@ -0,0 +1,22 @@ +module github.com/goplus/llgo/compiler + +go 1.22.0 + +require ( + github.com/goplus/gogen v1.16.4 + github.com/goplus/llgo v0.9.9 + github.com/goplus/llgo/runtime v0.0.0-00010101000000-000000000000 + github.com/goplus/llvm v0.8.1 + github.com/goplus/mod v0.13.13 + github.com/qiniu/x v1.13.10 + golang.org/x/tools v0.29.0 +) + +require ( + golang.org/x/mod v0.22.0 // indirect + golang.org/x/sync v0.10.0 // indirect +) + +replace github.com/goplus/llgo => ../ + +replace github.com/goplus/llgo/runtime => ../runtime diff --git a/compiler/go.sum b/compiler/go.sum new file mode 100644 index 00000000..dd35fcbb --- /dev/null +++ b/compiler/go.sum @@ -0,0 +1,16 @@ +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/goplus/gogen v1.16.4 h1:RyU4KhJ8qmdJQwuHKpCYPh3hTFN4wSaPRwXa9syY4R8= +github.com/goplus/gogen v1.16.4/go.mod h1:6TQYbabXDF9LCdDkOOzHmfg1R4ENfXQ3XpHa9RhTSD8= +github.com/goplus/llvm v0.8.1 h1:Wrc9S8bKDhLjxjPuhnrgDYLRaFfKotOGt3zpId3LBmI= +github.com/goplus/llvm v0.8.1/go.mod h1:PeVK8GgzxwAYCiMiUAJb5wJR6xbhj989tu9oulKLLT4= +github.com/goplus/mod v0.13.13 h1:rvwXCCQciTz4NjB3GLAZ2cskw035B64F7KzRAyMYUCw= +github.com/goplus/mod v0.13.13/go.mod h1:invR72Rz2+qpOOsXqxz830MX8/aR2GDR2EAow/WgfHI= +github.com/qiniu/x v1.13.10 h1:J4Z3XugYzAq85SlyAfqlKVrbf05glMbAOh+QncsDQpE= +github.com/qiniu/x v1.13.10/go.mod h1:INZ2TSWSJVWO/RuELQROERcslBwVgFG7MkTfEdaQz9E= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= +golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= diff --git a/internal/build/_overlay/go/parser/resolver.go b/compiler/internal/build/_overlay/go/parser/resolver.go similarity index 100% rename from internal/build/_overlay/go/parser/resolver.go rename to compiler/internal/build/_overlay/go/parser/resolver.go diff --git a/internal/build/_overlay/net/textproto/textproto.go b/compiler/internal/build/_overlay/net/textproto/textproto.go similarity index 100% rename from internal/build/_overlay/net/textproto/textproto.go rename to compiler/internal/build/_overlay/net/textproto/textproto.go diff --git a/internal/build/build.go b/compiler/internal/build/build.go similarity index 93% rename from internal/build/build.go rename to compiler/internal/build/build.go index d5db5d06..6daaacf6 100644 --- a/internal/build/build.go +++ b/compiler/internal/build/build.go @@ -36,15 +36,15 @@ import ( "golang.org/x/tools/go/ssa" - "github.com/goplus/llgo/cl" - "github.com/goplus/llgo/internal/env" - "github.com/goplus/llgo/internal/packages" - "github.com/goplus/llgo/internal/typepatch" - "github.com/goplus/llgo/ssa/abi" + "github.com/goplus/llgo/compiler/cl" + "github.com/goplus/llgo/compiler/internal/env" + "github.com/goplus/llgo/compiler/internal/packages" + "github.com/goplus/llgo/compiler/internal/typepatch" + "github.com/goplus/llgo/compiler/ssa/abi" xenv "github.com/goplus/llgo/xtool/env" "github.com/goplus/llgo/xtool/env/llvm" - llssa "github.com/goplus/llgo/ssa" + llssa "github.com/goplus/llgo/compiler/ssa" clangCheck "github.com/goplus/llgo/xtool/clang/check" ) @@ -135,7 +135,7 @@ func Do(args []string, conf *Config) ([]Package, error) { cfg.Overlay = make(map[string][]byte) for file, src := range overlayFiles { overlay := unsafe.Slice(unsafe.StringData(src), len(src)) - cfg.Overlay[filepath.Join(runtime.GOROOT(), "src", file)] = overlay + cfg.Overlay[filepath.Join(env.GOROOT(), "src", file)] = overlay } } @@ -176,24 +176,7 @@ func Do(args []string, conf *Config) ([]Package, error) { } altPkgPaths := altPkgs(initial, llssa.PkgRuntime) - // Use LLGoROOT as default implementation if `github.com/goplus/llgo` is not - // imported in user's go.mod. This ensures compilation works without import - // while allowing `github.com/goplus/llgo` upgrades via go.mod. - // - // WARNING(lijie): This approach cannot guarantee compatibility between `llgo` - // executable and runtime. This is a known design limitation that needs to be - // addressed in future improvements. The runtime should be: - // 1. Released and fully tested with the `llgo` compiler across different Go - // compiler versions and user-specified go versions in go.mod - // 2. Not be dependent on `github.com/goplus/llgo/c` library. Current runtime directly - // depends on it, causing version conflicts: using LLGoROOT makes user's specified - // version ineffective, while not using it leaves runtime unable to follow compiler - // updates. Since `github.com/goplus/llgo/c/*` contains many application libraries - // that may change frequently, a possible solution is to have both depend on a - // stable and limited c core API. - if !llgoPkgImported(initial) { - cfg.Dir = env.LLGoROOT() - } + cfg.Dir = env.LLGoRuntimeDir() altPkgs, err := packages.LoadEx(dedup, sizes, cfg, altPkgPaths...) check(err) @@ -251,10 +234,10 @@ func Do(args []string, conf *Config) ([]Package, error) { return dpkg, nil } -func llgoPkgImported(pkgs []*packages.Package) bool { +func llgoRuntimeImported(pkgs []*packages.Package) bool { for _, pkg := range pkgs { for _, imp := range pkg.Imports { - if imp.Module != nil && imp.Module.Path == env.LLGoCompilerPkg { + if imp.Module != nil && imp.Module.Path == env.LLGoRuntimePkg { return true } } @@ -853,8 +836,11 @@ var hasAltPkg = map[string]none{ "internal/abi": {}, "internal/bytealg": {}, "internal/itoa": {}, + "internal/filepathlite": {}, "internal/oserror": {}, + "internal/race": {}, "internal/reflectlite": {}, + "internal/stringslite": {}, "internal/syscall/execenv": {}, "internal/syscall/unix": {}, "math": {}, diff --git a/internal/build/cgo.go b/compiler/internal/build/cgo.go similarity index 98% rename from internal/build/cgo.go rename to compiler/internal/build/cgo.go index f53a6dee..f398c553 100644 --- a/internal/build/cgo.go +++ b/compiler/internal/build/cgo.go @@ -28,9 +28,9 @@ import ( "regexp" "strings" - "github.com/goplus/llgo/internal/buildtags" - "github.com/goplus/llgo/internal/safesplit" - llssa "github.com/goplus/llgo/ssa" + "github.com/goplus/llgo/compiler/internal/buildtags" + llssa "github.com/goplus/llgo/compiler/ssa" + "github.com/goplus/llgo/xtool/safesplit" ) type cgoDecl struct { diff --git a/internal/build/clean.go b/compiler/internal/build/clean.go similarity index 97% rename from internal/build/clean.go rename to compiler/internal/build/clean.go index 60ec5f46..b915ff2d 100644 --- a/internal/build/clean.go +++ b/compiler/internal/build/clean.go @@ -22,7 +22,7 @@ import ( "path" "path/filepath" - "github.com/goplus/llgo/internal/packages" + "github.com/goplus/llgo/compiler/internal/packages" ) var ( diff --git a/internal/build/cmptest.go b/compiler/internal/build/cmptest.go similarity index 100% rename from internal/build/cmptest.go rename to compiler/internal/build/cmptest.go diff --git a/internal/build/overlay.go b/compiler/internal/build/overlay.go similarity index 100% rename from internal/build/overlay.go rename to compiler/internal/build/overlay.go diff --git a/internal/buildtags/buildtags.go b/compiler/internal/buildtags/buildtags.go similarity index 100% rename from internal/buildtags/buildtags.go rename to compiler/internal/buildtags/buildtags.go diff --git a/internal/buildtags/buildtags_test.go b/compiler/internal/buildtags/buildtags_test.go similarity index 100% rename from internal/buildtags/buildtags_test.go rename to compiler/internal/buildtags/buildtags_test.go diff --git a/internal/env/env.go b/compiler/internal/env/env.go similarity index 54% rename from internal/env/env.go rename to compiler/internal/env/env.go index d40de6ad..6eef99be 100644 --- a/internal/env/env.go +++ b/compiler/internal/env/env.go @@ -1,15 +1,42 @@ package env import ( + "bytes" "os" + "os/exec" "path/filepath" "strings" ) const ( - LLGoCompilerPkg = "github.com/goplus/llgo" + LLGoCompilerPkg = "github.com/goplus/llgo" + LLGoRuntimePkgName = "runtime" + LLGoRuntimePkg = LLGoCompilerPkg + "/" + LLGoRuntimePkgName ) +func GOROOT() string { + root := os.Getenv("GOROOT") + if root != "" { + return root + } + cmd := exec.Command("go", "env", "GOROOT") + var out bytes.Buffer + cmd.Stdout = &out + err := cmd.Run() + if err == nil { + return strings.TrimSpace(out.String()) + } + panic("cannot get GOROOT: " + err.Error()) +} + +func LLGoRuntimeDir() string { + root := LLGoROOT() + if root != "" { + return filepath.Join(root, LLGoRuntimePkgName) + } + return "" +} + func LLGoROOT() string { if root, ok := isLLGoRoot(os.Getenv("LLGO_ROOT")); ok { return root @@ -46,12 +73,12 @@ func isLLGoRoot(root string) (string, bool) { return "", false } // Check for go.mod - data, err := os.ReadFile(filepath.Join(root, "go.mod")) + data, err := os.ReadFile(filepath.Join(root, LLGoRuntimePkgName, "go.mod")) if err != nil { return "", false } // Check module name - if !strings.Contains(string(data), "module "+LLGoCompilerPkg+"\n") { + if !strings.Contains(string(data), "module "+LLGoRuntimePkg+"\n") { return "", false } return root, true diff --git a/compiler/internal/env/env_test.go b/compiler/internal/env/env_test.go new file mode 100644 index 00000000..14a49808 --- /dev/null +++ b/compiler/internal/env/env_test.go @@ -0,0 +1,161 @@ +package env + +import ( + "os" + "path/filepath" + "testing" +) + +func TestGOROOT(t *testing.T) { + // Test with GOROOT environment variable set + t.Run("with GOROOT env", func(t *testing.T) { + origGoRoot := os.Getenv("GOROOT") + defer os.Setenv("GOROOT", origGoRoot) + + expected := "/custom/goroot" + os.Setenv("GOROOT", expected) + if got := GOROOT(); got != expected { + t.Errorf("GOROOT() = %v, want %v", got, expected) + } + }) + + // Test without GOROOT environment variable + t.Run("without GOROOT env", func(t *testing.T) { + origGoRoot := os.Getenv("GOROOT") + defer os.Setenv("GOROOT", origGoRoot) + + os.Setenv("GOROOT", "") + if got := GOROOT(); got == "" { + t.Error("GOROOT() should not return empty when using go env") + } + }) +} + +func TestLLGoRuntimeDir(t *testing.T) { + // Test with valid LLGO_ROOT + t.Run("with valid LLGO_ROOT", func(t *testing.T) { + origLLGoRoot := os.Getenv("LLGO_ROOT") + defer os.Setenv("LLGO_ROOT", origLLGoRoot) + + tmpDir := t.TempDir() + runtimeDir := filepath.Join(tmpDir, "runtime") + os.MkdirAll(runtimeDir, 0755) + goModContent := []byte("module github.com/goplus/llgo/runtime\n") + if err := os.WriteFile(filepath.Join(runtimeDir, "go.mod"), goModContent, 0644); err != nil { + t.Fatal(err) + } + + os.Setenv("LLGO_ROOT", tmpDir) + expected := runtimeDir + if got := LLGoRuntimeDir(); got != expected { + t.Errorf("LLGoRuntimeDir() = %v, want %v", got, expected) + } + }) + + // Test with invalid LLGO_ROOT + t.Run("with invalid LLGO_ROOT", func(t *testing.T) { + origLLGoRoot := os.Getenv("LLGO_ROOT") + defer os.Setenv("LLGO_ROOT", origLLGoRoot) + + os.Setenv("LLGO_ROOT", "/nonexistent/path") + if got := LLGoRuntimeDir(); got != "" { + t.Errorf("LLGoRuntimeDir() = %v, want empty string", got) + } + }) +} + +func TestLLGoROOT(t *testing.T) { + // Test with valid LLGO_ROOT environment variable + t.Run("with valid LLGO_ROOT env", func(t *testing.T) { + origLLGoRoot := os.Getenv("LLGO_ROOT") + defer os.Setenv("LLGO_ROOT", origLLGoRoot) + + tmpDir := t.TempDir() + runtimeDir := filepath.Join(tmpDir, "runtime") + os.MkdirAll(runtimeDir, 0755) + goModContent := []byte("module github.com/goplus/llgo/runtime\n") + if err := os.WriteFile(filepath.Join(runtimeDir, "go.mod"), goModContent, 0644); err != nil { + t.Fatal(err) + } + + os.Setenv("LLGO_ROOT", tmpDir) + if got := LLGoROOT(); got != tmpDir { + t.Errorf("LLGoROOT() = %v, want %v", got, tmpDir) + } + }) + + // Test with invalid LLGO_ROOT environment variable + t.Run("with invalid LLGO_ROOT env", func(t *testing.T) { + origLLGoRoot := os.Getenv("LLGO_ROOT") + defer os.Setenv("LLGO_ROOT", origLLGoRoot) + + os.Setenv("LLGO_ROOT", "/nonexistent/path") + if got := LLGoROOT(); got != "" { + t.Errorf("LLGoROOT() = %v, want empty string", got) + } + }) + + // Test with empty LLGO_ROOT environment variable + t.Run("with empty LLGO_ROOT env", func(t *testing.T) { + origLLGoRoot := os.Getenv("LLGO_ROOT") + defer os.Setenv("LLGO_ROOT", origLLGoRoot) + + os.Setenv("LLGO_ROOT", "") + // Result depends on executable path, just ensure it doesn't panic + LLGoROOT() + }) +} + +func TestIsLLGoRoot(t *testing.T) { + // Test with empty root + t.Run("empty root", func(t *testing.T) { + if root, ok := isLLGoRoot(""); ok { + t.Errorf("isLLGoRoot('') = %v, %v, want '', false", root, ok) + } + }) + + // Test with invalid path + t.Run("invalid path", func(t *testing.T) { + if root, ok := isLLGoRoot(string([]byte{0})); ok { + t.Errorf("isLLGoRoot(invalid) = %v, %v, want '', false", root, ok) + } + }) + + // Test with non-existent path + t.Run("non-existent path", func(t *testing.T) { + if root, ok := isLLGoRoot("/nonexistent/path"); ok { + t.Errorf("isLLGoRoot(nonexistent) = %v, %v, want '', false", root, ok) + } + }) + + // Test with valid path but invalid go.mod + t.Run("invalid go.mod", func(t *testing.T) { + tmpDir := t.TempDir() + runtimeDir := filepath.Join(tmpDir, "runtime") + os.MkdirAll(runtimeDir, 0755) + goModContent := []byte("module wrong/module/name\n") + if err := os.WriteFile(filepath.Join(runtimeDir, "go.mod"), goModContent, 0644); err != nil { + t.Fatal(err) + } + + if root, ok := isLLGoRoot(tmpDir); ok { + t.Errorf("isLLGoRoot(invalid_mod) = %v, %v, want '', false", root, ok) + } + }) + + // Test with valid path and valid go.mod + t.Run("valid path and go.mod", func(t *testing.T) { + tmpDir := t.TempDir() + runtimeDir := filepath.Join(tmpDir, "runtime") + os.MkdirAll(runtimeDir, 0755) + goModContent := []byte("module github.com/goplus/llgo/runtime\n") + if err := os.WriteFile(filepath.Join(runtimeDir, "go.mod"), goModContent, 0644); err != nil { + t.Fatal(err) + } + + absPath, _ := filepath.Abs(tmpDir) + if root, ok := isLLGoRoot(tmpDir); !ok || root != absPath { + t.Errorf("isLLGoRoot(valid) = %v, %v, want %v, true", root, ok, absPath) + } + }) +} diff --git a/internal/llgen/llgen.go b/compiler/internal/llgen/llgen.go similarity index 100% rename from internal/llgen/llgen.go rename to compiler/internal/llgen/llgen.go diff --git a/internal/llgen/llgenf.go b/compiler/internal/llgen/llgenf.go similarity index 98% rename from internal/llgen/llgenf.go rename to compiler/internal/llgen/llgenf.go index e7f8cc83..c179940b 100644 --- a/internal/llgen/llgenf.go +++ b/compiler/internal/llgen/llgenf.go @@ -22,7 +22,7 @@ import ( "path/filepath" "strings" - "github.com/goplus/llgo/internal/build" + "github.com/goplus/llgo/compiler/internal/build" ) func GenFrom(fileOrPkg string) string { diff --git a/internal/packages/load.go b/compiler/internal/packages/load.go similarity index 99% rename from internal/packages/load.go rename to compiler/internal/packages/load.go index 2ef993e7..65ddf25e 100644 --- a/internal/packages/load.go +++ b/compiler/internal/packages/load.go @@ -155,9 +155,6 @@ func loadFromExportData(ld *loader, lpkg *loaderPackage) error //go:linkname parseFiles golang.org/x/tools/go/packages.(*loader).parseFiles func parseFiles(ld *loader, filenames []string) ([]*ast.File, []error) -//go:linkname versionsInitFileVersions golang.org/x/tools/internal/versions.InitFileVersions -func versionsInitFileVersions(*types.Info) - //go:linkname typesinternalSetUsesCgo golang.org/x/tools/internal/typesinternal.SetUsesCgo func typesinternalSetUsesCgo(conf *types.Config) bool @@ -354,7 +351,6 @@ func loadPackageEx(dedup Deduper, ld *loader, lpkg *loaderPackage) { Scopes: make(map[ast.Node]*types.Scope), Selections: make(map[*ast.SelectorExpr]*types.Selection), } - versionsInitFileVersions(lpkg.TypesInfo) lpkg.TypesSizes = ld.sizes importer := importerFunc(func(path string) (*types.Package, error) { diff --git a/internal/typepatch/patch.go b/compiler/internal/typepatch/patch.go similarity index 100% rename from internal/typepatch/patch.go rename to compiler/internal/typepatch/patch.go diff --git a/ssa/abi/abi.go b/compiler/ssa/abi/abi.go similarity index 97% rename from ssa/abi/abi.go rename to compiler/ssa/abi/abi.go index 4c35c754..193034a0 100644 --- a/ssa/abi/abi.go +++ b/compiler/ssa/abi/abi.go @@ -25,7 +25,8 @@ import ( "log" "strings" - "github.com/goplus/llgo/internal/abi" + "github.com/goplus/llgo/compiler/internal/env" + "github.com/goplus/llgo/runtime/abi" ) // ----------------------------------------------------------------------------- @@ -189,6 +190,8 @@ func (b *Builder) TypeName(t types.Type) (ret string, pub bool) { s = "<-chan" } return fmt.Sprintf("%s %s", s, elem), pub + case *types.Alias: + return b.TypeName(types.Unalias(t)) } log.Panicf("todo: %T\n", t) return @@ -215,7 +218,7 @@ func TypeArgs(typeArgs []types.Type) string { } const ( - PatchPathPrefix = "github.com/goplus/llgo/internal/lib/" + PatchPathPrefix = env.LLGoRuntimePkg + "/internal/lib/" ) // PathOf returns the package path of the specified package. diff --git a/ssa/abi/map.go b/compiler/ssa/abi/map.go similarity index 99% rename from ssa/abi/map.go rename to compiler/ssa/abi/map.go index e248aa45..58e68205 100644 --- a/ssa/abi/map.go +++ b/compiler/ssa/abi/map.go @@ -5,7 +5,7 @@ import ( "go/types" "log" - "github.com/goplus/llgo/internal/abi" + "github.com/goplus/llgo/runtime/abi" ) // Builds a type representing a Bucket structure for diff --git a/ssa/abitype.go b/compiler/ssa/abitype.go similarity index 99% rename from ssa/abitype.go rename to compiler/ssa/abitype.go index 9bd329e4..9f184132 100644 --- a/ssa/abitype.go +++ b/compiler/ssa/abitype.go @@ -20,7 +20,7 @@ import ( "go/token" "go/types" - "github.com/goplus/llgo/ssa/abi" + "github.com/goplus/llgo/compiler/ssa/abi" "github.com/goplus/llvm" "golang.org/x/tools/go/types/typeutil" ) @@ -77,6 +77,8 @@ func (b Builder) abiTypeOf(t types.Type) func() Expr { return b.abiChanOf(t) case *types.Map: return b.abiMapOf(t) + case *types.Alias: + return b.abiTypeOf(types.Unalias(t)) } panic("todo") } diff --git a/ssa/cl_test.go b/compiler/ssa/cl_test.go similarity index 95% rename from ssa/cl_test.go rename to compiler/ssa/cl_test.go index 86928f5f..91d229f6 100644 --- a/ssa/cl_test.go +++ b/compiler/ssa/cl_test.go @@ -20,9 +20,9 @@ import ( "go/types" "testing" - "github.com/goplus/llgo/cl/cltest" - "github.com/goplus/llgo/ssa" - "github.com/goplus/llgo/ssa/ssatest" + "github.com/goplus/llgo/compiler/cl/cltest" + "github.com/goplus/llgo/compiler/ssa" + "github.com/goplus/llgo/compiler/ssa/ssatest" ) func init() { diff --git a/ssa/datastruct.go b/compiler/ssa/datastruct.go similarity index 100% rename from ssa/datastruct.go rename to compiler/ssa/datastruct.go diff --git a/ssa/decl.go b/compiler/ssa/decl.go similarity index 100% rename from ssa/decl.go rename to compiler/ssa/decl.go diff --git a/ssa/di.go b/compiler/ssa/di.go similarity index 100% rename from ssa/di.go rename to compiler/ssa/di.go diff --git a/ssa/eh.go b/compiler/ssa/eh.go similarity index 100% rename from ssa/eh.go rename to compiler/ssa/eh.go diff --git a/ssa/expr.go b/compiler/ssa/expr.go similarity index 99% rename from ssa/expr.go rename to compiler/ssa/expr.go index 98aa0fc6..fa076253 100644 --- a/ssa/expr.go +++ b/compiler/ssa/expr.go @@ -1223,11 +1223,20 @@ func (b Builder) BuiltinCall(fn string, args ...Expr) (ret Expr) { return } case "clear": - if len(args) == 1 && args[0].kind == vkMap { - m := args[0] - t := b.abiType(m.raw.Type) - b.Call(b.Pkg.rtFunc("MapClear"), t, m) - return + if len(args) == 1 { + arg := args[0] + switch arg.kind { + case vkMap: + m := arg + t := b.abiType(m.raw.Type) + b.Call(b.Pkg.rtFunc("MapClear"), t, m) + return + case vkSlice: + s := arg + t := b.abiType(s.raw.Type) + b.Call(b.Pkg.rtFunc("SliceClear"), t, s) + return + } } case "min": if len(args) > 0 { @@ -1239,6 +1248,8 @@ func (b Builder) BuiltinCall(fn string, args ...Expr) (ret Expr) { } case "Add": return b.Advance(args[0], args[1]) + case "Sizeof": + return b.Prog.Val(int(b.Prog.SizeOf(args[0].Type))) } panic("todo: " + fn) } diff --git a/ssa/goroutine.go b/compiler/ssa/goroutine.go similarity index 100% rename from ssa/goroutine.go rename to compiler/ssa/goroutine.go diff --git a/ssa/interface.go b/compiler/ssa/interface.go similarity index 99% rename from ssa/interface.go rename to compiler/ssa/interface.go index 9b06eb94..efdde84b 100644 --- a/ssa/interface.go +++ b/compiler/ssa/interface.go @@ -21,7 +21,7 @@ import ( "go/types" "log" - "github.com/goplus/llgo/ssa/abi" + "github.com/goplus/llgo/compiler/ssa/abi" "github.com/goplus/llvm" ) diff --git a/ssa/memory.go b/compiler/ssa/memory.go similarity index 100% rename from ssa/memory.go rename to compiler/ssa/memory.go diff --git a/ssa/package.go b/compiler/ssa/package.go similarity index 96% rename from ssa/package.go rename to compiler/ssa/package.go index b2d462e9..537b130a 100644 --- a/ssa/package.go +++ b/compiler/ssa/package.go @@ -17,20 +17,22 @@ package ssa import ( + "fmt" "go/token" "go/types" "runtime" "strconv" "unsafe" - "github.com/goplus/llgo/ssa/abi" + "github.com/goplus/llgo/compiler/internal/env" + "github.com/goplus/llgo/compiler/ssa/abi" "github.com/goplus/llvm" "golang.org/x/tools/go/types/typeutil" ) const ( PkgPython = "github.com/goplus/llgo/py" - PkgRuntime = "github.com/goplus/llgo/internal/runtime" + PkgRuntime = env.LLGoRuntimePkg + "/internal/runtime" ) // ----------------------------------------------------------------------------- @@ -279,9 +281,23 @@ func (p Program) runtime() *types.Package { } func (p Program) rtNamed(name string) *types.Named { - t := p.runtime().Scope().Lookup(name).Type().(*types.Named) - t, _ = p.gocvt.cvtNamed(t) - return t + if rt := p.runtime(); rt != nil { + if rtScope := rt.Scope(); rtScope != nil { + if obj := rtScope.Lookup(name); obj != nil { + t := obj.Type() + for { + if alias, ok := t.(*types.Alias); ok { + t = types.Unalias(alias) + } else { + break + } + } + t, _ = p.gocvt.cvtNamed(t.(*types.Named)) + return t.(*types.Named) + } + } + } + panic(fmt.Errorf("runtime type (%s) not found, install from pre-built package or set LLGO_ROOT", name)) } func (p Program) rtType(name string) Type { diff --git a/ssa/python.go b/compiler/ssa/python.go similarity index 100% rename from ssa/python.go rename to compiler/ssa/python.go diff --git a/ssa/ssa_test.go b/compiler/ssa/ssa_test.go similarity index 100% rename from ssa/ssa_test.go rename to compiler/ssa/ssa_test.go diff --git a/ssa/ssatest/ssautil.go b/compiler/ssa/ssatest/ssautil.go similarity index 97% rename from ssa/ssatest/ssautil.go rename to compiler/ssa/ssatest/ssautil.go index bbb8ae9a..1d1c96dc 100644 --- a/ssa/ssatest/ssautil.go +++ b/compiler/ssa/ssatest/ssautil.go @@ -22,7 +22,7 @@ import ( "testing" "github.com/goplus/gogen/packages" - "github.com/goplus/llgo/ssa" + "github.com/goplus/llgo/compiler/ssa" ) func NewProgram(t *testing.T, target *ssa.Target) ssa.Program { diff --git a/compiler/ssa/ssatest/ssautil_test.go b/compiler/ssa/ssatest/ssautil_test.go new file mode 100644 index 00000000..36eb6685 --- /dev/null +++ b/compiler/ssa/ssatest/ssautil_test.go @@ -0,0 +1,115 @@ +package ssatest + +import ( + "go/types" + "testing" + + "github.com/goplus/llgo/compiler/ssa" + "github.com/goplus/llvm" +) + +func init() { + llvm.InitializeAllTargets() + llvm.InitializeAllTargetMCs() + llvm.InitializeAllTargetInfos() + llvm.InitializeAllAsmParsers() + llvm.InitializeAllAsmPrinters() +} + +type mockImporter struct { + pkgs map[string]*types.Package +} + +func newMockImporter() *mockImporter { + return &mockImporter{ + pkgs: make(map[string]*types.Package), + } +} + +func (m *mockImporter) Import(path string) (*types.Package, error) { + if pkg, ok := m.pkgs[path]; ok { + return pkg, nil + } + pkg := types.NewPackage(path, path) + m.pkgs[path] = pkg + return pkg, nil +} + +func TestNewProgram(t *testing.T) { + target := &ssa.Target{ + GOOS: "linux", + GOARCH: "amd64", + GOARM: "7", + } + + prog := NewProgram(t, target) + if prog == nil { + t.Fatal("NewProgram returned nil") + } + + // Set runtime package + rtPkg := types.NewPackage(ssa.PkgRuntime, ssa.PkgRuntime) + prog.SetRuntime(rtPkg) + + // Set python package + pyPkg := types.NewPackage(ssa.PkgPython, ssa.PkgPython) + prog.SetRuntime(pyPkg) +} + +func TestNewProgramEx(t *testing.T) { + target := &ssa.Target{ + GOOS: "linux", + GOARCH: "amd64", + GOARM: "7", + } + + imp := newMockImporter() + prog := NewProgramEx(t, target, imp) + if prog == nil { + t.Fatal("NewProgramEx returned nil") + } + + // Set runtime package + rtPkg := types.NewPackage(ssa.PkgRuntime, ssa.PkgRuntime) + prog.SetRuntime(rtPkg) + + // Set python package + pyPkg := types.NewPackage(ssa.PkgPython, ssa.PkgPython) + prog.SetRuntime(pyPkg) +} + +func TestAssert(t *testing.T) { + target := &ssa.Target{ + GOOS: "linux", + GOARCH: "amd64", + GOARM: "7", + } + + prog := NewProgram(t, target) + if prog == nil { + t.Fatal("NewProgram returned nil") + } + + tests := []struct { + name string + pkg ssa.Package + expected string + }{ + { + name: "test package path", + pkg: prog.NewPackage("test", "test/path"), + expected: "; ModuleID = 'test/path'\nsource_filename = \"test/path\"\n", + }, + { + name: "another package path", + pkg: prog.NewPackage("another", "another/path"), + expected: "; ModuleID = 'another/path'\nsource_filename = \"another/path\"\n", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + Assert(t, tt.pkg, tt.expected) + }) + } +} diff --git a/ssa/stmt_builder.go b/compiler/ssa/stmt_builder.go similarity index 100% rename from ssa/stmt_builder.go rename to compiler/ssa/stmt_builder.go diff --git a/ssa/target.go b/compiler/ssa/target.go similarity index 100% rename from ssa/target.go rename to compiler/ssa/target.go diff --git a/ssa/type.go b/compiler/ssa/type.go similarity index 99% rename from ssa/type.go rename to compiler/ssa/type.go index cc9ec4f6..900fa542 100644 --- a/ssa/type.go +++ b/compiler/ssa/type.go @@ -20,7 +20,7 @@ import ( "fmt" "go/types" - "github.com/goplus/llgo/ssa/abi" + "github.com/goplus/llgo/compiler/ssa/abi" "github.com/goplus/llvm" ) @@ -388,6 +388,8 @@ func (p Program) toType(raw types.Type) Type { return &aType{llvm.ArrayType(elem.ll, int(t.Len())), typ, vkArray} case *types.Chan: return &aType{llvm.PointerType(p.rtChan(), 0), typ, vkChan} + case *types.Alias: + return p.toType(types.Unalias(t)) } panic(fmt.Sprintf("toLLVMType: todo - %T\n", raw)) } diff --git a/ssa/type_cvt.go b/compiler/ssa/type_cvt.go similarity index 98% rename from ssa/type_cvt.go rename to compiler/ssa/type_cvt.go index 0f9564f2..454266a7 100644 --- a/ssa/type_cvt.go +++ b/compiler/ssa/type_cvt.go @@ -113,6 +113,10 @@ func (p goTypes) cvtType(typ types.Type) (raw types.Type, cvt bool) { } case *types.Tuple: return p.cvtTuple(t) + case *types.TypeParam: + return typ.Underlying(), false + case *types.Alias: + return types.Unalias(t), true default: panic(fmt.Sprintf("cvtType: unexpected type - %T", typ)) } diff --git a/doc/_readme/scripts/install_llgo.sh b/doc/_readme/scripts/install_llgo.sh index a87d203d..98dca7bc 100644 --- a/doc/_readme/scripts/install_llgo.sh +++ b/doc/_readme/scripts/install_llgo.sh @@ -1,8 +1,9 @@ # shellcheck disable=all git clone https://github.com/goplus/llgo.git -cd llgo +cd llgo/compiler go install -v ./cmd/... go install -v ./chore/... # compile all tools except pydump -cd chore/_xtool +export LLGO_ROOT=$PWD/.. +cd ../_xtool llgo install ./... # compile pydump go install github.com/goplus/hdq/chore/pysigfetch@v0.8.1 # compile pysigfetch \ No newline at end of file diff --git a/go.mod b/go.mod index 08d4d5a7..a49cf5eb 100644 --- a/go.mod +++ b/go.mod @@ -2,17 +2,8 @@ module github.com/goplus/llgo go 1.20 -require ( - github.com/goplus/gogen v1.16.4 - github.com/goplus/llvm v0.8.1 - github.com/goplus/mod v0.13.13 - github.com/qiniu/x v1.13.10 - golang.org/x/tools v0.19.0 -) +require github.com/goplus/gogen v1.16.4 -require ( - golang.org/x/mod v0.20.0 // indirect - golang.org/x/sync v0.7.0 // indirect -) +require golang.org/x/tools v0.19.0 // indirect retract v0.8.0 diff --git a/go.sum b/go.sum index b15f3254..c3c7074d 100644 --- a/go.sum +++ b/go.sum @@ -1,14 +1,6 @@ github.com/goplus/gogen v1.16.4 h1:RyU4KhJ8qmdJQwuHKpCYPh3hTFN4wSaPRwXa9syY4R8= github.com/goplus/gogen v1.16.4/go.mod h1:6TQYbabXDF9LCdDkOOzHmfg1R4ENfXQ3XpHa9RhTSD8= -github.com/goplus/llvm v0.8.1 h1:Wrc9S8bKDhLjxjPuhnrgDYLRaFfKotOGt3zpId3LBmI= -github.com/goplus/llvm v0.8.1/go.mod h1:PeVK8GgzxwAYCiMiUAJb5wJR6xbhj989tu9oulKLLT4= -github.com/goplus/mod v0.13.13 h1:rvwXCCQciTz4NjB3GLAZ2cskw035B64F7KzRAyMYUCw= -github.com/goplus/mod v0.13.13/go.mod h1:invR72Rz2+qpOOsXqxz830MX8/aR2GDR2EAow/WgfHI= -github.com/qiniu/x v1.13.10 h1:J4Z3XugYzAq85SlyAfqlKVrbf05glMbAOh+QncsDQpE= -github.com/qiniu/x v1.13.10/go.mod h1:INZ2TSWSJVWO/RuELQROERcslBwVgFG7MkTfEdaQz9E= -golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= -golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/mod v0.16.0 h1:QX4fJ0Rr5cPQCF7O9lh9Se4pmwfwskqZfq5moyldzic= +golang.org/x/sync v0.6.0 h1:5BMeUDZ7vkXGfEr1x9B4bRcTH4lpkTkpdh0T/J+qjbQ= golang.org/x/tools v0.19.0 h1:tfGCXNR1OsFG+sVdLAitlpjAvD/I6dHDKnYrpEZUHkw= golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc= diff --git a/internal/aliases/aliases.go b/internal/aliases/aliases.go deleted file mode 100644 index c24c2eee..00000000 --- a/internal/aliases/aliases.go +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package aliases - -import ( - "go/token" - "go/types" -) - -// Package aliases defines backward compatible shims -// for the types.Alias type representation added in 1.22. -// This defines placeholders for x/tools until 1.26. - -// NewAlias creates a new TypeName in Package pkg that -// is an alias for the type rhs. -// -// The enabled parameter determines whether the resulting [TypeName]'s -// type is an [types.Alias]. Its value must be the result of a call to -// [Enabled], which computes the effective value of -// GODEBUG=gotypesalias=... by invoking the type checker. The Enabled -// function is expensive and should be called once per task (e.g. -// package import), not once per call to NewAlias. -func NewAlias(enabled bool, pos token.Pos, pkg *types.Package, name string, rhs types.Type) *types.TypeName { - if enabled { - tname := types.NewTypeName(pos, pkg, name, nil) - newAlias(tname, rhs) - return tname - } - return types.NewTypeName(pos, pkg, name, rhs) -} diff --git a/internal/aliases/aliases_go121.go b/internal/aliases/aliases_go121.go deleted file mode 100644 index c027b9f3..00000000 --- a/internal/aliases/aliases_go121.go +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build !go1.22 -// +build !go1.22 - -package aliases - -import ( - "go/types" -) - -// Alias is a placeholder for a go/types.Alias for <=1.21. -// It will never be created by go/types. -type Alias struct{} - -func (*Alias) String() string { panic("unreachable") } -func (*Alias) Underlying() types.Type { panic("unreachable") } -func (*Alias) Obj() *types.TypeName { panic("unreachable") } -func Rhs(alias *Alias) types.Type { panic("unreachable") } - -// Unalias returns the type t for go <=1.21. -func Unalias(t types.Type) types.Type { return t } - -func newAlias(name *types.TypeName, rhs types.Type) *Alias { panic("unreachable") } - -// Enabled reports whether [NewAlias] should create [types.Alias] types. -// -// Before go1.22, this function always returns false. -func Enabled() bool { return false } diff --git a/internal/aliases/aliases_go122.go b/internal/aliases/aliases_go122.go deleted file mode 100644 index b3299548..00000000 --- a/internal/aliases/aliases_go122.go +++ /dev/null @@ -1,63 +0,0 @@ -// Copyright 2024 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -//go:build go1.22 -// +build go1.22 - -package aliases - -import ( - "go/ast" - "go/parser" - "go/token" - "go/types" -) - -// Alias is an alias of types.Alias. -type Alias = types.Alias - -// Rhs returns the type on the right-hand side of the alias declaration. -func Rhs(alias *Alias) types.Type { - if alias, ok := any(alias).(interface{ Rhs() types.Type }); ok { - return alias.Rhs() // go1.23+ - } - - // go1.22's Alias didn't have the Rhs method, - // so Unalias is the best we can do. - return Unalias(alias) -} - -// Unalias is a wrapper of types.Unalias. -func Unalias(t types.Type) types.Type { return types.Unalias(t) } - -// newAlias is an internal alias around types.NewAlias. -// Direct usage is discouraged as the moment. -// Try to use NewAlias instead. -func newAlias(tname *types.TypeName, rhs types.Type) *Alias { - a := types.NewAlias(tname, rhs) - // TODO(go.dev/issue/65455): Remove kludgy workaround to set a.actual as a side-effect. - Unalias(a) - return a -} - -// Enabled reports whether [NewAlias] should create [types.Alias] types. -// -// This function is expensive! Call it sparingly. -func Enabled() bool { - // The only reliable way to compute the answer is to invoke go/types. - // We don't parse the GODEBUG environment variable, because - // (a) it's tricky to do so in a manner that is consistent - // with the godebug package; in particular, a simple - // substring check is not good enough. The value is a - // rightmost-wins list of options. But more importantly: - // (b) it is impossible to detect changes to the effective - // setting caused by os.Setenv("GODEBUG"), as happens in - // many tests. Therefore any attempt to cache the result - // is just incorrect. - fset := token.NewFileSet() - f, _ := parser.ParseFile(fset, "a.go", "package p; type A = int", 0) - pkg, _ := new(types.Config).Check("p", fset, []*ast.File{f}, nil) - _, enabled := pkg.Scope().Lookup("A").Type().(*types.Alias) - return enabled -} diff --git a/internal/projs/proj.go b/internal/projs/proj.go deleted file mode 100644 index f79c3b3e..00000000 --- a/internal/projs/proj.go +++ /dev/null @@ -1,110 +0,0 @@ -/* - * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. - * - * 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 projs - -import ( - "errors" - "path/filepath" - "syscall" -) - -// ----------------------------------------------------------------------------- - -type Proj = interface { - projObj() -} - -type FilesProj struct { - Files []string -} - -type PkgPathProj struct { - Path string -} - -type DirProj struct { - Dir string -} - -func (p *FilesProj) projObj() {} -func (p *PkgPathProj) projObj() {} -func (p *DirProj) projObj() {} - -// ----------------------------------------------------------------------------- - -func ParseOne(args ...string) (proj Proj, next []string, err error) { - if len(args) == 0 { - return nil, nil, syscall.ENOENT - } - arg := args[0] - if isFile(arg) { - n := 1 - for n < len(args) && isFile(args[n]) { - n++ - } - return &FilesProj{Files: args[:n]}, args[n:], nil - } - if isLocal(arg) { - return &DirProj{Dir: arg}, args[1:], nil - } - return &PkgPathProj{Path: arg}, args[1:], nil -} - -func isFile(fname string) bool { - n := len(filepath.Ext(fname)) - return n > 1 -} - -func isLocal(ns string) bool { - if len(ns) > 0 { - switch c := ns[0]; c { - case '/', '\\', '.': - return true - default: - return len(ns) >= 2 && ns[1] == ':' && ('A' <= c && c <= 'Z' || 'a' <= c && c <= 'z') - } - } - return false -} - -// ----------------------------------------------------------------------------- - -func ParseAll(args ...string) (projs []Proj, err error) { - var hasFiles, hasNotFiles bool - for { - proj, next, e := ParseOne(args...) - if e != nil { - if hasFiles && hasNotFiles { - return nil, ErrMixedFilesProj - } - return - } - if _, ok := proj.(*FilesProj); ok { - hasFiles = true - } else { - hasNotFiles = true - } - projs = append(projs, proj) - args = next - } -} - -var ( - ErrMixedFilesProj = errors.New("mixed files project") -) - -// ----------------------------------------------------------------------------- diff --git a/internal/typeparams/normalize.go b/internal/typeparams/normalize.go deleted file mode 100644 index 93c80fdc..00000000 --- a/internal/typeparams/normalize.go +++ /dev/null @@ -1,218 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -package typeparams - -import ( - "errors" - "fmt" - "go/types" - "os" - "strings" -) - -//go:generate go run copytermlist.go - -const debug = false - -var ErrEmptyTypeSet = errors.New("empty type set") - -// StructuralTerms returns a slice of terms representing the normalized -// structural type restrictions of a type parameter, if any. -// -// Structural type restrictions of a type parameter are created via -// non-interface types embedded in its constraint interface (directly, or via a -// chain of interface embeddings). For example, in the declaration -// -// type T[P interface{~int; m()}] int -// -// the structural restriction of the type parameter P is ~int. -// -// With interface embedding and unions, the specification of structural type -// restrictions may be arbitrarily complex. For example, consider the -// following: -// -// type A interface{ ~string|~[]byte } -// -// type B interface{ int|string } -// -// type C interface { ~string|~int } -// -// type T[P interface{ A|B; C }] int -// -// In this example, the structural type restriction of P is ~string|int: A|B -// expands to ~string|~[]byte|int|string, which reduces to ~string|~[]byte|int, -// which when intersected with C (~string|~int) yields ~string|int. -// -// StructuralTerms computes these expansions and reductions, producing a -// "normalized" form of the embeddings. A structural restriction is normalized -// if it is a single union containing no interface terms, and is minimal in the -// sense that removing any term changes the set of types satisfying the -// constraint. It is left as a proof for the reader that, modulo sorting, there -// is exactly one such normalized form. -// -// Because the minimal representation always takes this form, StructuralTerms -// returns a slice of tilde terms corresponding to the terms of the union in -// the normalized structural restriction. An error is returned if the -// constraint interface is invalid, exceeds complexity bounds, or has an empty -// type set. In the latter case, StructuralTerms returns ErrEmptyTypeSet. -// -// StructuralTerms makes no guarantees about the order of terms, except that it -// is deterministic. -func StructuralTerms(tparam *types.TypeParam) ([]*types.Term, error) { - constraint := tparam.Constraint() - if constraint == nil { - return nil, fmt.Errorf("%s has nil constraint", tparam) - } - iface, _ := constraint.Underlying().(*types.Interface) - if iface == nil { - return nil, fmt.Errorf("constraint is %T, not *types.Interface", constraint.Underlying()) - } - return InterfaceTermSet(iface) -} - -// InterfaceTermSet computes the normalized terms for a constraint interface, -// returning an error if the term set cannot be computed or is empty. In the -// latter case, the error will be ErrEmptyTypeSet. -// -// See the documentation of StructuralTerms for more information on -// normalization. -func InterfaceTermSet(iface *types.Interface) ([]*types.Term, error) { - return computeTermSet(iface) -} - -// UnionTermSet computes the normalized terms for a union, returning an error -// if the term set cannot be computed or is empty. In the latter case, the -// error will be ErrEmptyTypeSet. -// -// See the documentation of StructuralTerms for more information on -// normalization. -func UnionTermSet(union *types.Union) ([]*types.Term, error) { - return computeTermSet(union) -} - -func computeTermSet(typ types.Type) ([]*types.Term, error) { - tset, err := computeTermSetInternal(typ, make(map[types.Type]*termSet), 0) - if err != nil { - return nil, err - } - if tset.terms.isEmpty() { - return nil, ErrEmptyTypeSet - } - if tset.terms.isAll() { - return nil, nil - } - var terms []*types.Term - for _, term := range tset.terms { - terms = append(terms, types.NewTerm(term.tilde, term.typ)) - } - return terms, nil -} - -// A termSet holds the normalized set of terms for a given type. -// -// The name termSet is intentionally distinct from 'type set': a type set is -// all types that implement a type (and includes method restrictions), whereas -// a term set just represents the structural restrictions on a type. -type termSet struct { - complete bool - terms termlist -} - -func indentf(depth int, format string, args ...interface{}) { - fmt.Fprintf(os.Stderr, strings.Repeat(".", depth)+format+"\n", args...) -} - -func computeTermSetInternal(t types.Type, seen map[types.Type]*termSet, depth int) (res *termSet, err error) { - if t == nil { - panic("nil type") - } - - if debug { - indentf(depth, "%s", t.String()) - defer func() { - if err != nil { - indentf(depth, "=> %s", err) - } else { - indentf(depth, "=> %s", res.terms.String()) - } - }() - } - - const maxTermCount = 100 - if tset, ok := seen[t]; ok { - if !tset.complete { - return nil, fmt.Errorf("cycle detected in the declaration of %s", t) - } - return tset, nil - } - - // Mark the current type as seen to avoid infinite recursion. - tset := new(termSet) - defer func() { - tset.complete = true - }() - seen[t] = tset - - switch u := t.Underlying().(type) { - case *types.Interface: - // The term set of an interface is the intersection of the term sets of its - // embedded types. - tset.terms = allTermlist - for i := 0; i < u.NumEmbeddeds(); i++ { - embedded := u.EmbeddedType(i) - if _, ok := embedded.Underlying().(*types.TypeParam); ok { - return nil, fmt.Errorf("invalid embedded type %T", embedded) - } - tset2, err := computeTermSetInternal(embedded, seen, depth+1) - if err != nil { - return nil, err - } - tset.terms = tset.terms.intersect(tset2.terms) - } - case *types.Union: - // The term set of a union is the union of term sets of its terms. - tset.terms = nil - for i := 0; i < u.Len(); i++ { - t := u.Term(i) - var terms termlist - switch t.Type().Underlying().(type) { - case *types.Interface: - tset2, err := computeTermSetInternal(t.Type(), seen, depth+1) - if err != nil { - return nil, err - } - terms = tset2.terms - case *types.TypeParam, *types.Union: - // A stand-alone type parameter or union is not permitted as union - // term. - return nil, fmt.Errorf("invalid union term %T", t) - default: - if t.Type() == types.Typ[types.Invalid] { - continue - } - terms = termlist{{t.Tilde(), t.Type()}} - } - tset.terms = tset.terms.union(terms) - if len(tset.terms) > maxTermCount { - return nil, fmt.Errorf("exceeded max term count %d", maxTermCount) - } - } - case *types.TypeParam: - panic("unreachable") - default: - // For all other types, the term set is just a single non-tilde term - // holding the type itself. - if u != types.Typ[types.Invalid] { - tset.terms = termlist{{false, t}} - } - } - return tset, nil -} - -// under is a facade for the go/types internal function of the same name. It is -// used by typeterm.go. -func under(t types.Type) types.Type { - return t.Underlying() -} diff --git a/internal/typeparams/termlist.go b/internal/typeparams/termlist.go deleted file mode 100644 index cbd12f80..00000000 --- a/internal/typeparams/termlist.go +++ /dev/null @@ -1,163 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by copytermlist.go DO NOT EDIT. - -package typeparams - -import ( - "bytes" - "go/types" -) - -// A termlist represents the type set represented by the union -// t1 ∪ y2 ∪ ... tn of the type sets of the terms t1 to tn. -// A termlist is in normal form if all terms are disjoint. -// termlist operations don't require the operands to be in -// normal form. -type termlist []*term - -// allTermlist represents the set of all types. -// It is in normal form. -var allTermlist = termlist{new(term)} - -// String prints the termlist exactly (without normalization). -func (xl termlist) String() string { - if len(xl) == 0 { - return "∅" - } - var buf bytes.Buffer - for i, x := range xl { - if i > 0 { - buf.WriteString(" | ") - } - buf.WriteString(x.String()) - } - return buf.String() -} - -// isEmpty reports whether the termlist xl represents the empty set of types. -func (xl termlist) isEmpty() bool { - // If there's a non-nil term, the entire list is not empty. - // If the termlist is in normal form, this requires at most - // one iteration. - for _, x := range xl { - if x != nil { - return false - } - } - return true -} - -// isAll reports whether the termlist xl represents the set of all types. -func (xl termlist) isAll() bool { - // If there's a 𝓤 term, the entire list is 𝓤. - // If the termlist is in normal form, this requires at most - // one iteration. - for _, x := range xl { - if x != nil && x.typ == nil { - return true - } - } - return false -} - -// norm returns the normal form of xl. -func (xl termlist) norm() termlist { - // Quadratic algorithm, but good enough for now. - // TODO(gri) fix asymptotic performance - used := make([]bool, len(xl)) - var rl termlist - for i, xi := range xl { - if xi == nil || used[i] { - continue - } - for j := i + 1; j < len(xl); j++ { - xj := xl[j] - if xj == nil || used[j] { - continue - } - if u1, u2 := xi.union(xj); u2 == nil { - // If we encounter a 𝓤 term, the entire list is 𝓤. - // Exit early. - // (Note that this is not just an optimization; - // if we continue, we may end up with a 𝓤 term - // and other terms and the result would not be - // in normal form.) - if u1.typ == nil { - return allTermlist - } - xi = u1 - used[j] = true // xj is now unioned into xi - ignore it in future iterations - } - } - rl = append(rl, xi) - } - return rl -} - -// union returns the union xl ∪ yl. -func (xl termlist) union(yl termlist) termlist { - return append(xl, yl...).norm() -} - -// intersect returns the intersection xl ∩ yl. -func (xl termlist) intersect(yl termlist) termlist { - if xl.isEmpty() || yl.isEmpty() { - return nil - } - - // Quadratic algorithm, but good enough for now. - // TODO(gri) fix asymptotic performance - var rl termlist - for _, x := range xl { - for _, y := range yl { - if r := x.intersect(y); r != nil { - rl = append(rl, r) - } - } - } - return rl.norm() -} - -// equal reports whether xl and yl represent the same type set. -func (xl termlist) equal(yl termlist) bool { - // TODO(gri) this should be more efficient - return xl.subsetOf(yl) && yl.subsetOf(xl) -} - -// includes reports whether t ∈ xl. -func (xl termlist) includes(t types.Type) bool { - for _, x := range xl { - if x.includes(t) { - return true - } - } - return false -} - -// supersetOf reports whether y ⊆ xl. -func (xl termlist) supersetOf(y *term) bool { - for _, x := range xl { - if y.subsetOf(x) { - return true - } - } - return false -} - -// subsetOf reports whether xl ⊆ yl. -func (xl termlist) subsetOf(yl termlist) bool { - if yl.isEmpty() { - return xl.isEmpty() - } - - // each term x of xl must be a subset of yl - for _, x := range xl { - if !yl.supersetOf(x) { - return false // x is not a subset yl - } - } - return true -} diff --git a/internal/typeparams/typeterm.go b/internal/typeparams/typeterm.go deleted file mode 100644 index 7350bb70..00000000 --- a/internal/typeparams/typeterm.go +++ /dev/null @@ -1,169 +0,0 @@ -// Copyright 2021 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Code generated by copytermlist.go DO NOT EDIT. - -package typeparams - -import "go/types" - -// A term describes elementary type sets: -// -// ∅: (*term)(nil) == ∅ // set of no types (empty set) -// 𝓤: &term{} == 𝓤 // set of all types (𝓤niverse) -// T: &term{false, T} == {T} // set of type T -// ~t: &term{true, t} == {t' | under(t') == t} // set of types with underlying type t -type term struct { - tilde bool // valid if typ != nil - typ types.Type -} - -func (x *term) String() string { - switch { - case x == nil: - return "∅" - case x.typ == nil: - return "𝓤" - case x.tilde: - return "~" + x.typ.String() - default: - return x.typ.String() - } -} - -// equal reports whether x and y represent the same type set. -func (x *term) equal(y *term) bool { - // easy cases - switch { - case x == nil || y == nil: - return x == y - case x.typ == nil || y.typ == nil: - return x.typ == y.typ - } - // ∅ ⊂ x, y ⊂ 𝓤 - - return x.tilde == y.tilde && types.Identical(x.typ, y.typ) -} - -// union returns the union x ∪ y: zero, one, or two non-nil terms. -func (x *term) union(y *term) (_, _ *term) { - // easy cases - switch { - case x == nil && y == nil: - return nil, nil // ∅ ∪ ∅ == ∅ - case x == nil: - return y, nil // ∅ ∪ y == y - case y == nil: - return x, nil // x ∪ ∅ == x - case x.typ == nil: - return x, nil // 𝓤 ∪ y == 𝓤 - case y.typ == nil: - return y, nil // x ∪ 𝓤 == 𝓤 - } - // ∅ ⊂ x, y ⊂ 𝓤 - - if x.disjoint(y) { - return x, y // x ∪ y == (x, y) if x ∩ y == ∅ - } - // x.typ == y.typ - - // ~t ∪ ~t == ~t - // ~t ∪ T == ~t - // T ∪ ~t == ~t - // T ∪ T == T - if x.tilde || !y.tilde { - return x, nil - } - return y, nil -} - -// intersect returns the intersection x ∩ y. -func (x *term) intersect(y *term) *term { - // easy cases - switch { - case x == nil || y == nil: - return nil // ∅ ∩ y == ∅ and ∩ ∅ == ∅ - case x.typ == nil: - return y // 𝓤 ∩ y == y - case y.typ == nil: - return x // x ∩ 𝓤 == x - } - // ∅ ⊂ x, y ⊂ 𝓤 - - if x.disjoint(y) { - return nil // x ∩ y == ∅ if x ∩ y == ∅ - } - // x.typ == y.typ - - // ~t ∩ ~t == ~t - // ~t ∩ T == T - // T ∩ ~t == T - // T ∩ T == T - if !x.tilde || y.tilde { - return x - } - return y -} - -// includes reports whether t ∈ x. -func (x *term) includes(t types.Type) bool { - // easy cases - switch { - case x == nil: - return false // t ∈ ∅ == false - case x.typ == nil: - return true // t ∈ 𝓤 == true - } - // ∅ ⊂ x ⊂ 𝓤 - - u := t - if x.tilde { - u = under(u) - } - return types.Identical(x.typ, u) -} - -// subsetOf reports whether x ⊆ y. -func (x *term) subsetOf(y *term) bool { - // easy cases - switch { - case x == nil: - return true // ∅ ⊆ y == true - case y == nil: - return false // x ⊆ ∅ == false since x != ∅ - case y.typ == nil: - return true // x ⊆ 𝓤 == true - case x.typ == nil: - return false // 𝓤 ⊆ y == false since y != 𝓤 - } - // ∅ ⊂ x, y ⊂ 𝓤 - - if x.disjoint(y) { - return false // x ⊆ y == false if x ∩ y == ∅ - } - // x.typ == y.typ - - // ~t ⊆ ~t == true - // ~t ⊆ T == false - // T ⊆ ~t == true - // T ⊆ T == true - return !x.tilde || y.tilde -} - -// disjoint reports whether x ∩ y == ∅. -// x.typ and y.typ must not be nil. -func (x *term) disjoint(y *term) bool { - if debug && (x.typ == nil || y.typ == nil) { - panic("invalid argument(s)") - } - ux := x.typ - if y.tilde { - ux = under(ux) - } - uy := y.typ - if x.tilde { - uy = under(uy) - } - return !types.Identical(ux, uy) -} diff --git a/internal/typeutil/map.go b/internal/typeutil/map.go deleted file mode 100644 index 855ab4c9..00000000 --- a/internal/typeutil/map.go +++ /dev/null @@ -1,525 +0,0 @@ -// Copyright 2014 The Go Authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -// Package typeutil defines various utilities for types, such as Map, -// a mapping from types.Type to interface{} values. -package typeutil - -import ( - "bytes" - "fmt" - "go/types" - "reflect" - - "github.com/goplus/llgo/internal/aliases" - "github.com/goplus/llgo/internal/typeparams" -) - -// Map is a hash-table-based mapping from types (types.Type) to -// arbitrary interface{} values. The concrete types that implement -// the Type interface are pointers. Since they are not canonicalized, -// == cannot be used to check for equivalence, and thus we cannot -// simply use a Go map. -// -// Just as with map[K]V, a nil *Map is a valid empty map. -// -// Not thread-safe. -type Map struct { - hasher Hasher // shared by many Maps - table map[uint32][]entry // maps hash to bucket; entry.key==nil means unused - length int // number of map entries -} - -// entry is an entry (key/value association) in a hash bucket. -type entry struct { - key types.Type - value interface{} -} - -// SetHasher sets the hasher used by Map. -// -// All Hashers are functionally equivalent but contain internal state -// used to cache the results of hashing previously seen types. -// -// A single Hasher created by MakeHasher() may be shared among many -// Maps. This is recommended if the instances have many keys in -// common, as it will amortize the cost of hash computation. -// -// A Hasher may grow without bound as new types are seen. Even when a -// type is deleted from the map, the Hasher never shrinks, since other -// types in the map may reference the deleted type indirectly. -// -// Hashers are not thread-safe, and read-only operations such as -// Map.Lookup require updates to the hasher, so a full Mutex lock (not a -// read-lock) is require around all Map operations if a shared -// hasher is accessed from multiple threads. -// -// If SetHasher is not called, the Map will create a private hasher at -// the first call to Insert. -func (m *Map) SetHasher(hasher Hasher) { - m.hasher = hasher -} - -// Delete removes the entry with the given key, if any. -// It returns true if the entry was found. -func (m *Map) Delete(key types.Type) bool { - if m != nil && m.table != nil { - hash := m.hasher.Hash(key) - bucket := m.table[hash] - for i, e := range bucket { - if e.key != nil && types.Identical(key, e.key) { - // We can't compact the bucket as it - // would disturb iterators. - bucket[i] = entry{} - m.length-- - return true - } - } - } - return false -} - -// At returns the map entry for the given key. -// The result is nil if the entry is not present. -func (m *Map) At(key types.Type) interface{} { - if m != nil && m.table != nil { - for _, e := range m.table[m.hasher.Hash(key)] { - if e.key != nil && types.Identical(key, e.key) { - return e.value - } - } - } - return nil -} - -// Set sets the map entry for key to val, -// and returns the previous entry, if any. -func (m *Map) Set(key types.Type, value interface{}) (prev interface{}) { - if m.table != nil { - hash := m.hasher.Hash(key) - bucket := m.table[hash] - var hole *entry - for i, e := range bucket { - if e.key == nil { - hole = &bucket[i] - } else if types.Identical(key, e.key) { - prev = e.value - bucket[i].value = value - return - } - } - - if hole != nil { - *hole = entry{key, value} // overwrite deleted entry - } else { - m.table[hash] = append(bucket, entry{key, value}) - } - } else { - if m.hasher.memo == nil { - m.hasher = MakeHasher() - } - hash := m.hasher.Hash(key) - m.table = map[uint32][]entry{hash: {entry{key, value}}} - } - - m.length++ - return -} - -// Len returns the number of map entries. -func (m *Map) Len() int { - if m != nil { - return m.length - } - return 0 -} - -// Iterate calls function f on each entry in the map in unspecified order. -// -// If f should mutate the map, Iterate provides the same guarantees as -// Go maps: if f deletes a map entry that Iterate has not yet reached, -// f will not be invoked for it, but if f inserts a map entry that -// Iterate has not yet reached, whether or not f will be invoked for -// it is unspecified. -func (m *Map) Iterate(f func(key types.Type, value interface{})) { - if m != nil { - for _, bucket := range m.table { - for _, e := range bucket { - if e.key != nil { - f(e.key, e.value) - } - } - } - } -} - -// Keys returns a new slice containing the set of map keys. -// The order is unspecified. -func (m *Map) Keys() []types.Type { - keys := make([]types.Type, 0, m.Len()) - m.Iterate(func(key types.Type, _ interface{}) { - keys = append(keys, key) - }) - return keys -} - -func (m *Map) toString(values bool) string { - if m == nil { - return "{}" - } - var buf bytes.Buffer - fmt.Fprint(&buf, "{") - sep := "" - m.Iterate(func(key types.Type, value interface{}) { - fmt.Fprint(&buf, sep) - sep = ", " - fmt.Fprint(&buf, key) - if values { - fmt.Fprintf(&buf, ": %q", value) - } - }) - fmt.Fprint(&buf, "}") - return buf.String() -} - -// String returns a string representation of the map's entries. -// Values are printed using fmt.Sprintf("%v", v). -// Order is unspecified. -func (m *Map) String() string { - return m.toString(true) -} - -// KeysString returns a string representation of the map's key set. -// Order is unspecified. -func (m *Map) KeysString() string { - return m.toString(false) -} - -//////////////////////////////////////////////////////////////////////// -// Hasher - -// A Hasher maps each type to its hash value. -// For efficiency, a hasher uses memoization; thus its memory -// footprint grows monotonically over time. -// Hashers are not thread-safe. -// Hashers have reference semantics. -// Call MakeHasher to create a Hasher. -type Hasher struct { - memo map[types.Type]uint32 - - // ptrMap records pointer identity. - ptrMap map[interface{}]uint32 - - // sigTParams holds type parameters from the signature being hashed. - // Signatures are considered identical modulo renaming of type parameters, so - // within the scope of a signature type the identity of the signature's type - // parameters is just their index. - // - // Since the language does not currently support referring to uninstantiated - // generic types or functions, and instantiated signatures do not have type - // parameter lists, we should never encounter a second non-empty type - // parameter list when hashing a generic signature. - sigTParams *types.TypeParamList -} - -// MakeHasher returns a new Hasher instance. -func MakeHasher() Hasher { - return Hasher{ - memo: make(map[types.Type]uint32), - ptrMap: make(map[interface{}]uint32), - sigTParams: nil, - } -} - -// Hash computes a hash value for the given type t such that -// Identical(t, t') => Hash(t) == Hash(t'). -func (h Hasher) Hash(t types.Type) uint32 { - hash, ok := h.memo[t] - if !ok { - hash = h.hashFor(t) - h.memo[t] = hash - } - return hash -} - -// hashString computes the Fowler–Noll–Vo hash of s. -func hashString(s string) uint32 { - var h uint32 - for i := 0; i < len(s); i++ { - h ^= uint32(s[i]) - h *= 16777619 - } - return h -} - -func HashSig(h Hasher, t *types.Signature) uint32 { - var hash uint32 = 9091 - if t.Variadic() { - hash *= 8863 - } - - // Use a separate hasher for types inside of the signature, where type - // parameter identity is modified to be (index, constraint). We must use a - // new memo for this hasher as type identity may be affected by this - // masking. For example, in func[T any](*T), the identity of *T depends on - // whether we are mapping the argument in isolation, or recursively as part - // of hashing the signature. - // - // We should never encounter a generic signature while hashing another - // generic signature, but defensively set sigTParams only if h.mask is - // unset. - tparams := t.TypeParams() - if h.sigTParams == nil && tparams.Len() != 0 { - h = Hasher{ - // There may be something more efficient than discarding the existing - // memo, but it would require detecting whether types are 'tainted' by - // references to type parameters. - memo: make(map[types.Type]uint32), - // Re-using ptrMap ensures that pointer identity is preserved in this - // hasher. - ptrMap: h.ptrMap, - sigTParams: tparams, - } - } - - for i := 0; i < tparams.Len(); i++ { - tparam := tparams.At(i) - hash += 7 * h.Hash(tparam.Constraint()) - } - - return hash + 3*h.hashTuple(t.Params()) + 5*h.hashTuple(t.Results()) -} - -// hashFor computes the hash of t. -func (h Hasher) hashFor(t types.Type) uint32 { - // See Identical for rationale. - switch t := t.(type) { - case *types.Basic: - return uint32(t.Kind()) - - case *aliases.Alias: - return h.Hash(t.Underlying()) - - case *types.Array: - return 9043 + 2*uint32(t.Len()) + 3*h.Hash(t.Elem()) - - case *types.Slice: - return 9049 + 2*h.Hash(t.Elem()) - - case *types.Struct: - var hash uint32 = 9059 - for i, n := 0, t.NumFields(); i < n; i++ { - f := t.Field(i) - if f.Anonymous() { - hash += 8861 - } - hash += hashString(t.Tag(i)) - hash += hashString(f.Name()) // (ignore f.Pkg) - hash += h.Hash(f.Type()) - } - return hash - - case *types.Pointer: - return 9067 + 2*h.Hash(t.Elem()) - - case *types.Signature: - return HashSig(h, t) - - case *types.Union: - return h.hashUnion(t) - - case *types.Interface: - // Interfaces are identical if they have the same set of methods, with - // identical names and types, and they have the same set of type - // restrictions. See go/types.identical for more details. - var hash uint32 = 9103 - - // Hash methods. - for i, n := 0, t.NumMethods(); i < n; i++ { - // Method order is not significant. - // Ignore m.Pkg(). - m := t.Method(i) - // Use shallow hash on method signature to - // avoid anonymous interface cycles. - hash += 3*hashString(m.Name()) + 5*h.shallowHash(m.Type()) - } - - // Hash type restrictions. - terms, err := typeparams.InterfaceTermSet(t) - // if err != nil t has invalid type restrictions. - if err == nil { - hash += h.hashTermSet(terms) - } - - return hash - - case *types.Map: - return 9109 + 2*h.Hash(t.Key()) + 3*h.Hash(t.Elem()) - - case *types.Chan: - return 9127 + 2*uint32(t.Dir()) + 3*h.Hash(t.Elem()) - - case *types.Named: - hash := h.hashPtr(t.Obj()) - targs := t.TypeArgs() - for i := 0; i < targs.Len(); i++ { - targ := targs.At(i) - hash += 2 * h.Hash(targ) - } - return hash - - case *types.TypeParam: - return h.hashTypeParam(t) - - case *types.Tuple: - return h.hashTuple(t) - - case interface{ Hash(h Hasher) uint32 }: - return t.Hash(h) - } - - panic(fmt.Sprintf("%T: %v", t, t)) -} - -func (h Hasher) hashTuple(tuple *types.Tuple) uint32 { - // See go/types.identicalTypes for rationale. - n := tuple.Len() - hash := 9137 + 2*uint32(n) - for i := 0; i < n; i++ { - hash += 3 * h.Hash(tuple.At(i).Type()) - } - return hash -} - -func (h Hasher) hashUnion(t *types.Union) uint32 { - // Hash type restrictions. - terms, err := typeparams.UnionTermSet(t) - // if err != nil t has invalid type restrictions. Fall back on a non-zero - // hash. - if err != nil { - return 9151 - } - return h.hashTermSet(terms) -} - -func (h Hasher) hashTermSet(terms []*types.Term) uint32 { - hash := 9157 + 2*uint32(len(terms)) - for _, term := range terms { - // term order is not significant. - termHash := h.Hash(term.Type()) - if term.Tilde() { - termHash *= 9161 - } - hash += 3 * termHash - } - return hash -} - -// hashTypeParam returns a hash of the type parameter t, with a hash value -// depending on whether t is contained in h.sigTParams. -// -// If h.sigTParams is set and contains t, then we are in the process of hashing -// a signature, and the hash value of t must depend only on t's index and -// constraint: signatures are considered identical modulo type parameter -// renaming. To avoid infinite recursion, we only hash the type parameter -// index, and rely on types.Identical to handle signatures where constraints -// are not identical. -// -// Otherwise the hash of t depends only on t's pointer identity. -func (h Hasher) hashTypeParam(t *types.TypeParam) uint32 { - if h.sigTParams != nil { - i := t.Index() - if i >= 0 && i < h.sigTParams.Len() && t == h.sigTParams.At(i) { - return 9173 + 3*uint32(i) - } - } - return h.hashPtr(t.Obj()) -} - -// hashPtr hashes the pointer identity of ptr. It uses h.ptrMap to ensure that -// pointers values are not dependent on the GC. -func (h Hasher) hashPtr(ptr interface{}) uint32 { - if hash, ok := h.ptrMap[ptr]; ok { - return hash - } - hash := uint32(reflect.ValueOf(ptr).Pointer()) - h.ptrMap[ptr] = hash - return hash -} - -// shallowHash computes a hash of t without looking at any of its -// element Types, to avoid potential anonymous cycles in the types of -// interface methods. -// -// When an unnamed non-empty interface type appears anywhere among the -// arguments or results of an interface method, there is a potential -// for endless recursion. Consider: -// -// type X interface { m() []*interface { X } } -// -// The problem is that the Methods of the interface in m's result type -// include m itself; there is no mention of the named type X that -// might help us break the cycle. -// (See comment in go/types.identical, case *Interface, for more.) -func (h Hasher) shallowHash(t types.Type) uint32 { - // t is the type of an interface method (Signature), - // its params or results (Tuples), or their immediate - // elements (mostly Slice, Pointer, Basic, Named), - // so there's no need to optimize anything else. - switch t := t.(type) { - case *aliases.Alias: - return h.shallowHash(t.Underlying()) - - case *types.Signature: - var hash uint32 = 604171 - if t.Variadic() { - hash *= 971767 - } - // The Signature/Tuple recursion is always finite - // and invariably shallow. - return hash + 1062599*h.shallowHash(t.Params()) + 1282529*h.shallowHash(t.Results()) - - case *types.Tuple: - n := t.Len() - hash := 9137 + 2*uint32(n) - for i := 0; i < n; i++ { - hash += 53471161 * h.shallowHash(t.At(i).Type()) - } - return hash - - case *types.Basic: - return 45212177 * uint32(t.Kind()) - - case *types.Array: - return 1524181 + 2*uint32(t.Len()) - - case *types.Slice: - return 2690201 - - case *types.Struct: - return 3326489 - - case *types.Pointer: - return 4393139 - - case *types.Union: - return 562448657 - - case *types.Interface: - return 2124679 // no recursion here - - case *types.Map: - return 9109 - - case *types.Chan: - return 9127 - - case *types.Named: - return h.hashPtr(t.Obj()) - - case *types.TypeParam: - return h.hashPtr(t.Obj()) - } - panic(fmt.Sprintf("shallowHash: %T: %v", t, t)) -} diff --git a/_demo/cchan/cchan.go b/runtime/_test/cchan/cchan.go similarity index 93% rename from _demo/cchan/cchan.go rename to runtime/_test/cchan/cchan.go index 11795299..fe348e00 100644 --- a/_demo/cchan/cchan.go +++ b/runtime/_test/cchan/cchan.go @@ -3,7 +3,7 @@ package main import ( "unsafe" - "github.com/goplus/llgo/internal/runtime" + "github.com/goplus/llgo/runtime/internal/runtime" ) const ( diff --git a/_demo/cchansel/cchansel.go b/runtime/_test/cchansel/cchansel.go similarity index 92% rename from _demo/cchansel/cchansel.go rename to runtime/_test/cchansel/cchansel.go index 4d0fca18..6ca123a8 100644 --- a/_demo/cchansel/cchansel.go +++ b/runtime/_test/cchansel/cchansel.go @@ -3,7 +3,7 @@ package main import ( "unsafe" - "github.com/goplus/llgo/internal/runtime" + "github.com/goplus/llgo/runtime/internal/runtime" ) const ( diff --git a/internal/abi/map.go b/runtime/abi/map.go similarity index 100% rename from internal/abi/map.go rename to runtime/abi/map.go diff --git a/runtime/abi/map_test.go b/runtime/abi/map_test.go new file mode 100644 index 00000000..fd300eba --- /dev/null +++ b/runtime/abi/map_test.go @@ -0,0 +1,334 @@ +package abi + +import ( + "fmt" + "testing" + + "go/types" +) + +const ( + MAXKEYSIZE = 128 + MAXELEMSIZE = 128 + BUCKETSIZE = 8 +) + +type mockSizes struct { + alignof func(types.Type) int64 + sizeof func(types.Type) int64 +} + +func (m mockSizes) Alignof(t types.Type) int64 { return m.alignof(t) } +func (m mockSizes) Sizeof(t types.Type) int64 { return m.sizeof(t) } +func (m mockSizes) Offsetsof(f []*types.Var) []int64 { + // Mock implementation for testing alignment checks + return []int64{0, 8, 16} // Typical offsets for bucket fields +} + +// isPointer reports whether t is a pointer type. +func isPointer(t types.Type) (ok bool) { + _, ok = t.Underlying().(*types.Pointer) + return +} + +// MapTypeFlags computes the flags for the given map type. +func MapTypeFlags(t *types.Map, sizes types.Sizes) (flags int) { + if sizes.Sizeof(t.Key()) > MAXKEYSIZE { + flags |= 1 // indirect key + } + if sizes.Sizeof(t.Elem()) > MAXELEMSIZE { + flags |= 2 // indirect value + } + return +} + +// MapBucketType returns the bucket type for a map. +func MapBucketType(t *types.Map, sizes types.Sizes) *types.Struct { + keytype := t.Key() + elemtype := t.Elem() + bucket := types.NewStruct([]*types.Var{}, nil) + + if !types.Comparable(keytype) { + log.Fatalf("unsupported map key type for %v", t) + } + if BUCKETSIZE < 8 { + log.Fatalf("bucket size %d too small for proper alignment %d", BUCKETSIZE, 8) + } + if uint8(sizes.Alignof(keytype)) > BUCKETSIZE { + log.Fatalf("key align too big for %v", t) + } + if uint8(sizes.Alignof(elemtype)) > BUCKETSIZE { + log.Fatalf("elem align %d too big for %v, BUCKETSIZE=%d", sizes.Alignof(elemtype), t, BUCKETSIZE) + } + if sizes.Alignof(keytype) > MAXKEYSIZE { + log.Fatalf("key align too big for %v", t) + } + if sizes.Alignof(elemtype) > MAXELEMSIZE { + log.Fatalf("elem align too big for %v", t) + } + if sizes.Alignof(keytype) > MAXKEYSIZE && !isPointer(keytype) { + log.Fatalf("key indirect incorrect for %v", t) + } + if sizes.Alignof(elemtype) > MAXELEMSIZE && !isPointer(elemtype) { + log.Fatalf("elem indirect incorrect for %v", t) + } + if sizes.Sizeof(keytype)%sizes.Alignof(keytype) != 0 { + log.Fatalf("key size not a multiple of key align for %v", t) + } + if sizes.Sizeof(elemtype)%sizes.Alignof(elemtype) != 0 { + log.Fatalf("elem size not a multiple of elem align for %v", t) + } + if uint8(sizes.Alignof(bucket))%uint8(sizes.Alignof(keytype)) != 0 { + log.Fatalf("bucket align not multiple of key align %v", t) + } + if uint8(sizes.Alignof(bucket))%uint8(sizes.Alignof(elemtype)) != 0 { + log.Fatalf("bucket align not multiple of elem align %v", t) + } + offs := sizes.Offsetsof(nil) + if len(offs) >= 3 && offs[1]%sizes.Alignof(keytype) != 0 { + log.Fatalf("bad alignment of keys in bmap for %v", t) + } + if len(offs) >= 3 && offs[2]%sizes.Alignof(elemtype) != 0 { + log.Fatalf("bad alignment of elems in bmap for %v", t) + } + + return bucket +} + +// logger interface for testing +type logger interface { + Fatalf(format string, args ...interface{}) +} + +var log logger = &defaultLogger{} + +type defaultLogger struct{} + +func (l *defaultLogger) Fatalf(format string, args ...interface{}) { + panic(fmt.Sprintf(format, args...)) +} + +type testLogger struct { + t *testing.T +} + +func (l *testLogger) Fatalf(format string, args ...interface{}) { + msg := fmt.Sprintf(format, args...) + panic(msg) +} + +func TestIsPointer(t *testing.T) { + tests := []struct { + name string + typ types.Type + want bool + }{ + { + name: "pointer type", + typ: types.NewPointer(types.Typ[types.Int]), + want: true, + }, + { + name: "non-pointer type", + typ: types.Typ[types.Int], + want: false, + }, + { + name: "pointer to struct", + typ: types.NewPointer(types.NewStruct([]*types.Var{}, nil)), + want: true, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := isPointer(tt.typ); got != tt.want { + t.Errorf("isPointer() = %v, want %v", got, tt.want) + } + }) + } +} + +func TestMapTypeFlags(t *testing.T) { + tests := []struct { + name string + key types.Type + elem types.Type + sizeFn func(types.Type) int64 + alignFn func(types.Type) int64 + wantFlag int + }{ + { + name: "small key and elem", + key: types.Typ[types.Int], + elem: types.Typ[types.Int], + sizeFn: func(t types.Type) int64 { + return 8 // 64-bit integers + }, + alignFn: func(t types.Type) int64 { + return 8 + }, + wantFlag: 0, + }, + { + name: "large key", + key: types.NewArray(types.Typ[types.Int64], 20), // 160 bytes + elem: types.Typ[types.Int], + sizeFn: func(t types.Type) int64 { + if _, ok := t.(*types.Array); ok { + return 160 + } + return 8 + }, + alignFn: func(t types.Type) int64 { + return 8 + }, + wantFlag: 1, // indirect key + }, + { + name: "large elem", + key: types.Typ[types.Int], + elem: types.NewArray(types.Typ[types.Int64], 20), // 160 bytes + sizeFn: func(t types.Type) int64 { + if _, ok := t.(*types.Array); ok { + return 160 + } + return 8 + }, + alignFn: func(t types.Type) int64 { + return 8 + }, + wantFlag: 2, // indirect elem + }, + { + name: "large key and elem", + key: types.NewArray(types.Typ[types.Int64], 20), // 160 bytes + elem: types.NewArray(types.Typ[types.Int64], 20), // 160 bytes + sizeFn: func(t types.Type) int64 { + if _, ok := t.(*types.Array); ok { + return 160 + } + return 8 + }, + alignFn: func(t types.Type) int64 { + return 8 + }, + wantFlag: 3, // both indirect + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + sizes := &mockSizes{ + sizeof: tt.sizeFn, + alignof: tt.alignFn, + } + mapType := types.NewMap(tt.key, tt.elem) + if got := MapTypeFlags(mapType, sizes); got != tt.wantFlag { + t.Errorf("MapTypeFlags() = %v, want %v", got, tt.wantFlag) + } + }) + } +} + +func TestMapTypeChecks(t *testing.T) { + origLog := log + defer func() { log = origLog }() + + tests := []struct { + name string + setup func() (*types.Map, types.Sizes) + wantErr bool + }{ + { + name: "non-comparable key type", + setup: func() (*types.Map, types.Sizes) { + key := types.NewSlice(types.Typ[types.Int]) + elem := types.Typ[types.Int] + return types.NewMap(key, elem), &mockSizes{ + sizeof: func(t types.Type) int64 { return 8 }, + alignof: func(t types.Type) int64 { return 8 }, + } + }, + wantErr: true, + }, + { + name: "key align too big", + setup: func() (*types.Map, types.Sizes) { + return types.NewMap(types.Typ[types.Int], types.Typ[types.Int]), &mockSizes{ + sizeof: func(t types.Type) int64 { return 8 }, + alignof: func(t types.Type) int64 { + if _, ok := t.(*types.Basic); ok && t.String() == "int" { + return BUCKETSIZE + 1 + } + return 8 + }, + } + }, + wantErr: true, + }, + { + name: "key size not multiple of align", + setup: func() (*types.Map, types.Sizes) { + return types.NewMap(types.Typ[types.Int], types.Typ[types.Int]), &mockSizes{ + sizeof: func(t types.Type) int64 { + if _, ok := t.(*types.Basic); ok && t.String() == "int" { + return 7 + } + return 8 + }, + alignof: func(t types.Type) int64 { + if _, ok := t.(*types.Basic); ok && t.String() == "int" { + return 4 + } + return 8 + }, + } + }, + wantErr: true, + }, + { + name: "elem align too big", + setup: func() (*types.Map, types.Sizes) { + return types.NewMap(types.Typ[types.Int], types.Typ[types.Int]), &mockSizes{ + sizeof: func(t types.Type) int64 { return 8 }, + alignof: func(t types.Type) int64 { + if _, ok := t.(*types.Basic); ok && t.String() == "int" { + return 4 + } + return BUCKETSIZE + 1 + }, + } + }, + wantErr: true, + }, + { + name: "valid map type", + setup: func() (*types.Map, types.Sizes) { + return types.NewMap(types.Typ[types.Int], types.Typ[types.Int]), &mockSizes{ + sizeof: func(t types.Type) int64 { return 8 }, + alignof: func(t types.Type) int64 { return 8 }, + } + }, + wantErr: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + log = &testLogger{t: t} + defer func() { + if r := recover(); r != nil { + if !tt.wantErr { + t.Errorf("MapBucketType() panicked unexpectedly: %v", r) + } + } else if tt.wantErr { + t.Error("expected panic but got none") + } + }() + + mapType, sizes := tt.setup() + MapBucketType(mapType, sizes) + }) + } +} diff --git a/internal/abi/type.go b/runtime/abi/type.go similarity index 100% rename from internal/abi/type.go rename to runtime/abi/type.go diff --git a/runtime/go.mod b/runtime/go.mod new file mode 100644 index 00000000..b41b2115 --- /dev/null +++ b/runtime/go.mod @@ -0,0 +1,5 @@ +module github.com/goplus/llgo/runtime + +go 1.20 + +require github.com/qiniu/x v1.13.10 diff --git a/runtime/go.sum b/runtime/go.sum new file mode 100644 index 00000000..7b102479 --- /dev/null +++ b/runtime/go.sum @@ -0,0 +1,2 @@ +github.com/qiniu/x v1.13.10 h1:J4Z3XugYzAq85SlyAfqlKVrbf05glMbAOh+QncsDQpE= +github.com/qiniu/x v1.13.10/go.mod h1:INZ2TSWSJVWO/RuELQROERcslBwVgFG7MkTfEdaQz9E= diff --git a/runtime/internal/clite/bdwgc/_test/bdwgc.go b/runtime/internal/clite/bdwgc/_test/bdwgc.go new file mode 100644 index 00000000..0a8d012e --- /dev/null +++ b/runtime/internal/clite/bdwgc/_test/bdwgc.go @@ -0,0 +1,101 @@ +package main + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/bdwgc" + "github.com/goplus/llgo/runtime/internal/clite/bdwgc/_test/testing" +) + +// ------ Test malloc ------ + +func TestMalloc(t *testing.T) { + pn := (*int)(bdwgc.Malloc(unsafe.Sizeof(int(0)))) + *pn = 1 << 30 + c.Printf(c.Str("value: %d, %x, %p, %p\n"), *pn, *pn, pn, &pn) + + pl := (*int64)(bdwgc.Realloc(c.Pointer(pn), unsafe.Sizeof(int64(0)))) + *pl = 1 << 60 + c.Printf(c.Str("value: %lld, %llx, %p, %p\n"), *pl, *pl, pl, &pl) + + bdwgc.Free(c.Pointer(pl)) +} + +// ------ Test finalizer ------ + +const ( + RETURN_VALUE_FREED = 1 << 31 +) + +var called uint = 0 + +func setReturnValueFreed(pobj c.Pointer, clientData c.Pointer) { + called |= RETURN_VALUE_FREED + c.Printf(c.Str("called: %x\n"), called) +} + +func setLoopValueFreed(pobj c.Pointer, clientData c.Pointer) { + pmask := (*uint)(clientData) + called |= *pmask + c.Printf(c.Str("called: %x\n"), called) +} + +func isCalled(mask uint) bool { + return called&mask != 0 +} + +func returnValue() *int { + pn := bdwgc.Malloc(unsafe.Sizeof(int(0))) + bdwgc.RegisterFinalizer(pn, setReturnValueFreed, nil, nil, nil) + return (*int)(pn) +} + +func callFunc() { + pn := returnValue() + *pn = 1 << 30 + c.Printf(c.Str("value: %d, %x, %p, %p\n"), *pn, *pn, pn, &pn) + bdwgc.Gcollect() + check(!isCalled(RETURN_VALUE_FREED), c.Str("finalizer should not be called")) +} + +func loop() { + for i := 0; i < 5; i++ { + p := bdwgc.Malloc(unsafe.Sizeof(int(0))) + pn := (*int)(p) + *pn = i + c.Printf(c.Str("value: %d, %x, %p, %p\n"), *pn, *pn, pn, &pn) + pflag := (*uint)(c.Malloc(unsafe.Sizeof(uint(0)))) + *pflag = 1 << i + bdwgc.RegisterFinalizer(p, setLoopValueFreed, c.Pointer(pflag), nil, nil) + bdwgc.Gcollect() + check(!isCalled(1<= len(tests) { + c.Printf(c.Str("invalid test index %d"), idx) + panic("invalid test index") + } + tests[idx].F(nil) +} diff --git a/runtime/internal/clite/bdwgc/_test/testing/testing.go b/runtime/internal/clite/bdwgc/_test/testing/testing.go new file mode 100644 index 00000000..d4b6029b --- /dev/null +++ b/runtime/internal/clite/bdwgc/_test/testing/testing.go @@ -0,0 +1,4 @@ +package testing + +type T struct { +} diff --git a/runtime/internal/clite/bdwgc/bdwgc.go b/runtime/internal/clite/bdwgc/bdwgc.go new file mode 100644 index 00000000..92077a36 --- /dev/null +++ b/runtime/internal/clite/bdwgc/bdwgc.go @@ -0,0 +1,103 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 bdwgc + +import ( + _ "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +const ( + LLGoPackage = "link: $(pkg-config --libs bdw-gc); -lgc" +) + +// ----------------------------------------------------------------------------- + +//go:linkname Init C.GC_init +func Init() + +//go:linkname Malloc C.GC_malloc +func Malloc(size uintptr) c.Pointer + +//go:linkname Realloc C.GC_realloc +func Realloc(ptr c.Pointer, size uintptr) c.Pointer + +//go:linkname Free C.GC_free +func Free(ptr c.Pointer) + +// ----------------------------------------------------------------------------- + +//go:linkname RegisterFinalizer C.GC_register_finalizer +func RegisterFinalizer( + obj c.Pointer, + fn func(c.Pointer, c.Pointer), cd c.Pointer, + oldFn *func(c.Pointer, c.Pointer), oldCd *c.Pointer) + +//go:linkname RegisterFinalizerNoOrder C.GC_register_finalizer_no_order +func RegisterFinalizerNoOrder( + obj c.Pointer, + fn func(c.Pointer, c.Pointer), cd c.Pointer, + oldFn *func(c.Pointer, c.Pointer), oldCd *c.Pointer) + +//go:linkname RegisterFinalizerIgnoreSelf C.GC_register_finalizer_ignore_self +func RegisterFinalizerIgnoreSelf( + obj c.Pointer, + fn func(c.Pointer, c.Pointer), cd c.Pointer, + oldFn *func(c.Pointer, c.Pointer), oldCd *c.Pointer) + +//go:linkname RegisterFinalizerUnreachable C.GC_register_finalizer_unreachable +func RegisterFinalizerUnreachable( + obj c.Pointer, + fn func(c.Pointer, c.Pointer), cd c.Pointer, + oldFn *func(c.Pointer, c.Pointer), oldCd *c.Pointer) + +// ----------------------------------------------------------------------------- + +//go:linkname Enable C.GC_enable +func Enable() + +//go:linkname Disable C.GC_disable +func Disable() + +//go:linkname IsDisabled C.GC_is_disabled +func IsDisabled() c.Int + +//go:linkname Gcollect C.GC_gcollect +func Gcollect() + +//go:linkname GetMemoryUse C.GC_get_memory_use +func GetMemoryUse() uintptr + +// ----------------------------------------------------------------------------- + +//go:linkname EnableIncremental C.GC_enable_incremental +func EnableIncremental() + +//go:linkname IsIncrementalMode C.GC_is_incremental_mode +func IsIncrementalMode() c.Int + +//go:linkname IncrementalProtectionNeeds C.GC_incremental_protection_needs +func IncrementalProtectionNeeds() c.Int + +//go:linkname StartIncrementalCollection C.GC_start_incremental_collection +func StartIncrementalCollection() + +//go:linkname CollectALittle C.GC_collect_a_little +func CollectALittle() + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/bitcast/_cast/cast.c b/runtime/internal/clite/bitcast/_cast/cast.c new file mode 100644 index 00000000..bcc90d64 --- /dev/null +++ b/runtime/internal/clite/bitcast/_cast/cast.c @@ -0,0 +1,17 @@ +typedef union { + double d; + float f; + long v; +} castUnion; + +double llgoToFloat64(long v) { + castUnion k; + k.v = v; + return k.d; +} + +float llgoToFloat32(long v) { + castUnion k; + k.v = v; + return k.f; +} diff --git a/runtime/internal/clite/bitcast/bitcast.go b/runtime/internal/clite/bitcast/bitcast.go new file mode 100644 index 00000000..f6d12351 --- /dev/null +++ b/runtime/internal/clite/bitcast/bitcast.go @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 bitcast + +import _ "unsafe" + +const ( + LLGoFiles = "_cast/cast.c" + LLGoPackage = "link" +) + +//go:linkname ToFloat64 C.llgoToFloat64 +func ToFloat64(v uintptr) float64 + +//go:linkname ToFloat32 C.llgoToFloat32 +func ToFloat32(v uintptr) float32 diff --git a/runtime/internal/clite/c.go b/runtime/internal/clite/c.go new file mode 100644 index 00000000..65323f74 --- /dev/null +++ b/runtime/internal/clite/c.go @@ -0,0 +1,302 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 clite + +// typedef unsigned int uint; +// typedef unsigned long ulong; +// typedef unsigned long long ulonglong; +// typedef long long longlong; +import "C" +import "unsafe" + +const ( + LLGoPackage = "decl" +) + +type ( + Void = [0]byte + Char = int8 + Float = float32 + Double = float64 + Pointer = unsafe.Pointer + FilePtr = *FILE +) + +type FILE struct { + Unused [8]byte +} + +type ( + Int C.int + Uint C.uint + + Long C.long + Ulong C.ulong + + LongLong C.longlong + UlongLong C.ulonglong +) + +type integer interface { + ~int | ~uint | ~uintptr | ~int32 | ~uint32 | ~int64 | ~uint64 +} + +type SizeT = uintptr + +type IntptrT = uintptr +type UintptrT = uintptr +type Int8T = int8 +type Int16T = int16 +type Int32T = int32 +type Int64T = int64 + +type Uint8T = uint8 +type Uint16T = uint16 +type Uint32T = uint32 +type Uint64T = uint64 + +type IntmaxT = LongLong +type UintmaxT = UlongLong + +//go:linkname Str llgo.cstr +func Str(string) *Char + +//go:linkname Func llgo.funcAddr +func Func(any) Pointer + +// llgo:link Advance llgo.advance +func Advance[PtrT any, I integer](ptr PtrT, offset I) PtrT { return ptr } + +// llgo:link Index llgo.index +func Index[T any, I integer](ptr *T, offset I) T { return *ptr } + +//go:linkname Alloca llgo.alloca +func Alloca(size uintptr) Pointer + +//go:linkname AllocaCStr llgo.allocaCStr +func AllocaCStr(s string) *Char + +//go:linkname AllocaCStrs llgo.allocaCStrs +func AllocaCStrs(strs []string, endWithNil bool) **Char + +// TODO(xsw): +// llgo:link AllocaNew llgo.allocaNew +func AllocaNew[T any]() *T { return nil } + +//go:linkname Malloc C.malloc +func Malloc(size uintptr) Pointer + +//go:linkname Calloc C.calloc +func Calloc(num uintptr, size uintptr) Pointer + +//go:linkname Free C.free +func Free(ptr Pointer) + +//go:linkname Realloc C.realloc +func Realloc(ptr Pointer, size uintptr) Pointer + +//go:linkname Memcpy C.memcpy +func Memcpy(dst, src Pointer, n uintptr) Pointer + +//go:linkname Memmove C.memmove +func Memmove(dst, src Pointer, n uintptr) Pointer + +//go:linkname Memset C.memset +func Memset(s Pointer, c Int, n uintptr) Pointer + +//go:linkname Memchr C.memchr +func Memchr(s Pointer, c Int, n uintptr) Pointer + +//go:linkname Memcmp C.memcmp +func Memcmp(s1, s2 Pointer, n uintptr) Int + +// ----------------------------------------------------------------------------- + +//go:linkname Strlen C.strlen +func Strlen(s *Char) uintptr + +//go:linkname Strcpy C.strcpy +func Strcpy(dst, src *Char) *Char + +//go:linkname Strncpy C.strncpy +func Strncpy(dst, src *Char, n uintptr) *Char + +//go:linkname Strcat C.strcat +func Strcat(dst, src *Char) *Char + +//go:linkname Strncat C.strncat +func Strncat(dst, src *Char, n uintptr) *Char + +//go:linkname Strcmp C.strcmp +func Strcmp(s1, s2 *Char) Int + +//go:linkname Strncmp C.strncmp +func Strncmp(s1, s2 *Char, n uintptr) Int + +//go:linkname Strchr C.strchr +func Strchr(s *Char, c Int) *Char + +//go:linkname Strrchr C.strrchr +func Strrchr(s *Char, c Int) *Char + +//go:linkname Strstr C.strstr +func Strstr(s1, s2 *Char) *Char + +//go:linkname Strdup C.strdup +func Strdup(s *Char) *Char + +//go:linkname Strndup C.strndup +func Strndup(s *Char, n uintptr) *Char + +//go:linkname Strtok C.strtok +func Strtok(s, delim *Char) *Char + +//go:linkname Strerror C.strerror +func Strerror(errnum Int) *Char + +//go:linkname Sprintf C.sprintf +func Sprintf(s *Char, format *Char, __llgo_va_list ...any) Int + +//go:linkname Snprintf C.snprintf +func Snprintf(s *Char, n uintptr, format *Char, __llgo_va_list ...any) Int + +//go:linkname Vsnprintf C.vsnprintf +func Vsnprintf(s *Char, n uintptr, format *Char, ap Pointer) Int + +// ----------------------------------------------------------------------------- + +// GoString converts a C string to a Go string. +// TODO(xsw): any => int +// +//go:linkname GoString llgo.string +func GoString(cstr *Char, __llgo_va_list /* n */ ...any) string + +//go:linkname GoStringData llgo.stringData +func GoStringData(string) *Char + +//go:linkname GoDeferData llgo.deferData +func GoDeferData() Pointer + +// ----------------------------------------------------------------------------- + +//go:linkname AllocaSigjmpBuf llgo.sigjmpbuf +func AllocaSigjmpBuf() Pointer + +//go:linkname Sigsetjmp llgo.sigsetjmp +func Sigsetjmp(jb Pointer, savemask Int) Int + +//go:linkname Siglongjmp llgo.siglongjmp +func Siglongjmp(jb Pointer, retval Int) + +//go:linkname Unreachable llgo.unreachable +func Unreachable() + +// ----------------------------------------------------------------------------- + +//go:linkname Exit C.exit +func Exit(Int) + +// ----------------------------------------------------------------------------- + +//go:linkname Rand C.rand +func Rand() Int + +//go:linkname Qsort C.qsort +func Qsort(base Pointer, count, elem uintptr, compar func(a, b Pointer) Int) + +// ----------------------------------------------------------------------------- + +//go:linkname Atoi C.atoi +func Atoi(s *Char) Int + +// ----------------------------------------------------------------------------- + +//go:linkname Printf C.printf +func Printf(format *Char, __llgo_va_list ...any) Int + +//go:linkname Fprintf C.fprintf +func Fprintf(fp FilePtr, format *Char, __llgo_va_list ...any) Int + +//go:linkname Fwrite C.fwrite +func Fwrite(data Pointer, size, count uintptr, fp FilePtr) uintptr + +//go:linkname Fputc C.fputc +func Fputc(c Int, fp FilePtr) Int + +//go:linkname Fputs C.fputs +func Fputs(s *Char, fp FilePtr) Int + +//go:linkname Fread C.fread +func Fread(data Pointer, size, count uintptr, fp FilePtr) uintptr + +//go:linkname Fflush C.fflush +func Fflush(fp FilePtr) Int + +//go:linkname Fopen C.fopen +func Fopen(c *Char, mod *Char) FilePtr + +//go:linkname Fclose C.fclose +func Fclose(fp FilePtr) Int + +//go:linkname Perror C.perror +func Perror(s *Char) + +// ----------------------------------------------------------------------------- + +//go:linkname Usleep C.usleep +func Usleep(useconds Uint) Int + +// ----------------------------------------------------------------------------- + +type Option struct { + Name *Char + HasArg Int + Flag *Int + Val Int +} + +//go:linkname Argc __llgo_argc +var Argc Int + +//go:linkname Argv __llgo_argv +var Argv **Char + +//go:linkname Optarg optarg +var Optarg *Char + +//go:linkname Optind optind +var Optind Int + +//go:linkname Opterr opterr +var Opterr Int + +//go:linkname Optopt optopt +var Optopt Int + +//go:linkname Getopt C.getopt +func Getopt(argc Int, argv **Char, optstring *Char) Int + +//go:linkname GetoptLong C.getopt_long +func GetoptLong(argc Int, argv **Char, optstring *Char, longopts *Option, longindex *Int) Int + +//go:linkname GetoptLongOnly C.getopt_long_only +func GetoptLongOnly(argc Int, argv **Char, optstring *Char, longopts *Option, longindex *Int) Int + +// ----------------------------------------------------------------------------- + +//go:linkname Sysconf C.sysconf +func Sysconf(name Int) Long diff --git a/runtime/internal/clite/c_default.go b/runtime/internal/clite/c_default.go new file mode 100644 index 00000000..48006fca --- /dev/null +++ b/runtime/internal/clite/c_default.go @@ -0,0 +1,31 @@ +//go:build !linux +// +build !linux + +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 clite + +import _ "unsafe" + +//go:linkname Stdin __stdinp +var Stdin FilePtr + +//go:linkname Stdout __stdoutp +var Stdout FilePtr + +//go:linkname Stderr __stderrp +var Stderr FilePtr diff --git a/runtime/internal/clite/c_linux.go b/runtime/internal/clite/c_linux.go new file mode 100644 index 00000000..de8203f5 --- /dev/null +++ b/runtime/internal/clite/c_linux.go @@ -0,0 +1,31 @@ +//go:build linux +// +build linux + +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 clite + +import _ "unsafe" + +//go:linkname Stdin stdin +var Stdin FilePtr + +//go:linkname Stdout stdout +var Stdout FilePtr + +//go:linkname Stderr stderr +var Stderr FilePtr diff --git a/runtime/internal/clite/debug/_wrap/debug.c b/runtime/internal/clite/debug/_wrap/debug.c new file mode 100644 index 00000000..4b11a191 --- /dev/null +++ b/runtime/internal/clite/debug/_wrap/debug.c @@ -0,0 +1,39 @@ +#if defined(__linux__) +#define UNW_LOCAL_ONLY +#define _GNU_SOURCE +#include +#endif + +#include +#include + +void *llgo_address() { + return __builtin_return_address(0); +} + +int llgo_addrinfo(void *addr, Dl_info *info) { + return dladdr(addr, info); +} + +void llgo_stacktrace(int skip, void *ctx, int (*fn)(void *ctx, void *pc, void *offset, void *sp, char *name)) { + unw_cursor_t cursor; + unw_context_t context; + unw_word_t offset, pc, sp; + char fname[256]; + unw_getcontext(&context); + unw_init_local(&cursor, &context); + int depth = 0; + while (unw_step(&cursor) > 0) { + if (depth < skip) { + depth++; + continue; + } + if (unw_get_reg(&cursor, UNW_REG_IP, &pc) == 0) { + unw_get_proc_name(&cursor, fname, sizeof(fname), &offset); + unw_get_reg(&cursor, UNW_REG_SP, &sp); + if (fn(ctx, (void*)pc, (void*)offset, (void*)sp, fname) == 0) { + return; + } + } + } +} \ No newline at end of file diff --git a/runtime/internal/clite/debug/debug.go b/runtime/internal/clite/debug/debug.go new file mode 100644 index 00000000..10e3a41e --- /dev/null +++ b/runtime/internal/clite/debug/debug.go @@ -0,0 +1,49 @@ +package debug + +/* +#cgo linux LDFLAGS: -lunwind +*/ +import "C" +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +const ( + LLGoPackage = "link" + LLGoFiles = "_wrap/debug.c" +) + +type Info struct { + Fname *c.Char + Fbase c.Pointer + Sname *c.Char + Saddr c.Pointer +} + +//go:linkname Address C.llgo_address +func Address() unsafe.Pointer + +//go:linkname Addrinfo C.llgo_addrinfo +func Addrinfo(addr unsafe.Pointer, info *Info) c.Int + +//go:linkname stacktrace C.llgo_stacktrace +func stacktrace(skip c.Int, ctx unsafe.Pointer, fn func(ctx, pc, offset, sp unsafe.Pointer, name *c.Char) c.Int) + +type Frame struct { + PC uintptr + Offset uintptr + SP unsafe.Pointer + Name string +} + +func StackTrace(skip int, fn func(fr *Frame) bool) { + stacktrace(c.Int(1+skip), unsafe.Pointer(&fn), func(ctx, pc, offset, sp unsafe.Pointer, name *c.Char) c.Int { + fn := *(*func(fr *Frame) bool)(ctx) + if !fn(&Frame{uintptr(pc), uintptr(offset), sp, c.GoString(name)}) { + return 0 + } + return 1 + }) +} diff --git a/runtime/internal/clite/ffi/_wrap/libffi.c b/runtime/internal/clite/ffi/_wrap/libffi.c new file mode 100644 index 00000000..53fa1c70 --- /dev/null +++ b/runtime/internal/clite/ffi/_wrap/libffi.c @@ -0,0 +1,5 @@ +#include + +void *llog_ffi_closure_alloc(void **code) { + return ffi_closure_alloc(sizeof(ffi_closure), code); +} diff --git a/runtime/internal/clite/ffi/abi.go b/runtime/internal/clite/ffi/abi.go new file mode 100644 index 00000000..a693166e --- /dev/null +++ b/runtime/internal/clite/ffi/abi.go @@ -0,0 +1,7 @@ +//go:build ((freebsd || linux || darwin) && arm64) || (windows && (amd64 || arm64)) + +package ffi + +const ( + DefaultAbi = 1 +) diff --git a/runtime/internal/clite/ffi/abi_amd64.go b/runtime/internal/clite/ffi/abi_amd64.go new file mode 100644 index 00000000..89078adb --- /dev/null +++ b/runtime/internal/clite/ffi/abi_amd64.go @@ -0,0 +1,7 @@ +//go:build freebsd || linux || darwin + +package ffi + +const ( + DefaultAbi = 2 +) diff --git a/runtime/internal/clite/ffi/ffi.go b/runtime/internal/clite/ffi/ffi.go new file mode 100644 index 00000000..91eb751b --- /dev/null +++ b/runtime/internal/clite/ffi/ffi.go @@ -0,0 +1,132 @@ +package ffi + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +const ( + LLGoPackage = "link: $(pkg-config --libs libffi); -lffi" + LLGoFiles = "$(pkg-config --cflags libffi): _wrap/libffi.c" +) + +const ( + Void = iota + Int + Float + Double + LongDouble + Uint8 + Sint8 + Uint16 + Sint16 + Uint32 + Sint32 + Uint64 + Sint64 + Struct + Pointer + Complex +) + +const ( + OK = iota + BAD_TYPEDEF + BAD_ABI + BAD_ARGTYPE +) + +type Type struct { + Size uintptr + Alignment uint16 + Type uint16 + Elements **Type +} + +/*typedef struct { + ffi_abi abi; + unsigned nargs; + ffi_type **arg_types; + ffi_type *rtype; + unsigned bytes; + unsigned flags; +#ifdef FFI_EXTRA_CIF_FIELDS + FFI_EXTRA_CIF_FIELDS; +#endif +} ffi_cif; +*/ + +type Cif struct { + Abi c.Uint + NArgs c.Uint + ArgTypes **Type + RType *Type + Bytes c.Uint + Flags c.Uint + //Extra c.Uint +} + +/* +ffi_status +ffi_prep_cif(ffi_cif *cif, + ffi_abi abi, + unsigned int nargs, + ffi_type *rtype, + ffi_type **atypes); +*/ +//go:linkname PrepCif C.ffi_prep_cif +func PrepCif(cif *Cif, abi c.Uint, nargs c.Uint, rtype *Type, atype **Type) c.Uint + +/* +ffi_status ffi_prep_cif_var(ffi_cif *cif, + ffi_abi abi, + unsigned int nfixedargs, + unsigned int ntotalargs, + ffi_type *rtype, + ffi_type **atypes); +*/ +//go:linkname PrepCifVar C.ffi_prep_cif_var +func PrepCifVar(cif *Cif, abi c.Uint, nfixedargs c.Uint, ntotalargs c.Uint, rtype *Type, atype **Type) c.Uint + +/* +void ffi_call(ffi_cif *cif, + void (*fn)(void), + void *rvalue, + void **avalue); +*/ +//go:linkname Call C.ffi_call +func Call(cif *Cif, fn unsafe.Pointer, rvalue unsafe.Pointer, avalue *unsafe.Pointer) + +// void *ffi_closure_alloc (size_t size, void **code); +// +//go:linkname ClosureAlloc C.llog_ffi_closure_alloc +func ClosureAlloc(code *unsafe.Pointer) unsafe.Pointer + +// void ffi_closure_free (void *); +// +//go:linkname ClosureFree C.ffi_closure_free +func ClosureFree(unsafe.Pointer) + +/* +ffi_status +ffi_prep_closure_loc (ffi_closure*, + ffi_cif *, + void (*fun)(ffi_cif*,void*,void**,void*), + void *user_data, + void *codeloc); +*/ + +//llgo:type C +type ClosureFunc func(cif *Cif, ret unsafe.Pointer, args *unsafe.Pointer, userdata unsafe.Pointer) + +//go:linkname PreClosureLoc C.ffi_prep_closure_loc +func PreClosureLoc(closure unsafe.Pointer, cif *Cif, fn ClosureFunc, userdata unsafe.Pointer, codeloc unsafe.Pointer) c.Uint + +func add(ptr unsafe.Pointer, offset uintptr) unsafe.Pointer { + return unsafe.Pointer(uintptr(ptr) + offset) +} + +func Index(args *unsafe.Pointer, i uintptr) unsafe.Pointer { + return (*(*unsafe.Pointer)(add(unsafe.Pointer(args), i*unsafe.Sizeof(0)))) +} diff --git a/runtime/internal/clite/math/cmplx/complex.go b/runtime/internal/clite/math/cmplx/complex.go new file mode 100644 index 00000000..bae82a19 --- /dev/null +++ b/runtime/internal/clite/math/cmplx/complex.go @@ -0,0 +1,151 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 cmplx + +import ( + _ "unsafe" +) + +const ( + LLGoPackage = "decl" +) + +// ----------------------------------------------------------------------------- + +//go:linkname Abs C.cabs +func Abs(z complex128) float64 + +//go:linkname Acos C.cacos +func Acos(z complex128) complex128 + +//go:linkname Acosh C.cacosh +func Acosh(z complex128) complex128 + +//go:linkname Asin C.casin +func Asin(z complex128) complex128 + +//go:linkname Asinh C.casinh +func Asinh(z complex128) complex128 + +//go:linkname Atan C.catan +func Atan(z complex128) complex128 + +//go:linkname Atanh C.catanh +func Atanh(z complex128) complex128 + +//go:linkname Cos C.ccos +func Cos(z complex128) complex128 + +//go:linkname Cosh C.ccosh +func Cosh(z complex128) complex128 + +//go:linkname Exp C.cexp +func Exp(z complex128) complex128 + +//go:linkname Log C.clog +func Log(z complex128) complex128 + +//go:linkname Log10 C.clog10 +func Log10(z complex128) complex128 + +//go:linkname Arg C.carg +func Arg(z complex128) float64 + +//go:linkname Phase C.carg +func Phase(z complex128) float64 + +//go:linkname Pow C.cpow +func Pow(x, y complex128) complex128 + +//go:linkname Sin C.csin +func Sin(z complex128) complex128 + +//go:linkname Sinh C.csinh +func Sinh(z complex128) complex128 + +//go:linkname Sqrt C.csqrt +func Sqrt(z complex128) complex128 + +//go:linkname Tan C.ctan +func Tan(z complex128) complex128 + +//go:linkname Tanh C.ctanh +func Tanh(z complex128) complex128 + +// ----------------------------------------------------------------------------- + +//go:linkname Absf C.cabsf +func Absf(z complex64) float32 + +//go:linkname Acosf C.cacosf +func Acosf(z complex64) complex64 + +//go:linkname Acoshf C.cacoshf +func Acoshf(z complex64) complex64 + +//go:linkname Asinf C.casinf +func Asinf(z complex64) complex64 + +//go:linkname Asinhf C.casinhf +func Asinhf(z complex64) complex64 + +//go:linkname Atanf C.catanf +func Atanf(z complex64) complex64 + +//go:linkname Atanhf C.catanhf +func Atanhf(z complex64) complex64 + +//go:linkname Cosf C.ccosf +func Cosf(z complex64) complex64 + +//go:linkname Coshf C.ccoshf +func Coshf(z complex64) complex64 + +//go:linkname Expf C.cexpf +func Expf(z complex64) complex64 + +//go:linkname Logf C.clogf +func Logf(z complex64) complex64 + +//go:linkname Log10f C.clog10f +func Log10f(z complex64) complex64 + +//go:linkname Argf C.cargf +func Argf(z complex64) float32 + +//go:linkname Phasef C.cargf +func Phasef(z complex64) float32 + +//go:linkname Powf C.cpowf +func Powf(x, y complex64) complex64 + +//go:linkname Sinf C.csinf +func Sinf(z complex64) complex64 + +//go:linkname Sinhf C.csinhf +func Sinhf(z complex64) complex64 + +//go:linkname Sqrtf C.csqrtf +func Sqrtf(z complex64) complex64 + +//go:linkname Tanf C.ctanf +func Tanf(z complex64) complex64 + +//go:linkname Tanhf C.ctanhf +func Tanhf(z complex64) complex64 + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/math/math.go b/runtime/internal/clite/math/math.go new file mode 100644 index 00000000..dfc70282 --- /dev/null +++ b/runtime/internal/clite/math/math.go @@ -0,0 +1,333 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 math + +import ( + _ "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +const ( + LLGoPackage = "decl" +) + +// ----------------------------------------------------------------------------- + +//go:linkname Acos C.acos +func Acos(x float64) float64 + +//go:linkname Acosh C.acosh +func Acosh(x float64) float64 + +//go:linkname Asin C.asin +func Asin(x float64) float64 + +//go:linkname Asinh C.asinh +func Asinh(x float64) float64 + +//go:linkname Atan C.atan +func Atan(x float64) float64 + +//go:linkname Atan2 C.atan2 +func Atan2(y, x float64) float64 + +//go:linkname Atanh C.atanh +func Atanh(x float64) float64 + +//go:linkname Cbrt C.cbrt +func Cbrt(x float64) float64 + +//go:linkname Ceil C.ceil +func Ceil(x float64) float64 + +//go:linkname Cos C.cos +func Cos(x float64) float64 + +//go:linkname Cosh C.cosh +func Cosh(x float64) float64 + +//go:linkname Copysign C.copysign +func Copysign(x, y float64) float64 + +//go:linkname Erf C.erf +func Erf(x float64) float64 + +//go:linkname Erfc C.erfc +func Erfc(x float64) float64 + +//go:linkname Exp C.exp +func Exp(x float64) float64 + +//go:linkname Exp2 C.exp2 +func Exp2(x float64) float64 + +//go:linkname Expm1 C.expm1 +func Expm1(x float64) float64 + +//go:linkname Fdim C.fdim +func Fdim(x, y float64) float64 + +//go:linkname Floor C.floor +func Floor(x float64) float64 + +//go:linkname Fma C.fma +func Fma(x, y, z float64) float64 + +//go:linkname Fmax C.fmax +func Fmax(x, y float64) float64 + +//go:linkname Fmin C.fmin +func Fmin(x, y float64) float64 + +//go:linkname Fmod C.fmod +func Fmod(x, y float64) float64 + +//go:linkname Frexp C.frexp +func Frexp(x float64, exp *c.Int) float64 + +//go:linkname Gamma C.gamma +func Gamma(x float64) float64 + +//go:linkname Hypot C.hypot +func Hypot(x, y float64) float64 + +//go:linkname Ilogb C.ilogb +func Ilogb(x float64) c.Int + +//go:linkname J0 C.j0 +func J0(x float64) float64 + +//go:linkname J1 C.j1 +func J1(x float64) float64 + +//go:linkname Jn C.jn +func Jn(n c.Int, x float64) float64 + +//go:linkname Ldexp C.ldexp +func Ldexp(x float64, exp c.Int) float64 + +//go:linkname Lgamma C.lgamma +func Lgamma(x float64) float64 + +//go:linkname Log C.log +func Log(x float64) float64 + +//go:linkname Log10 C.log10 +func Log10(x float64) float64 + +//go:linkname Log1p C.log1p +func Log1p(x float64) float64 + +//go:linkname Log2 C.log2 +func Log2(x float64) float64 + +//go:linkname Logb C.logb +func Logb(x float64) float64 + +//go:linkname Modf C.modf +func Modf(x float64, ipart *float64) float64 + +//go:linkname Nan C.nan +func Nan(tag *c.Char) float64 + +//go:linkname Nextafter C.nextafter +func Nextafter(x, y float64) float64 + +//go:linkname Pow C.pow +func Pow(x, y float64) float64 + +//go:linkname Remainder C.remainder +func Remainder(x, y float64) float64 + +//go:linkname Round C.round +func Round(x float64) float64 + +//go:linkname Sin C.sin +func Sin(x float64) float64 + +//go:linkname Sinh C.sinh +func Sinh(x float64) float64 + +//go:linkname Sqrt C.sqrt +func Sqrt(x float64) float64 + +//go:linkname Tan C.tan +func Tan(x float64) float64 + +//go:linkname Tanh C.tanh +func Tanh(x float64) float64 + +//go:linkname Tgamma C.tgamma +func Tgamma(x float64) float64 + +//go:linkname Trunc C.trunc +func Trunc(x float64) float64 + +// ----------------------------------------------------------------------------- + +//go:linkname Acosf C.acosf +func Acosf(x float32) float32 + +//go:linkname Acoshf C.acoshf +func Acoshf(x float32) float32 + +//go:linkname Asinf C.asinf +func Asinf(x float32) float32 + +//go:linkname Asinhf C.asinhf +func Asinhf(x float32) float32 + +//go:linkname Atanf C.atanf +func Atanf(x float32) float32 + +//go:linkname Atan2f C.atan2f +func Atan2f(y, x float32) float32 + +//go:linkname Atanhf C.atanhf +func Atanhf(x float32) float32 + +//go:linkname Cbrtf C.cbrtf +func Cbrtf(x float32) float32 + +//go:linkname Ceilf C.ceilf +func Ceilf(x float32) float32 + +//go:linkname Cosf C.cosf +func Cosf(x float32) float32 + +//go:linkname Coshf C.coshf +func Coshf(x float32) float32 + +//go:linkname Copysignf C.copysignf +func Copysignf(x, y float32) float32 + +//go:linkname Erff C.erff +func Erff(x float32) float32 + +//go:linkname Erfcf C.erfcf +func Erfcf(x float32) float32 + +//go:linkname Expf C.expf +func Expf(x float32) float32 + +//go:linkname Exp2f C.exp2f +func Exp2f(x float32) float32 + +//go:linkname Expm1f C.expm1f +func Expm1f(x float32) float32 + +//go:linkname Fdimf C.fdimf +func Fdimf(x, y float32) float32 + +//go:linkname Floorf C.floorf +func Floorf(x float32) float32 + +//go:linkname Fmaf C.fmaf +func Fmaf(x, y, z float32) float32 + +//go:linkname Fmaxf C.fmaxf +func Fmaxf(x, y float32) float32 + +//go:linkname Fminf C.fminf +func Fminf(x, y float32) float32 + +//go:linkname Fmodf C.fmodf +func Fmodf(x, y float32) float32 + +//go:linkname Frexpf C.frexpf +func Frexpf(x float32, exp *c.Int) float32 + +//go:linkname Gammaf C.gammaf +func Gammaf(x float32) float32 + +//go:linkname Hypotf C.hypotf +func Hypotf(x, y float32) float32 + +//go:linkname Ilogbf C.ilogbf +func Ilogbf(x float32) c.Int + +//go:linkname J0f C.j0f +func J0f(x float32) float32 + +//go:linkname J1f C.j1f +func J1f(x float32) float32 + +//go:linkname Jnf C.jnf +func Jnf(n c.Int, x float32) float32 + +//go:linkname Ldexpf C.ldexpf +func Ldexpf(x float32, exp c.Int) float32 + +//go:linkname Lgammaf C.lgammaf +func Lgammaf(x float32) float32 + +//go:linkname Logf C.logf +func Logf(x float32) float32 + +//go:linkname Log10f C.log10f +func Log10f(x float32) float32 + +//go:linkname Log1pf C.log1pf +func Log1pf(x float32) float32 + +//go:linkname Log2f C.log2f +func Log2f(x float32) float32 + +//go:linkname Logbf C.logbf +func Logbf(x float32) float32 + +//go:linkname Modff C.modff +func Modff(x float32, ipart *float32) float32 + +//go:linkname Nanf C.nanf +func Nanf(tag *c.Char) float32 + +//go:linkname Nextafterf C.nextafterf +func Nextafterf(x, y float32) float32 + +//go:linkname Powf C.powf +func Powf(x, y float32) float32 + +//go:linkname Remainderf C.remainderf +func Remainderf(x, y float32) float32 + +//go:linkname Roundf C.roundf +func Roundf(x float32) float32 + +//go:linkname Sinf C.sinf +func Sinf(x float32) float32 + +//go:linkname Sinhf C.sinhf +func Sinhf(x float32) float32 + +//go:linkname Sqrtf C.sqrtf +func Sqrtf(x float32) float32 + +//go:linkname Tanf C.tanf +func Tanf(x float32) float32 + +//go:linkname Tanhf C.tanhf +func Tanhf(x float32) float32 + +//go:linkname Tgammaf C.tgammaf +func Tgammaf(x float32) float32 + +//go:linkname Truncf C.truncf +func Truncf(x float32) float32 + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/math/rand/rand.go b/runtime/internal/clite/math/rand/rand.go new file mode 100644 index 00000000..ca9dc18e --- /dev/null +++ b/runtime/internal/clite/math/rand/rand.go @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 rand + +import ( + _ "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +const ( + LLGoPackage = "decl" +) + +// ----------------------------------------------------------------------------- + +//go:linkname Rand C.rand +func Rand() c.Int + +//go:linkname RandR C.rand_r +func RandR(*c.Uint) c.Int + +//go:linkname Srand C.srand +func Srand(c.Uint) + +//go:linkname Sranddev C.sranddev +func Sranddev() + +// ----------------------------------------------------------------------------- + +//go:linkname Random C.random +func Random() c.Long + +//go:linkname Srandom C.srandom +func Srandom(c.Uint) + +//go:linkname Srandomdev C.srandomdev +func Srandomdev() + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/openssl/_wrap/openssl.c b/runtime/internal/clite/openssl/_wrap/openssl.c new file mode 100644 index 00000000..7cc5bbdb --- /dev/null +++ b/runtime/internal/clite/openssl/_wrap/openssl.c @@ -0,0 +1,5 @@ +#include + +void opensslFree(void *ptr) { + OPENSSL_free(ptr); +} diff --git a/runtime/internal/clite/openssl/bio.go b/runtime/internal/clite/openssl/bio.go new file mode 100644 index 00000000..aa1aa7a1 --- /dev/null +++ b/runtime/internal/clite/openssl/bio.go @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 openssl + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +// ----------------------------------------------------------------------------- + +type BIO struct { + Unused [0]byte +} + +// BIO *BIO_new_mem_buf(const void *buf, int len); +// +//go:linkname BIONewMemBuf C.BIO_new_mem_buf +func BIONewMemBuf(buf unsafe.Pointer, len c.Int) *BIO + +// int BIO_free(BIO *a); +// +// llgo:link (*BIO).Free C.BIO_free +func (*BIO) Free() c.Int { return 0 } + +// int BIO_up_ref(BIO *a); +// +// llgo:link (*BIO).UpRef C.BIO_up_ref +func (*BIO) UpRef() c.Int { return 0 } + +// int BIO_read_ex(BIO *b, void *data, size_t dlen, size_t *readbytes); +// +// llgo:link (*BIO).ReadEx C.BIO_read_ex +func (*BIO) ReadEx(data unsafe.Pointer, dlen uintptr, readbytes *uintptr) c.Int { return 0 } + +// int BIO_write(BIO *b, const void *data, int dlen); +// +// llgo:link (*BIO).Write C.BIO_write +func (*BIO) Write(data unsafe.Pointer, dlen c.Int) c.Int { return 0 } + +// int BIO_write_ex(BIO *b, const void *data, size_t dlen, size_t *written); +// +// llgo:link (*BIO).WriteEx C.BIO_write_ex +func (*BIO) WriteEx(data unsafe.Pointer, dlen uintptr, written *uintptr) c.Int { return 0 } + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/openssl/bn.go b/runtime/internal/clite/openssl/bn.go new file mode 100644 index 00000000..aa1e402e --- /dev/null +++ b/runtime/internal/clite/openssl/bn.go @@ -0,0 +1,409 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 openssl + +import ( + _ "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +type BN_ULONG = uint64 + +// ----------------------------------------------------------------------------- + +type BN_CTX struct { + Unused [0]byte +} + +// BN_CTX *BN_CTX_new(void); +// +//go:linkname BN_CTXNew C.BN_CTX_new +func BN_CTXNew() *BN_CTX + +// BN_CTX *BN_CTX_secure_new(void); +// +//go:linkname BN_CTXSecureNew C.BN_CTX_secure_new +func BN_CTXSecureNew() *BN_CTX + +// BN_CTX *BN_CTX_new_ex(OSSL_LIB_CTX *ctx); +// BN_CTX *BN_CTX_secure_new_ex(OSSL_LIB_CTX *ctx); + +// void BN_CTX_free(BN_CTX *c); +// +// llgo:link (*BN_CTX).Free C.BN_CTX_free +func (*BN_CTX) Free() {} + +// void BN_CTX_start(BN_CTX *ctx); +// +// llgo:link (*BN_CTX).Start C.BN_CTX_start +func (*BN_CTX) Start() {} + +// BIGNUM *BN_CTX_get(BN_CTX *ctx); +// +// llgo:link (*BN_CTX).Get C.BN_CTX_get +func (*BN_CTX) Get() *BIGNUM { return nil } + +// void BN_CTX_end(BN_CTX *ctx); +// +// llgo:link (*BN_CTX).End C.BN_CTX_end +func (*BN_CTX) End() {} + +// ----------------------------------------------------------------------------- + +type BIGNUM struct { + Unused [0]byte +} + +// BIGNUM *BN_new(void); +// +//go:linkname BNNew C.BN_new +func BNNew() *BIGNUM + +// BIGNUM *BN_secure_new(void); +// +//go:linkname BNSecureNew C.BN_secure_new +func BNSecureNew() *BIGNUM + +// void BN_free(BIGNUM *a); +// +// llgo:link (*BIGNUM).Free C.BN_free +func (*BIGNUM) Free() {} + +// void BN_clear_free(BIGNUM *a); +// +// llgo:link (*BIGNUM).ClearFree C.BN_clear_free +func (*BIGNUM) ClearFree() {} + +// void BN_clear(BIGNUM *a); +// +// llgo:link (*BIGNUM).Clear C.BN_clear +func (*BIGNUM) Clear() {} + +// BIGNUM *BN_dup(const BIGNUM *a); +// +// llgo:link (*BIGNUM).Dup C.BN_dup +func (*BIGNUM) Dup() *BIGNUM { return nil } + +// BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); +// +// llgo:link (*BIGNUM).Copy C.BN_copy +func (*BIGNUM) Copy(b *BIGNUM) *BIGNUM { return nil } + +// void BN_swap(BIGNUM *a, BIGNUM *b); +// +// llgo:link (*BIGNUM).Swap C.BN_swap +func (*BIGNUM) Swap(b *BIGNUM) {} + +// int BN_is_zero(const BIGNUM *a); +// +// llgo:link (*BIGNUM).IsZero C.BN_is_zero +func (*BIGNUM) IsZero() c.Int { return 0 } + +// void BN_zero_ex(BIGNUM *a); +// +// llgo:link (*BIGNUM).SetZero C.BN_zero_ex +func (*BIGNUM) SetZero() {} + +// int BN_is_one(const BIGNUM *a); +// +// llgo:link (*BIGNUM).IsOne C.BN_is_one +func (*BIGNUM) IsOne() c.Int { return 0 } + +// int BN_is_odd(const BIGNUM *a); +// +// llgo:link (*BIGNUM).IsOdd C.BN_is_odd +func (*BIGNUM) IsOdd() c.Int { return 0 } + +// int BN_abs_is_word(const BIGNUM *a, const BN_ULONG w); +// +// llgo:link (*BIGNUM).AbsIsWord C.BN_abs_is_word +func (*BIGNUM) AbsIsWord(w BN_ULONG) c.Int { return 0 } + +// int BN_is_word(const BIGNUM *a, const BN_ULONG w); +// +// llgo:link (*BIGNUM).IsWord C.BN_is_word +func (*BIGNUM) IsWord(w BN_ULONG) c.Int { return 0 } + +// int BN_set_word(BIGNUM *a, BN_ULONG w); +// +// llgo:link (*BIGNUM).SetWord C.BN_set_word +func (*BIGNUM) SetWord(w BN_ULONG) c.Int { return 0 } + +// BN_ULONG BN_get_word(const BIGNUM *a); +// +// llgo:link (*BIGNUM).GetWord C.BN_get_word +func (*BIGNUM) GetWord() BN_ULONG { return 0 } + +// BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w); +// +// llgo:link (*BIGNUM).ModWord C.BN_mod_word +func (*BIGNUM) ModWord(w BN_ULONG) BN_ULONG { return 0 } + +// BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w); +// +// llgo:link (*BIGNUM).DivWord C.BN_div_word +func (*BIGNUM) DivWord(w BN_ULONG) BN_ULONG { return 0 } + +// int BN_mul_word(BIGNUM *a, BN_ULONG w); +// +// llgo:link (*BIGNUM).MulWord C.BN_mul_word +func (*BIGNUM) MulWord(w BN_ULONG) c.Int { return 0 } + +// int BN_add_word(BIGNUM *a, BN_ULONG w); +// +// llgo:link (*BIGNUM).AddWord C.BN_add_word +func (*BIGNUM) AddWord(w BN_ULONG) c.Int { return 0 } + +// int BN_sub_word(BIGNUM *a, BN_ULONG w); +// +// llgo:link (*BIGNUM).SubWord C.BN_sub_word +func (*BIGNUM) SubWord(w BN_ULONG) c.Int { return 0 } + +// char *BN_bn2hex(const BIGNUM *a); +// +// llgo:link (*BIGNUM).Bn2hex C.BN_bn2hex +func (*BIGNUM) Bn2hex() *c.Char { return nil } + +// char *BN_bn2dec(const BIGNUM *a); +// +// llgo:link (*BIGNUM).Bn2dec C.BN_bn2dec +func (*BIGNUM) Bn2dec() *c.Char { return nil } + +// llgo:link (*BIGNUM).CStr C.BN_bn2dec +func (*BIGNUM) CStr() *c.Char { return nil } + +// int BN_hex2bn(BIGNUM **a, const char *str); +// +//go:linkname BNHex2bn C.BN_hex2bn +func BNHex2bn(a **BIGNUM, str *c.Char) c.Int + +// int BN_dec2bn(BIGNUM **a, const char *str); +// +//go:linkname BNDec2bn C.BN_dec2bn +func BNDec2bn(a **BIGNUM, str *c.Char) c.Int + +// int BN_asc2bn(BIGNUM **a, const char *str); +// +//go:linkname BNAsc2bn C.BN_asc2bn +func BNAsc2bn(a **BIGNUM, str *c.Char) c.Int + +// BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); +// +//go:linkname BNBin2bn C.BN_bin2bn +func BNBin2bn(s *byte, len c.Int, ret *BIGNUM) *BIGNUM + +// BIGNUM *BN_signed_bin2bn(const unsigned char *s, int len, BIGNUM *ret); +// +//go:linkname BNSignedBin2bn C.BN_signed_bin2bn +func BNSignedBin2bn(s *byte, len c.Int, ret *BIGNUM) *BIGNUM + +// int BN_bn2bin(const BIGNUM *a, unsigned char *to); +// +// llgo:link (*BIGNUM).Bn2bin C.BN_bn2bin +func (bn *BIGNUM) Bn2bin(to *byte) c.Int { return 0 } + +// int BN_bn2binpad(const BIGNUM *a, unsigned char *to, int tolen); +// +// llgo:link (*BIGNUM).Bn2binpad C.BN_bn2binpad +func (bn *BIGNUM) Bn2binpad(to *byte, tolen c.Int) c.Int { return 0 } + +// int BN_signed_bn2bin(const BIGNUM *a, unsigned char *to, int tolen); +// +// llgo:link (*BIGNUM).SignedBn2bin C.BN_signed_bn2bin +func (bn *BIGNUM) SignedBn2bin(to *byte, tolen c.Int) c.Int { return 0 } + +// BIGNUM *BN_lebin2bn(const unsigned char *s, int len, BIGNUM *ret); +// +//go:linkname BNLebin2bn C.BN_lebin2bn +func BNLebin2bn(s *byte, len c.Int, ret *BIGNUM) *BIGNUM + +// BIGNUM *BN_signed_lebin2bn(const unsigned char *s, int len, BIGNUM *ret); +// +//go:linkname BNSignedLebin2bn C.BN_signed_lebin2bn +func BNSignedLebin2bn(s *byte, len c.Int, ret *BIGNUM) *BIGNUM + +// int BN_bn2lebinpad(const BIGNUM *a, unsigned char *to, int tolen); +// +// llgo:link (*BIGNUM).Bn2lebinpad C.BN_bn2lebinpad +func (bn *BIGNUM) Bn2lebinpad(to *byte, tolen c.Int) c.Int { return 0 } + +// int BN_signed_bn2lebin(const BIGNUM *a, unsigned char *to, int tolen); +// +// llgo:link (*BIGNUM).SignedBn2lebin C.BN_signed_bn2lebin +func (bn *BIGNUM) SignedBn2lebin(to *byte, tolen c.Int) c.Int { return 0 } + +// BIGNUM *BN_native2bn(const unsigned char *s, int len, BIGNUM *ret); +// +//go:linkname BNNative2bn C.BN_native2bn +func BNNative2bn(s *byte, len c.Int, ret *BIGNUM) *BIGNUM + +// BIGNUM *BN_signed_native2bn(const unsigned char *s, int len, BIGNUM *ret); +// +//go:linkname BNSignedNative2bn C.BN_signed_native2bn +func BNSignedNative2bn(s *byte, len c.Int, ret *BIGNUM) *BIGNUM + +// int BN_bn2nativepad(const BIGNUM *a, unsigned char *to, int tolen); +// +// llgo:link (*BIGNUM).Bn2nativepad C.BN_bn2nativepad +func (bn *BIGNUM) Bn2nativepad(to *byte, tolen c.Int) c.Int { return 0 } + +// int BN_signed_bn2native(const BIGNUM *a, unsigned char *to, int tolen); +// +// llgo:link (*BIGNUM).SignedBn2native C.BN_signed_bn2native +func (bn *BIGNUM) SignedBn2native(to *byte, tolen c.Int) c.Int { return 0 } + +// BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); +// +//go:linkname BNMpi2bn C.BN_mpi2bn +func BNMpi2bn(s *byte, len c.Int, ret *BIGNUM) *BIGNUM + +// int BN_bn2mpi(const BIGNUM *a, unsigned char *to); +// +// llgo:link (*BIGNUM).Bn2mpi C.BN_bn2mpi +func (bn *BIGNUM) Bn2mpi(to *byte) c.Int { return 0 } + +// int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +// +// llgo:link (*BIGNUM).Sub C.BN_sub +func (*BIGNUM) Sub(a, b *BIGNUM) c.Int { return 0 } + +// int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +// +// llgo:link (*BIGNUM).Add C.BN_add +func (*BIGNUM) Add(a, b *BIGNUM) c.Int { return 0 } + +// int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +// +// llgo:link (*BIGNUM).Usub C.BN_usub +func (*BIGNUM) Usub(a, b *BIGNUM) c.Int { return 0 } + +// int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); +// +// llgo:link (*BIGNUM).Uadd C.BN_uadd +func (*BIGNUM) Uadd(a, b *BIGNUM) c.Int { return 0 } + +// int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); +// +// llgo:link (*BIGNUM).Mul C.BN_mul +func (*BIGNUM) Mul(r, a, b *BIGNUM, ctx *BN_CTX) c.Int { return 0 } + +// int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); +// +// llgo:link (*BIGNUM).Sqr C.BN_sqr +func (*BIGNUM) Sqr(r, a *BIGNUM, ctx *BN_CTX) c.Int { return 0 } + +/** BN_set_negative sets sign of a BIGNUM + * \param b pointer to the BIGNUM object + * \param n 0 if the BIGNUM b should be positive and a value != 0 otherwise + */ +// void BN_set_negative(BIGNUM *b, int n); +// +// llgo:link (*BIGNUM).SetNegative C.BN_set_negative +func (*BIGNUM) SetNegative(n c.Int) {} + +/** BN_is_negative returns 1 if the BIGNUM is negative + * \param b pointer to the BIGNUM object + * \return 1 if a < 0 and 0 otherwise + */ +// int BN_is_negative(const BIGNUM *b); +// +// llgo:link (*BIGNUM).IsNegative C.BN_is_negative +func (*BIGNUM) IsNegative() c.Int { return 0 } + +// int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); +// +// llgo:link (*BIGNUM).Div C.BN_div +func (*BIGNUM) Div(rem, m, d *BIGNUM, ctx *BN_CTX) c.Int { return 0 } + +// int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); +// +// llgo:link (*BIGNUM).Nnmod C.BN_nnmod +func (*BIGNUM) Nnmod(r, m, d *BIGNUM, ctx *BN_CTX) c.Int { return 0 } + +// int BN_cmp(const BIGNUM *a, const BIGNUM *b); +// +// llgo:link (*BIGNUM).Cmp C.BN_cmp +func (*BIGNUM) Cmp(b *BIGNUM) c.Int { return 0 } + +// int BN_ucmp(const BIGNUM *a, const BIGNUM *b); +// +// llgo:link (*BIGNUM).Ucmp C.BN_ucmp +func (*BIGNUM) Ucmp(b *BIGNUM) c.Int { return 0 } + +// int BN_is_bit_set(const BIGNUM *a, int n); +// +// llgo:link (*BIGNUM).IsBitSet C.BN_is_bit_set +func (*BIGNUM) IsBitSet(n c.Int) c.Int { return 0 } + +// int BN_set_bit(BIGNUM *a, int n); +// +// llgo:link (*BIGNUM).SetBit C.BN_set_bit +func (*BIGNUM) SetBit(n c.Int) c.Int { return 0 } + +// int BN_clear_bit(BIGNUM *a, int n); +// +// llgo:link (*BIGNUM).ClearBit C.BN_clear_bit +func (*BIGNUM) ClearBit(n c.Int) c.Int { return 0 } + +// int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); +// +// llgo:link (*BIGNUM).Lshift C.BN_lshift +func (*BIGNUM) Lshift(a *BIGNUM, n c.Int) c.Int { return 0 } + +// int BN_lshift1(BIGNUM *r, const BIGNUM *a); +// +// llgo:link (*BIGNUM).Lshift1 C.BN_lshift1 +func (*BIGNUM) Lshift1(a *BIGNUM) c.Int { return 0 } + +// int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); +// +// llgo:link (*BIGNUM).Rshift C.BN_rshift +func (*BIGNUM) Rshift(a *BIGNUM, n c.Int) c.Int { return 0 } + +// int BN_rshift1(BIGNUM *r, const BIGNUM *a); +// +// llgo:link (*BIGNUM).Rshift1 C.BN_rshift1 +func (*BIGNUM) Rshift1(a *BIGNUM) c.Int { return 0 } + +// int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); +// +// llgo:link (*BIGNUM).Exp C.BN_exp +func (*BIGNUM) Exp(a, p *BIGNUM, ctx *BN_CTX) c.Int { return 0 } + +// int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, const BIGNUM *m, BN_CTX *ctx); +// +// llgo:link (*BIGNUM).ModExp C.BN_mod_exp +func (*BIGNUM) ModExp(a, p, m *BIGNUM, ctx *BN_CTX) c.Int { return 0 } + +// int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); +// +// llgo:link (*BIGNUM).Gcd C.BN_gcd +func (*BIGNUM) Gcd(a, b *BIGNUM, ctx *BN_CTX) c.Int { return 0 } + +// int BN_are_coprime(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); +// +// llgo:link (*BIGNUM).AreCoprime C.BN_are_coprime +func (*BIGNUM) AreCoprime(b *BIGNUM, ctx *BN_CTX) c.Int { return 0 } + +// ----------------------------------------------------------------------------- + +type BN_GENCB struct { + Unused [0]byte +} + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/openssl/err.go b/runtime/internal/clite/openssl/err.go new file mode 100644 index 00000000..8c58492f --- /dev/null +++ b/runtime/internal/clite/openssl/err.go @@ -0,0 +1,156 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 openssl + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +// ----------------------------------------------------------------------------- + +/*- + * The error code packs differently depending on if it records a system + * error or an OpenSSL error. + * + * A system error packs like this (we follow POSIX and only allow positive + * numbers that fit in an |int|): + * + * +-+-------------------------------------------------------------+ + * |1| system error number | + * +-+-------------------------------------------------------------+ + * + * An OpenSSL error packs like this: + * + * <---------------------------- 32 bits --------------------------> + * <--- 8 bits ---><------------------ 23 bits -----------------> + * +-+---------------+---------------------------------------------+ + * |0| library | reason | + * +-+---------------+---------------------------------------------+ + * + * A few of the reason bits are reserved as flags with special meaning: + * + * <5 bits-<>--------- 19 bits -----------------> + * +-------+-+-----------------------------------+ + * | rflags| | reason | + * +-------+-+-----------------------------------+ + * ^ + * | + * ERR_RFLAG_FATAL = ERR_R_FATAL + * + * The reason flags are part of the overall reason code for practical + * reasons, as they provide an easy way to place different types of + * reason codes in different numeric ranges. + * + * The currently known reason flags are: + * + * ERR_RFLAG_FATAL Flags that the reason code is considered fatal. + * For backward compatibility reasons, this flag + * is also the code for ERR_R_FATAL (that reason + * code served the dual purpose of flag and reason + * code in one in pre-3.0 OpenSSL). + * ERR_RFLAG_COMMON Flags that the reason code is common to all + * libraries. All ERR_R_ macros must use this flag, + * and no other _R_ macro is allowed to use it. + */ +type Errno c.Ulong + +// ERR_get_error returns the earliest error code from the thread's error queue and +// removes the entry. This function can be called repeatedly until there are no more +// error codes to return. +// +// unsigned long ERR_get_error(void); +// +//go:linkname ERRGetError C.ERR_get_error +func ERRGetError() Errno + +// ERR_get_error_all() is the same as ERR_get_error(), but on success it additionally +// stores the filename, line number and function where the error occurred in *file, +// *line and *func, and also extra text and flags in *data, *flags. If any of those +// parameters are NULL, it will not be changed. +// +// unsigned long ERR_get_error_all( +// const char **file, int *line, const char **func, const char **data, int *flags); +// +//go:linkname ERRGetErrorAll C.ERR_get_error_all +func ERRGetErrorAll( + file **c.Char, line *c.Int, function **c.Char, data **c.Char, flags *c.Int) Errno + +// unsigned long ERR_peek_error(void); +// +//go:linkname ERRPeekError C.ERR_peek_error +func ERRPeekError() Errno + +// unsigned long ERR_peek_error_all( +// const char **file, int *line, const char **func, const char **data, int *flags); +// +//go:linkname ERRPeekErrorAll C.ERR_peek_error_all +func ERRPeekErrorAll( + file **c.Char, line *c.Int, function **c.Char, data **c.Char, flags *c.Int) Errno + +// unsigned long ERR_peek_last_error(void); +// +//go:linkname ERRPeekLastError C.ERR_peek_last_error +func ERRPeekLastError() Errno + +// unsigned long ERR_peek_last_error_all( +// const char **file, int *line, const char **func, const char **data, int *flags); +// +//go:linkname ERRPeekLastErrorAll C.ERR_peek_last_error_all +func ERRPeekLastErrorAll( + file **c.Char, line *c.Int, function **c.Char, data **c.Char, flags *c.Int) Errno + +// void ERR_clear_error(void); +// +//go:linkname ERRClearError C.ERR_clear_error +func ERRClearError() + +// ERR_error_string() generates a human-readable string representing the error code e, +// and places it at buf. buf must be at least 256 bytes long. +// +// char *ERR_error_string(unsigned long e, char *buf); +// +//go:linkname ERRErrorString C.ERR_error_string +func ERRErrorString(e Errno, buf *c.Char) *c.Char + +// ERR_lib_error_string() and ERR_reason_error_string() return the library name and +// reason string respectively. +// +// const char *ERR_lib_error_string(unsigned long e); +// +//go:linkname ERRLibErrorString C.ERR_lib_error_string +func ERRLibErrorString(e Errno) *c.Char + +// const char *ERR_reason_error_string(unsigned long e); +// +//go:linkname ERRReasonErrorString C.ERR_reason_error_string +func ERRReasonErrorString(e Errno) *c.Char + +// void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u), void *u); +// +// [pid]:error:[error code]:[library name]:[function name]:[reason string]:[filename]:[line]:[optional text message] +// +//go:linkname ERRPrintErrorsCb C.ERR_print_errors_cb +func ERRPrintErrorsCb(cb func(str *c.Char, len uintptr, u unsafe.Pointer) c.Int, u unsafe.Pointer) + +// void ERR_print_errors_fp(FILE *fp); +// +//go:linkname ERRPrintErrorsFp C.ERR_print_errors_fp +func ERRPrintErrorsFp(fp c.FilePtr) + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/openssl/hmac.go b/runtime/internal/clite/openssl/hmac.go new file mode 100644 index 00000000..afdbf8b0 --- /dev/null +++ b/runtime/internal/clite/openssl/hmac.go @@ -0,0 +1,133 @@ +package openssl + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +const ( + EVP_MAX_MD_SIZE = 64 /* longest known is SHA512 */ +) + +// ----------------------------------------------------------------------------- + +type EVP_MD struct { + Unused [0]byte +} + +// const EVP_MD *EVP_sha1(void) +// +//go:linkname EVP_sha1 C.EVP_sha1 +func EVP_sha1() *EVP_MD + +// const EVP_MD *EVP_sha224(void) +// +//go:linkname EVP_sha224 C.EVP_sha224 +func EVP_sha224() *EVP_MD + +// func EVP_sha256() *EVP_MD +// +//go:linkname EVP_sha256 C.EVP_sha256 +func EVP_sha256() *EVP_MD + +// const EVP_MD *EVP_sha512_224(void) +// +//go:linkname EVP_sha512_224 C.EVP_sha512_224 +func EVP_sha512_224() *EVP_MD + +// const EVP_MD *EVP_sha512_256(void) +// +//go:linkname EVP_sha512_256 C.EVP_sha512_256 +func EVP_sha512_256() *EVP_MD + +// const EVP_MD *EVP_sha384(void) +// +//go:linkname EVP_sha384 C.EVP_sha384 +func EVP_sha384() *EVP_MD + +// const EVP_MD *EVP_sha512(void) +// +//go:linkname EVP_sha512 C.EVP_sha512 +func EVP_sha512() *EVP_MD + +// ----------------------------------------------------------------------------- + +type HMAC_CTX struct { + Unused [0]byte +} + +// OSSL_DEPRECATEDIN_3_0 HMAC_CTX *HMAC_CTX_new(void); +// +//go:linkname NewHMAC_CTX C.HMAC_CTX_new +func NewHMAC_CTX() *HMAC_CTX + +// OSSL_DEPRECATEDIN_3_0 void HMAC_CTX_free(HMAC_CTX *ctx); +// +// llgo:link (*HMAC_CTX).Free C.HMAC_CTX_free +func (ctx *HMAC_CTX) Free() {} + +// OSSL_DEPRECATEDIN_3_0 size_t HMAC_size(const HMAC_CTX *e); +// +// llgo:link (*HMAC_CTX).Size C.HMAC_size +func (ctx *HMAC_CTX) Size() uintptr { return 0 } + +// OSSL_DEPRECATEDIN_3_0 int HMAC_CTX_reset(HMAC_CTX *ctx); +// +// llgo:link (*HMAC_CTX).Reset C.HMAC_CTX_reset +func (ctx *HMAC_CTX) Reset() c.Int { return 0 } + +// OSSL_DEPRECATEDIN_1_1_0 __owur int HMAC_Init(HMAC_CTX *ctx, +// const void *key, int len, +// const EVP_MD *md); +// +// llgo:link (*HMAC_CTX).Init C.HMAC_Init +func (ctx *HMAC_CTX) Init(key unsafe.Pointer, len c.Int, md *EVP_MD) c.Int { return 0 } + +func (ctx *HMAC_CTX) InitBytes(key []byte, md *EVP_MD) c.Int { + return ctx.Init(unsafe.Pointer(unsafe.SliceData(key)), c.Int(len(key)), md) +} + +func (ctx *HMAC_CTX) InitString(key string, md *EVP_MD) c.Int { + return ctx.Init(unsafe.Pointer(unsafe.StringData(key)), c.Int(len(key)), md) +} + +// OSSL_DEPRECATEDIN_3_0 int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, +// const EVP_MD *md, ENGINE *impl); +// +// llgo:link (*HMAC_CTX).InitEx C.HMAC_Init_ex +func (ctx *HMAC_CTX) InitEx(key unsafe.Pointer, len c.Int, md *EVP_MD, impl unsafe.Pointer) c.Int { + return 0 +} + +// OSSL_DEPRECATEDIN_3_0 int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, +// size_t len); +// +// llgo:link (*HMAC_CTX).Update C.HMAC_Update +func (ctx *HMAC_CTX) Update(data unsafe.Pointer, len uintptr) c.Int { return 0 } + +func (ctx *HMAC_CTX) UpdateBytes(data []byte) c.Int { + return ctx.Update(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data))) +} + +func (ctx *HMAC_CTX) UpdateString(data string) c.Int { + return ctx.Update(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data))) +} + +// OSSL_DEPRECATEDIN_3_0 int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, +// unsigned int *len); +// +// llgo:link (*HMAC_CTX).Final C.HMAC_Final +func (ctx *HMAC_CTX) Final(md *byte, len *c.Uint) c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 __owur int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx); +// +// llgo:link (*HMAC_CTX).Copy C.HMAC_CTX_copy +func (ctx *HMAC_CTX) Copy(sctx *HMAC_CTX) c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags); +// +// llgo:link (*HMAC_CTX).SetFlags C.HMAC_CTX_set_flags +func (ctx *HMAC_CTX) SetFlags(flags c.Ulong) {} + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/openssl/md5.go b/runtime/internal/clite/openssl/md5.go new file mode 100644 index 00000000..cabedcdd --- /dev/null +++ b/runtime/internal/clite/openssl/md5.go @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 openssl + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +// ----------------------------------------------------------------------------- + +const ( + MD5_CBLOCK = 64 + MD5_LBLOCK = MD5_CBLOCK / 4 +) + +// ----------------------------------------------------------------------------- + +type MD5_LONG = c.Uint + +type MD5_CTX struct { + A, B, C, D MD5_LONG + Nl, Nh MD5_LONG + Data [MD5_LBLOCK]MD5_LONG + Num c.Uint +} + +// OSSL_DEPRECATEDIN_3_0 int MD5_Init(MD5_CTX *c); +// +// llgo:link (*MD5_CTX).Init C.MD5_Init +func (c *MD5_CTX) Init() c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 int MD5_Update(MD5_CTX *c, const void *data, size_t len); +// +// llgo:link (*MD5_CTX).Update C.MD5_Update +func (c *MD5_CTX) Update(data unsafe.Pointer, n uintptr) c.Int { return 0 } + +func (c *MD5_CTX) UpdateBytes(data []byte) c.Int { + return c.Update(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data))) +} + +func (c *MD5_CTX) UpdateString(data string) c.Int { + return c.Update(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data))) +} + +// OSSL_DEPRECATEDIN_3_0 int MD5_Final(unsigned char *md, MD5_CTX *c); +// +//go:linkname md5Final C.MD5_Final +func md5Final(md *byte, c *MD5_CTX) c.Int + +func (c *MD5_CTX) Final(md *byte) c.Int { + return md5Final(md, c) +} + +// OSSL_DEPRECATEDIN_3_0 unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md); +// +//go:linkname MD5 C.MD5 +func MD5(data unsafe.Pointer, n uintptr, md *byte) *byte + +func MD5Bytes(data []byte, md *byte) *byte { + return MD5(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data)), md) +} + +func MD5String(data string, md *byte) *byte { + return MD5(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data)), md) +} + +// OSSL_DEPRECATEDIN_3_0 void MD5_Transform(MD5_CTX *c, const unsigned char *b); + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/openssl/openssl.go b/runtime/internal/clite/openssl/openssl.go new file mode 100644 index 00000000..df237c85 --- /dev/null +++ b/runtime/internal/clite/openssl/openssl.go @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 openssl + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +// ----------------------------------------------------------------------------- + +const ( + LLGoFiles = "$(pkg-config --cflags openssl): _wrap/openssl.c" + LLGoPackage = "link: $(pkg-config --libs openssl); -lssl -lcrypto" +) + +//go:linkname Free C.opensslFree +func Free(ptr unsafe.Pointer) + +//go:linkname FreeCStr C.opensslFree +func FreeCStr(ptr *c.Char) + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/openssl/pem.go b/runtime/internal/clite/openssl/pem.go new file mode 100644 index 00000000..8ff24542 --- /dev/null +++ b/runtime/internal/clite/openssl/pem.go @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 openssl + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +// ----------------------------------------------------------------------------- + +// typedef int (*pem_password_cb)(char *buf, int size, int rwflag, void *userdata); +// +// llgo:type C +type PemPasswordCb func(buf *c.Char, size, rwflag c.Int, userdata unsafe.Pointer) c.Int + +// RSA *PEM_read_bio_RSAPrivateKey(BIO *bp, RSA **x, pem_password_cb *cb, void *u); +// +//go:linkname PEMReadBioRSAPrivateKey C.PEM_read_bio_RSAPrivateKey +func PEMReadBioRSAPrivateKey(bp *BIO, x **RSA, cb PemPasswordCb, u unsafe.Pointer) *RSA + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/openssl/rand.go b/runtime/internal/clite/openssl/rand.go new file mode 100644 index 00000000..03a60a6a --- /dev/null +++ b/runtime/internal/clite/openssl/rand.go @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 openssl + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +// ----------------------------------------------------------------------------- + +// int RAND_bytes(unsigned char *buf, int num); +// +//go:linkname RANDBufferWithLen C.RAND_bytes +func RANDBufferWithLen(buf *byte, num c.Int) c.Int + +func RANDBytes(buf []byte) c.Int { + return RANDBufferWithLen(unsafe.SliceData(buf), c.Int(len(buf))) +} + +// int RAND_priv_bytes(unsigned char *buf, int num); +// +//go:linkname RANDPrivBufferWithLen C.RAND_priv_bytes +func RANDPrivBufferWithLen(buf *byte, num c.Int) c.Int + +func RANDPrivBytes(buf []byte) c.Int { + return RANDPrivBufferWithLen(unsafe.SliceData(buf), c.Int(len(buf))) +} + +// void RAND_seed(const void *buf, int num); +// +//go:linkname RANDSeed C.RAND_seed +func RANDSeed(buf unsafe.Pointer, num c.Int) + +// void RAND_keep_random_devices_open(int keep); +// +//go:linkname RANDKeepRandomDevicesOpen C.RAND_keep_random_devices_open +func RANDKeepRandomDevicesOpen(keep c.Int) + +// int RAND_load_file(const char *file, long max_bytes); +// +//go:linkname RANDLoadFile C.RAND_load_file +func RANDLoadFile(file *c.Char, maxBytes c.Long) c.Int + +// int RAND_write_file(const char *file); +// +//go:linkname RANDWriteFile C.RAND_write_file +func RANDWriteFile(file *c.Char) c.Int + +// const char *RAND_file_name(char *file, size_t num); +// +//go:linkname RANDFileName C.RAND_file_name +func RANDFileName(file *c.Char, num uintptr) *c.Char + +// int RAND_status(void); +// +//go:linkname RANDStatus C.RAND_status +func RANDStatus() c.Int + +// int RAND_poll(void); +// +//go:linkname RANDPoll C.RAND_poll +func RANDPoll() c.Int + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/openssl/rsa.go b/runtime/internal/clite/openssl/rsa.go new file mode 100644 index 00000000..58065d57 --- /dev/null +++ b/runtime/internal/clite/openssl/rsa.go @@ -0,0 +1,305 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 openssl + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +// ----------------------------------------------------------------------------- + +type RSA_METHOD struct { + Unused [0]byte +} + +// OSSL_DEPRECATEDIN_3_0 RSA_METHOD *RSA_meth_new(const char *name, int flags); +// +//go:linkname RSAMethNew C.RSA_meth_new +func RSAMethNew(name *byte, flags c.Int) *RSA_METHOD + +// OSSL_DEPRECATEDIN_3_0 void RSA_meth_free(RSA_METHOD *meth); +// +// llgo:link (*RSA_METHOD).Free C.RSA_meth_free +func (*RSA_METHOD) Free() {} + +// OSSL_DEPRECATEDIN_3_0 +// int RSA_meth_set_init(RSA_METHOD *rsa, int (*init) (RSA *rsa)); +// +// llgo:link (*RSA_METHOD).SetInit C.RSA_meth_set_init +func (*RSA_METHOD) SetInit(init func(rsa *RSA) c.Int) c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 +// int RSA_meth_set_finish(RSA_METHOD *rsa, int (*finish) (RSA *rsa)); +// +// llgo:link (*RSA_METHOD).SetFinish C.RSA_meth_set_finish +func (*RSA_METHOD) SetFinish(finish func(rsa *RSA) c.Int) c.Int { return 0 } + +/* +OSSL_DEPRECATEDIN_3_0 +int RSA_meth_set_mod_exp(RSA_METHOD *rsa, + int (*mod_exp) (BIGNUM *r0, const BIGNUM *i, RSA *rsa, + BN_CTX *ctx)); +*/ +// llgo:link (*RSA_METHOD).SetModExp C.RSA_meth_set_mod_exp +func (*RSA_METHOD) SetModExp(modExp func( + r0 *BIGNUM, i *BIGNUM, rsa *RSA, ctx *BN_CTX) c.Int) c.Int { + return 0 +} + +/* +OSSL_DEPRECATEDIN_3_0 +int RSA_meth_set_bn_mod_exp(RSA_METHOD *rsa, + int (*bn_mod_exp) (BIGNUM *r, + const BIGNUM *a, + const BIGNUM *p, + const BIGNUM *m, + BN_CTX *ctx, + BN_MONT_CTX *m_ctx)); +//-llgo:link (*RSA_METHOD).SetBnModExp C.RSA_meth_set_bn_mod_exp +func (*RSA_METHOD) SetBnModExp(bnModExp func( + r *BIGNUM, a *BIGNUM, p *BIGNUM, m *BIGNUM, ctx *BN_CTX, mCtx *BN_MONT_CTX) c.Int) c.Int { + return 0 +} +*/ + +/* +OSSL_DEPRECATEDIN_3_0 +int RSA_meth_set_pub_enc(RSA_METHOD *rsa, + int (*pub_enc) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, + int padding)); +*/ +// llgo:link (*RSA_METHOD).SetPubEnc C.RSA_meth_set_pub_enc +func (*RSA_METHOD) SetPubEnc(pubEnc func( + flen c.Int, from *byte, to *byte, rsa *RSA, padding c.Int) c.Int) c.Int { + return 0 +} + +/* +OSSL_DEPRECATEDIN_3_0 +int RSA_meth_set_pub_dec(RSA_METHOD *rsa, + int (*pub_dec) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, + int padding)); +*/ +// llgo:link (*RSA_METHOD).SetPubDec C.RSA_meth_set_pub_dec +func (*RSA_METHOD) SetPubDec(pubDec func( + flen c.Int, from *byte, to *byte, rsa *RSA, padding c.Int) c.Int) c.Int { + return 0 +} + +/* +OSSL_DEPRECATEDIN_3_0 +int RSA_meth_set_priv_enc(RSA_METHOD *rsa, + int (*priv_enc) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, + int padding)); +*/ +// llgo:link (*RSA_METHOD).SetPrivEnc C.RSA_meth_set_priv_enc +func (*RSA_METHOD) SetPrivEnc(privEnc func( + flen c.Int, from *byte, to *byte, rsa *RSA, padding c.Int) c.Int) c.Int { + return 0 +} + +/* +OSSL_DEPRECATEDIN_3_0 +int RSA_meth_set_priv_dec(RSA_METHOD *rsa, + int (*priv_dec) (int flen, const unsigned char *from, + unsigned char *to, RSA *rsa, + int padding)); +*/ +// llgo:link (*RSA_METHOD).SetPrivDec C.RSA_meth_set_priv_dec +func (*RSA_METHOD) SetPrivDec(privDec func( + flen c.Int, from *byte, to *byte, rsa *RSA, padding c.Int) c.Int) c.Int { + return 0 +} + +/* +OSSL_DEPRECATEDIN_3_0 +int RSA_meth_set_sign(RSA_METHOD *rsa, + int (*sign) (int type, const unsigned char *m, + unsigned int m_length, + unsigned char *sigret, unsigned int *siglen, + const RSA *rsa)); +*/ +// llgo:link (*RSA_METHOD).SetSign C.RSA_meth_set_sign +func (*RSA_METHOD) SetSign(sign func( + typ c.Int, msg *byte, mlen c.Uint, + sigret *byte, siglen *c.Uint, rsa *RSA) c.Int) c.Int { + return 0 +} + +/* +OSSL_DEPRECATEDIN_3_0 +int RSA_meth_set_verify(RSA_METHOD *rsa, + int (*verify) (int dtype, const unsigned char *m, + unsigned int m_length, + const unsigned char *sigbuf, + unsigned int siglen, const RSA *rsa)); +*/ +// llgo:link (*RSA_METHOD).SetVerify C.RSA_meth_set_verify +func (*RSA_METHOD) SetVerify(verify func( + dtype c.Int, msg *byte, mlen c.Uint, + sigbuf *byte, siglen c.Uint, rsa *RSA) c.Int) c.Int { + return 0 +} + +/* +OSSL_DEPRECATEDIN_3_0 +int RSA_meth_set_keygen(RSA_METHOD *rsa, + int (*keygen) (RSA *rsa, int bits, BIGNUM *e, + BN_GENCB *cb)); + +OSSL_DEPRECATEDIN_3_0 +int RSA_meth_set_multi_prime_keygen(RSA_METHOD *meth, + int (*keygen) (RSA *rsa, int bits, + int primes, BIGNUM *e, + BN_GENCB *cb)); +*/ + +// ----------------------------------------------------------------------------- + +type RSA struct { + Unused [0]byte +} + +// OSSL_DEPRECATEDIN_3_0 RSA *RSA_new(void); +// +//go:linkname RSANew C.RSA_new +func RSANew() *RSA + +// OSSL_DEPRECATEDIN_3_0 RSA *RSA_new_method(ENGINE *engine); + +// OSSL_DEPRECATEDIN_3_0 void RSA_free(RSA *r); +// +// llgo:link (*RSA).Free C.RSA_free +func (*RSA) Free() {} + +// "up" the RSA object's reference count +// OSSL_DEPRECATEDIN_3_0 int RSA_up_ref(RSA *r); +// +// llgo:link (*RSA).UpRef C.RSA_up_ref +func (*RSA) UpRef() c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 int RSA_bits(const RSA *rsa); +// +// llgo:link (*RSA).Bits C.RSA_bits +func (*RSA) Bits() c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 int RSA_size(const RSA *rsa); +// +// llgo:link (*RSA).Size C.RSA_size +func (*RSA) Size() c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 int RSA_security_bits(const RSA *rsa); +// +// llgo:link (*RSA).SecurityBits C.RSA_security_bits +func (*RSA) SecurityBits() c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 int RSA_flags(const RSA *r); +// +// llgo:link (*RSA).Flags C.RSA_flags +func (*RSA) Flags() c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 void RSA_set_flags(RSA *r, int flags); +// +// llgo:link (*RSA).SetFlags C.RSA_set_flags +func (*RSA) SetFlags(flags c.Int) {} + +// OSSL_DEPRECATEDIN_3_0 void RSA_clear_flags(RSA *r, int flags); +// +// llgo:link (*RSA).ClearFlags C.RSA_clear_flags +func (*RSA) ClearFlags(flags c.Int) {} + +// OSSL_DEPRECATEDIN_3_0 int RSA_test_flags(const RSA *r, int flags); +// +// llgo:link (*RSA).TestFlags C.RSA_test_flags +func (*RSA) TestFlags(flags c.Int) c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 int RSA_get_version(RSA *r); +// +// llgo:link (*RSA).GetVersion C.RSA_get_version +func (*RSA) GetVersion() c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 int RSA_set_ex_data(RSA *r, int idx, void *arg); +// +// llgo:link (*RSA).SetExData C.RSA_set_ex_data +func (*RSA) SetExData(idx c.Int, arg unsafe.Pointer) c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 void *RSA_get_ex_data(const RSA *r, int idx); +// +// llgo:link (*RSA).GetExData C.RSA_get_ex_data +func (*RSA) GetExData(idx c.Int) unsafe.Pointer { return nil } + +// OSSL_DEPRECATEDIN_3_0 int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); +// +// llgo:link (*RSA).SetMethod C.RSA_set_method +func (*RSA) SetMethod(meth *RSA_METHOD) c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 int RSA_generate_key_ex(RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); +// +// llgo:link (*RSA).GenerateKeyEx C.RSA_generate_key_ex +func (*RSA) GenerateKeyEx(bits c.Int, e *BIGNUM, cb *BN_GENCB) c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 int RSA_generate_multi_prime_key(RSA *rsa, int bits, int primes, BIGNUM *e, BN_GENCB *cb); +// +// llgo:link (*RSA).GenerateMultiPrimeKey C.RSA_generate_multi_prime_key +func (*RSA) GenerateMultiPrimeKey(bits, primes c.Int, e *BIGNUM, cb *BN_GENCB) c.Int { return 0 } + +/* +// next 4 return -1 on error + +OSSL_DEPRECATEDIN_3_0 +int RSA_public_encrypt(int flen, const unsigned char *from, unsigned char *to, + RSA *rsa, int padding); +OSSL_DEPRECATEDIN_3_0 +int RSA_private_encrypt(int flen, const unsigned char *from, unsigned char *to, + RSA *rsa, int padding); +OSSL_DEPRECATEDIN_3_0 +int RSA_public_decrypt(int flen, const unsigned char *from, unsigned char *to, + RSA *rsa, int padding); +OSSL_DEPRECATEDIN_3_0 +int RSA_private_decrypt(int flen, const unsigned char *from, unsigned char *to, + RSA *rsa, int padding); +*/ +//go:linkname RSAPublicEncrypt C.RSA_public_encrypt +func RSAPublicEncrypt(flen c.Int, from *byte, to *byte, rsa *RSA, padding c.Int) c.Int + +//go:linkname RSAPrivateEncrypt C.RSA_private_encrypt +func RSAPrivateEncrypt(flen c.Int, from *byte, to *byte, rsa *RSA, padding c.Int) c.Int + +//go:linkname RSAPublicDecrypt C.RSA_public_decrypt +func RSAPublicDecrypt(flen c.Int, from *byte, to *byte, rsa *RSA, padding c.Int) c.Int + +//go:linkname RSAPrivateDecrypt C.RSA_private_decrypt +func RSAPrivateDecrypt(flen c.Int, from *byte, to *byte, rsa *RSA, padding c.Int) c.Int + +// OSSL_DEPRECATEDIN_3_0 int RSA_sign( +// int type, const unsigned char *m, unsigned int m_length, +// unsigned char *sigret, unsigned int *siglen, RSA *rsa); +// +//go:linkname RSASign C.RSA_sign +func RSASign(typ c.Int, msg *byte, mlen c.Uint, sigret *byte, siglen *c.Uint, rsa *RSA) c.Int + +// OSSL_DEPRECATEDIN_3_0 int RSA_verify(int type, const unsigned char *m, +// unsigned int m_length, +// const unsigned char *sigbuf, +// unsigned int siglen, RSA *rsa); + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/openssl/sha1.go b/runtime/internal/clite/openssl/sha1.go new file mode 100644 index 00000000..d554f848 --- /dev/null +++ b/runtime/internal/clite/openssl/sha1.go @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 openssl + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +const ( + SHA_DIGEST_LENGTH = 20 + SHA_LBLOCK = 16 + SHA_CBLOCK = (SHA_LBLOCK * 4) + SHA_LAST_BLOCK = (SHA_CBLOCK - 8) + + SHA256_CBLOCK = (SHA_LBLOCK * 4) + SHA256_192_DIGEST_LENGTH = 24 + SHA224_DIGEST_LENGTH = 28 + SHA256_DIGEST_LENGTH = 32 + SHA384_DIGEST_LENGTH = 48 + SHA512_DIGEST_LENGTH = 64 + SHA512_CBLOCK = (SHA_LBLOCK * 8) +) + +type SHA_LONG64 = c.UlongLong + +type SHA_LONG = c.Uint + +type SHA_CTX struct { + H0, H1, H2, H3, H4 SHA_LONG + Nl, Nh SHA_LONG + Data [SHA_LBLOCK]SHA_LONG + Num c.Uint +} + +// OSSL_DEPRECATEDIN_3_0 int SHA1_Init(SHA_CTX *c); +// +// llgo:link (*SHA_CTX).Init C.SHA1_Init +func (c *SHA_CTX) Init() c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 int SHA1_Update(SHA_CTX *c, const void *data, size_t len); +// +// llgo:link (*SHA_CTX).Update C.SHA1_Update +func (c *SHA_CTX) Update(data unsafe.Pointer, n uintptr) c.Int { return 0 } + +func (c *SHA_CTX) UpdateBytes(data []byte) c.Int { + return c.Update(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data))) +} + +func (c *SHA_CTX) UpdateString(data string) c.Int { + return c.Update(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data))) +} + +// OSSL_DEPRECATEDIN_3_0 int SHA1_Final(unsigned char *md, SHA_CTX *c); +// +//go:linkname sha1Final C.SHA1_Final +func sha1Final(md *byte, c *SHA_CTX) c.Int + +func (c *SHA_CTX) Final(md *byte) c.Int { + return sha1Final(md, c) +} + +// OSSL_DEPRECATEDIN_3_0 void SHA1_Transform(SHA_CTX *c, const unsigned char *data); +// +// llgo:link (*SHA_CTX).Transform C.SHA1_Transform +func (c *SHA_CTX) Transform(data *byte) {} + +// unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); +// +//go:linkname SHA1 C.SHA1 +func SHA1(data unsafe.Pointer, n uintptr, md *byte) *byte + +func SHA1Bytes(data []byte, md *byte) *byte { + return SHA1(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data)), md) +} + +func SHA1String(data string, md *byte) *byte { + return SHA1(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data)), md) +} diff --git a/runtime/internal/clite/openssl/sha256.go b/runtime/internal/clite/openssl/sha256.go new file mode 100644 index 00000000..4d6fb672 --- /dev/null +++ b/runtime/internal/clite/openssl/sha256.go @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 openssl + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +type SHA256_CTX struct { + H [8]SHA_LONG + Nl, Nh SHA_LONG + Data [SHA_LBLOCK]SHA_LONG + Num, MdLen c.Uint +} + +type SHA224_CTX SHA256_CTX + +// OSSL_DEPRECATEDIN_3_0 int SHA224_Init(SHA256_CTX *c); +// +// llgo:link (*SHA224_CTX).Init C.SHA224_Init +func (c *SHA224_CTX) Init() c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 int SHA224_Update(SHA256_CTX *c, const void *data, size_t len); +// +// llgo:link (*SHA224_CTX).Update C.SHA224_Update +func (c *SHA224_CTX) Update(data unsafe.Pointer, n uintptr) c.Int { return 0 } + +func (c *SHA224_CTX) UpdateBytes(data []byte) c.Int { + return c.Update(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data))) +} + +func (c *SHA224_CTX) UpdateString(data string) c.Int { + return c.Update(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data))) +} + +// OSSL_DEPRECATEDIN_3_0 int SHA224_Final(unsigned char *md, SHA256_CTX *c); +// +//go:linkname sha224Final C.SHA224_Final +func sha224Final(md *byte, c *SHA224_CTX) c.Int + +func (c *SHA224_CTX) Final(md *byte) c.Int { + return sha224Final(md, c) +} + +// OSSL_DEPRECATEDIN_3_0 int SHA256_Init(SHA256_CTX *c); +// +// llgo:link (*SHA256_CTX).Init C.SHA256_Init +func (c *SHA256_CTX) Init() c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 int SHA256_Update(SHA256_CTX *c, const void *data, size_t len); +// +// llgo:link (*SHA256_CTX).Update C.SHA256_Update +func (c *SHA256_CTX) Update(data unsafe.Pointer, n uintptr) c.Int { return 0 } + +func (c *SHA256_CTX) UpdateBytes(data []byte) c.Int { + return c.Update(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data))) +} + +func (c *SHA256_CTX) UpdateString(data string) c.Int { + return c.Update(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data))) +} + +// OSSL_DEPRECATEDIN_3_0 int SHA256_Final(unsigned char *md, SHA256_CTX *c); +// +//go:linkname sha256Final C.SHA256_Final +func sha256Final(md *byte, c *SHA256_CTX) c.Int + +func (c *SHA256_CTX) Final(md *byte) c.Int { + return sha256Final(md, c) +} + +// OSSL_DEPRECATEDIN_3_0 void SHA256_Transform(SHA256_CTX *c, const unsigned char *data); +// +// llgo:link (*SHA256_CTX).Transform C.SHA256_Transform +func (c *SHA256_CTX) Transform(data *byte) {} + +// unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md); +// +//go:linkname SHA224 C.SHA224 +func SHA224(data unsafe.Pointer, n uintptr, md *byte) *byte + +func SHA224Bytes(data []byte, md *byte) *byte { + return SHA224(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data)), md) +} + +func SHA224String(data string, md *byte) *byte { + return SHA224(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data)), md) +} + +// unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md); +// +//go:linkname SHA256 C.SHA256 +func SHA256(data unsafe.Pointer, n uintptr, md *byte) *byte + +func SHA256Bytes(data []byte, md *byte) *byte { + return SHA256(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data)), md) +} + +func SHA256String(data string, md *byte) *byte { + return SHA256(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data)), md) +} diff --git a/runtime/internal/clite/openssl/sha512.go b/runtime/internal/clite/openssl/sha512.go new file mode 100644 index 00000000..0a7176ed --- /dev/null +++ b/runtime/internal/clite/openssl/sha512.go @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 openssl + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +type SHA512_CTX struct { + H [8]SHA_LONG64 + N1, Nh SHA_LONG64 + D [SHA_LBLOCK]SHA_LONG64 + Num, MdLen c.Uint +} + +type SHA384_CTX SHA512_CTX + +// OSSL_DEPRECATEDIN_3_0 int SHA384_Init(SHA512_CTX *c); +// +// llgo:link (*SHA384_CTX).Init C.SHA384_Init +func (c *SHA384_CTX) Init() c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 int SHA384_Update(SHA512_CTX *c, const void *data, size_t len); +// +// llgo:link (*SHA384_CTX).Update C.SHA384_Update +func (c *SHA384_CTX) Update(data unsafe.Pointer, n uintptr) c.Int { return 0 } + +func (c *SHA384_CTX) UpdateBytes(data []byte) c.Int { + return c.Update(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data))) +} + +func (c *SHA384_CTX) UpdateString(data string) c.Int { + return c.Update(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data))) +} + +// OSSL_DEPRECATEDIN_3_0 int SHA384_Final(unsigned char *md, SHA512_CTX *c); +// +//go:linkname sha384Final C.SHA384_Final +func sha384Final(md *byte, c *SHA384_CTX) c.Int + +func (c *SHA384_CTX) Final(md *byte) c.Int { + return sha384Final(md, c) +} + +// OSSL_DEPRECATEDIN_3_0 int SHA512_Init(SHA512_CTX *c); +// +// llgo:link (*SHA512_CTX).Init C.SHA512_Init +func (c *SHA512_CTX) Init() c.Int { return 0 } + +// OSSL_DEPRECATEDIN_3_0 int SHA512_Update(SHA512_CTX *c, const void *data, size_t len); +// +// llgo:link (*SHA512_CTX).Update C.SHA512_Update +func (c *SHA512_CTX) Update(data unsafe.Pointer, n uintptr) c.Int { return 0 } +func (c *SHA512_CTX) UpdateBytes(data []byte) c.Int { + return c.Update(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data))) +} +func (c *SHA512_CTX) UpdateString(data string) c.Int { + return c.Update(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data))) +} + +// OSSL_DEPRECATEDIN_3_0 int SHA512_Final(unsigned char *md, SHA512_CTX *c); +// +//go:linkname sha512Final C.SHA512_Final +func sha512Final(md *byte, c *SHA512_CTX) c.Int + +func (c *SHA512_CTX) Final(md *byte) c.Int { + return sha512Final(md, c) +} + +// OSSL_DEPRECATEDIN_3_0 void SHA512_Transform(SHA512_CTX *c, const unsigned char *data); +// +// llgo:link (*SHA512_CTX).Transform C.SHA512_Transform +func (c *SHA512_CTX) Transform(data *byte) {} + +// unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md); +// +//go:linkname SHA384 C.SHA384 +func SHA384(data unsafe.Pointer, n uintptr, md *byte) *byte + +func SHA384Bytes(data []byte, md *byte) *byte { + return SHA384(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data)), md) +} + +func SHA384String(data string, md *byte) *byte { + return SHA384(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data)), md) +} + +// unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md); +// +//go:linkname SHA512 C.SHA512 +func SHA512(data unsafe.Pointer, n uintptr, md *byte) *byte + +func SHA512Bytes(data []byte, md *byte) *byte { + return SHA512(unsafe.Pointer(unsafe.SliceData(data)), uintptr(len(data)), md) +} + +func SHA512String(data string, md *byte) *byte { + return SHA512(unsafe.Pointer(unsafe.StringData(data)), uintptr(len(data)), md) +} diff --git a/runtime/internal/clite/os/_os/os.c b/runtime/internal/clite/os/_os/os.c new file mode 100644 index 00000000..45c2e8e8 --- /dev/null +++ b/runtime/internal/clite/os/_os/os.c @@ -0,0 +1,14 @@ +#include +#include + +int cliteClearenv() +{ + extern char **environ; + if (environ != NULL) + { + *environ = NULL; + } + return 0; +} + +int cliteErrno() { return errno; } diff --git a/runtime/internal/clite/os/os.go b/runtime/internal/clite/os/os.go new file mode 100644 index 00000000..fe3bf3a9 --- /dev/null +++ b/runtime/internal/clite/os/os.go @@ -0,0 +1,359 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 os + +// #include +// #include +import "C" + +import ( + _ "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/syscall" +) + +const ( + PATH_MAX = C.PATH_MAX +) + +const ( + /* get file status flags */ + F_GETFL = 3 + /* set file status flags */ + F_SETFL = 4 + + /* open for reading only */ + O_RDONLY = 0x0000 + /* open for writing only */ + O_WRONLY = 0x0001 + /* open for reading and writing */ + O_RDWR = 0x0002 + /* mask for above modes */ + O_ACCMODE = 0x0003 + + /* no delay */ + O_NONBLOCK = 0x00000004 + /* create if nonexistant */ + O_CREAT = 0x00000200 + /* truncate to zero length */ + O_TRUNC = 0x00000400 +) + +const ( + EAGAIN = 35 +) + +type ( + ModeT C.mode_t + UidT C.uid_t + GidT C.gid_t + OffT C.off_t + DevT C.dev_t +) + +type ( + StatT = syscall.Stat_t +) + +//go:linkname Errno C.cliteErrno +func Errno() c.Int + +//go:linkname Umask C.umask +func Umask(cmask ModeT) ModeT + +//go:linkname Mkdir C.mkdir +func Mkdir(path *c.Char, mode ModeT) c.Int + +//go:linkname Rmdir C.rmdir +func Rmdir(path *c.Char) c.Int + +//go:linkname Link C.link +func Link(oldpath *c.Char, newpath *c.Char) c.Int + +//go:linkname Symlink C.symlink +func Symlink(target *c.Char, linkpath *c.Char) c.Int + +//go:linkname Readlink C.readlink +func Readlink(path *c.Char, buf c.Pointer, bufsize uintptr) int + +//go:linkname Unlink C.unlink +func Unlink(path *c.Char) c.Int + +//go:linkname Remove C.remove +func Remove(path *c.Char) c.Int + +//go:linkname Rename C.rename +func Rename(oldpath *c.Char, newpath *c.Char) c.Int + +//go:linkname Stat C.stat +func Stat(path *c.Char, buf *StatT) c.Int + +//go:linkname Lstat C.lstat +func Lstat(path *c.Char, buf *StatT) c.Int + +//go:linkname Truncate C.truncate +func Truncate(path *c.Char, length OffT) c.Int + +//go:linkname Chmod C.chmod +func Chmod(path *c.Char, mode ModeT) c.Int + +//go:linkname Chown C.chown +func Chown(path *c.Char, owner UidT, group GidT) c.Int + +//go:linkname Lchown C.lchown +func Lchown(path *c.Char, owner UidT, group GidT) c.Int + +// ----------------------------------------------------------------------------- + +//go:linkname Getcwd C.getcwd +func Getcwd(buffer c.Pointer, size uintptr) *c.Char + +//go:linkname Chdir C.chdir +func Chdir(path *c.Char) c.Int + +//go:linkname Chroot C.chroot +func Chroot(path *c.Char) c.Int + +// ----------------------------------------------------------------------------- + +//go:linkname Environ environ +var Environ **c.Char + +//go:linkname Getenv C.getenv +func Getenv(name *c.Char) *c.Char + +//go:linkname Setenv C.setenv +func Setenv(name *c.Char, value *c.Char, overwrite c.Int) c.Int + +//go:linkname Putenv C.putenv +func Putenv(env *c.Char) c.Int + +//go:linkname Unsetenv C.unsetenv +func Unsetenv(name *c.Char) c.Int + +// ----------------------------------------------------------------------------- + +//go:linkname Fchdir C.fchdir +func Fchdir(dirfd c.Int) c.Int + +//go:linkname Faccessat C.faccessat +func Faccessat(dirfd c.Int, path *c.Char, mode c.Int, flags c.Int) c.Int + +//go:linkname Fchmodat C.fchmodat +func Fchmodat(dirfd c.Int, path *c.Char, mode ModeT, flags c.Int) c.Int + +//go:linkname Fchownat C.fchownat +func Fchownat(dirfd c.Int, path *c.Char, owner UidT, group GidT, flags c.Int) c.Int + +//go:linkname Fstatat C.fstatat +func Fstatat(dirfd c.Int, path *c.Char, buf *StatT, flags c.Int) c.Int + +// ----------------------------------------------------------------------------- + +//go:linkname Open C.open +func Open(path *c.Char, flags c.Int, __llgo_va_list ...any) c.Int + +//go:linkname Openat C.openat +func Openat(dirfd c.Int, path *c.Char, flags c.Int, mode ModeT) c.Int + +//go:linkname Creat C.creat +func Creat(path *c.Char, mode ModeT) c.Int + +//go:linkname Fcntl C.fcntl +func Fcntl(a c.Int, b c.Int, __llgo_va_list ...any) c.Int + +//go:linkname Dup C.dup +func Dup(fd c.Int) c.Int + +//go:linkname Dup2 C.dup2 +func Dup2(oldfd c.Int, newfd c.Int) c.Int + +/* TODO(xsw): +On Alpha, IA-64, MIPS, SuperH, and SPARC/SPARC64, pipe() has the following prototype: +struct fd_pair { + long fd[2]; +}; +struct fd_pair pipe(void); +*/ +//go:linkname Pipe C.pipe +func Pipe(fds *[2]c.Int) c.Int + +//go:linkname Mkfifo C.mkfifo +func Mkfifo(path *c.Char, mode ModeT) c.Int + +//go:linkname Mknod C.mknod +func Mknod(path *c.Char, mode ModeT, dev DevT) c.Int + +//go:linkname Close C.close +func Close(fd c.Int) c.Int + +//go:linkname Read C.read +func Read(fd c.Int, buf c.Pointer, count uintptr) int + +//go:linkname Write C.write +func Write(fd c.Int, buf c.Pointer, count uintptr) int + +//go:linkname Lseek C.lseek +func Lseek(fd c.Int, offset OffT, whence c.Int) OffT + +//go:linkname Fsync C.fsync +func Fsync(fd c.Int) c.Int + +//go:linkname Ftruncate C.ftruncate +func Ftruncate(fd c.Int, length OffT) c.Int + +//go:linkname Fchmod C.fchmod +func Fchmod(fd c.Int, mode ModeT) c.Int + +//go:linkname Fchown C.fchown +func Fchown(fd c.Int, owner UidT, group GidT) c.Int + +//go:linkname Fstat C.fstat +func Fstat(fd c.Int, buf *StatT) c.Int + +//go:linkname Isatty C.isatty +func Isatty(fd c.Int) c.Int + +// ----------------------------------------------------------------------------- + +// Execl(const char *path, const char *arg0, ..., /*, (char *)0, */) +// +// Execl requires the full path of the program to be provided. +// +//go:linkname Execl C.execl +func Execl(path *c.Char, arg0 *c.Char, __llgo_va_list ...any) c.Int + +// Execle(const char *path, const char *arg0, ..., /* (char *)0, char *const envp[] */) +// +//go:linkname Execle C.execle +func Execle(path *c.Char, arg0 *c.Char, __llgo_va_list ...any) c.Int + +// Execlp(const char *file, const char *arg0, ..., /*, (char *)0, */) +// +// Execlp only needs to provide the program name and it will search for the program in the +// paths specified in the PATH environment variable. +// +//go:linkname Execlp C.execlp +func Execlp(file *c.Char, arg0 *c.Char, __llgo_va_list ...any) c.Int + +//go:linkname Execv C.execv +func Execv(path *c.Char, argv **c.Char) c.Int + +//go:linkname Execve C.execve +func Execve(path *c.Char, argv **c.Char, envp **c.Char) c.Int + +//go:linkname Execvp C.execvp +func Execvp(file *c.Char, argv **c.Char) c.Int + +// ----------------------------------------------------------------------------- + +type PidT c.Int + +//go:linkname Fork C.fork +func Fork() PidT + +//go:linkname Getpid C.getpid +func Getpid() PidT + +//go:linkname Getppid C.getppid +func Getppid() PidT + +//go:linkname Kill C.kill +func Kill(pid PidT, sig c.Int) c.Int + +// If wait() returns due to a stopped or terminated child process, the process ID +// of the child is returned to the calling process. Otherwise, a value of -1 is +// returned and errno is set to indicate the error. +// +//go:linkname Wait C.wait +func Wait(statLoc *c.Int) PidT + +// If wait3(), wait4(), or waitpid() returns due to a stopped or terminated child +// process, the process ID of the child is returned to the calling process. If +// there are no children not previously awaited, -1 is returned with errno set to +// [ECHILD]. Otherwise, if WNOHANG is specified and there are no stopped or exited +// children, 0 is returned. If an error is detected or a caught signal aborts the +// call, a value of -1 is returned and errno is set to indicate the error. +// +//go:linkname Wait3 C.wait3 +func Wait3(statLoc *c.Int, options c.Int, rusage *syscall.Rusage) PidT + +//go:linkname Wait4 C.wait4 +func Wait4(pid PidT, statLoc *c.Int, options c.Int, rusage *syscall.Rusage) PidT + +//go:linkname Waitpid C.waitpid +func Waitpid(pid PidT, statLoc *c.Int, options c.Int) PidT + +// ----------------------------------------------------------------------------- + +//go:linkname Exit C.exit +func Exit(c.Int) + +//go:linkname Getuid C.getuid +func Getuid() UidT + +//go:linkname Geteuid C.geteuid +func Geteuid() UidT + +//go:linkname Getgid C.getgid +func Getgid() GidT + +//go:linkname Getegid C.getegid +func Getegid() GidT + +// ----------------------------------------------------------------------------- + +//go:linkname Getrlimit C.getrlimit +func Getrlimit(resource c.Int, rlp *syscall.Rlimit) c.Int + +//go:linkname Setrlimit C.setrlimit +func Setrlimit(resource c.Int, rlp *syscall.Rlimit) c.Int + +// ----------------------------------------------------------------------------- + +// Upon successful completion, the value 0 is returned; otherwise the value -1 +// is returned and the global variable errno is set to indicate the error. +// +//go:linkname Sysctl C.sysctl +func Sysctl( + name *c.Int, namelen c.Uint, + oldp c.Pointer, oldlenp *uintptr, + newp c.Pointer, newlen uintptr) c.Int + +//go:linkname Sysctlbyname C.sysctlbyname +func Sysctlbyname( + name *c.Char, oldp c.Pointer, oldlenp *uintptr, + newp c.Pointer, newlen uintptr) c.Int + +// The sysctlnametomib() function accepts an ASCII representation of the +// name, looks up the integer name vector, and returns the numeric repre- +// sentation in the mib array pointed to by mibp. The number of elements +// in the mib array is given by the location specified by sizep before the +// call, and that location gives the number of entries copied after a suc- +// cessful call. The resulting mib and size may be used in subsequent +// sysctl() calls to get the data associated with the requested ASCII +// name. This interface is intended for use by applications that want to +// repeatedly request the same variable (the sysctl() function runs in +// about a third the time as the same request made via the sysctlbyname() +// function). The sysctlnametomib() function is also useful for fetching +// mib prefixes and then adding a final component. +// +//go:linkname Sysctlnametomib C.sysctlnametomib +func Sysctlnametomib(name *c.Char, mibp *c.Int, sizep *uintptr) c.Int + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/os/os_linux.go b/runtime/internal/clite/os/os_linux.go new file mode 100644 index 00000000..6886a3f2 --- /dev/null +++ b/runtime/internal/clite/os/os_linux.go @@ -0,0 +1,29 @@ +//go:build linux + +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 os + +import "C" + +const ( + LLGoFiles = "_os/os.c" + LLGoPackage = "link" +) + +//go:linkname Clearenv C.clearenv +func Clearenv() diff --git a/runtime/internal/clite/os/os_other.go b/runtime/internal/clite/os/os_other.go new file mode 100644 index 00000000..5f489058 --- /dev/null +++ b/runtime/internal/clite/os/os_other.go @@ -0,0 +1,29 @@ +//go:build !linux + +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 os + +import "C" + +const ( + LLGoFiles = "_os/os.c" + LLGoPackage = "link" +) + +//go:linkname Clearenv C.cliteClearenv +func Clearenv() diff --git a/runtime/internal/clite/pthread/pthread.go b/runtime/internal/clite/pthread/pthread.go new file mode 100644 index 00000000..3664e7d3 --- /dev/null +++ b/runtime/internal/clite/pthread/pthread.go @@ -0,0 +1,109 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 pthread + +import ( + _ "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +func __noop__() c.Int { + return 0 +} + +// ----------------------------------------------------------------------------- + +type aThread struct { + Unused [8]byte +} + +//llgo:type C +type RoutineFunc func(c.Pointer) c.Pointer + +// Thread represents a POSIX thread. +type Thread = *aThread + +// The pthread_exit() function terminates the calling thread and +// returns a value via retval that (if the thread is joinable) is +// available to another thread in the same process that calls +// pthread_join(3). +// +// See https://man7.org/linux/man-pages/man3/pthread_exit.3.html +// +//go:linkname Exit C.pthread_exit +func Exit(retval c.Pointer) + +// The pthread_cancel() function sends a cancelation request to the +// thread thread. +// +// See https://man7.org/linux/man-pages/man3/pthread_cancel.3.html +// +//go:linkname Cancel C.pthread_cancel +func Cancel(thread Thread) c.Int + +// ----------------------------------------------------------------------------- + +// Attr represents a POSIX thread attributes. +type Attr struct { + Detached byte + SsSp *c.Char + SsSize uintptr +} + +// llgo:link (*Attr).Init C.pthread_attr_init +func (attr *Attr) Init() c.Int { return 0 } + +// llgo:link (*Attr).Destroy C.pthread_attr_destroy +func (attr *Attr) Destroy() c.Int { return 0 } + +// llgo:link (*Attr).GetDetached C.pthread_attr_getdetachstate +func (attr *Attr) GetDetached(detached *c.Int) c.Int { return 0 } + +// llgo:link (*Attr).SetDetached C.pthread_attr_setdetachstate +func (attr *Attr) SetDetached(detached c.Int) c.Int { return 0 } + +// llgo:link (*Attr).GetStackSize C.pthread_attr_getstacksize +func (attr *Attr) GetStackSize(stackSize *uintptr) c.Int { return 0 } + +// llgo:link (*Attr).SetStackSize C.pthread_attr_setstacksize +func (attr *Attr) SetStackSize(stackSize uintptr) c.Int { return 0 } + +// llgo:link (*Attr).GetStackAddr C.pthread_attr_getstackaddr +func (attr *Attr) GetStackAddr(stackAddr *c.Pointer) c.Int { return 0 } + +// llgo:link (*Attr).SetStackAddr C.pthread_attr_setstackaddr +func (attr *Attr) SetStackAddr(stackAddr c.Pointer) c.Int { return 0 } + +// ----------------------------------------------------------------------------- +// Thread Local Storage + +type Key c.Uint + +// llgo:link (*Key).Create C.pthread_key_create +func (key *Key) Create(destructor func(c.Pointer)) c.Int { return 0 } + +// llgo:link Key.Delete C.pthread_key_delete +func (key Key) Delete() c.Int { return 0 } + +// llgo:link Key.Get C.pthread_getspecific +func (key Key) Get() c.Pointer { return nil } + +// llgo:link Key.Set C.pthread_setspecific +func (key Key) Set(value c.Pointer) c.Int { return __noop__() } + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/pthread/pthread_gc.go b/runtime/internal/clite/pthread/pthread_gc.go new file mode 100644 index 00000000..32c7823e --- /dev/null +++ b/runtime/internal/clite/pthread/pthread_gc.go @@ -0,0 +1,80 @@ +//go:build !nogc +// +build !nogc + +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 pthread + +import ( + _ "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +const ( + LLGoPackage = "link: $(pkg-config --libs bdw-gc); -lgc" +) + +// The pthread_create() function starts a new thread in the calling +// process. The new thread starts execution by invoking +// start_routine(); arg is passed as the sole argument of +// start_routine(). +// +// The new thread terminates in one of the following ways: +// +// - It calls pthread_exit(3), specifying an exit status value that +// is available to another thread in the same process that calls +// pthread_join(3). +// +// - It returns from start_routine(). This is equivalent to +// calling pthread_exit(3) with the value supplied in the return +// statement. +// +// - It is canceled (see pthread_cancel(3)). +// +// - Any of the threads in the process calls exit(3), or the main +// thread performs a return from main(). This causes the +// termination of all threads in the process. +// +// On success, pthread_create() returns 0; on error, it returns an +// error number, and the contents of *thread are undefined. +// +// See https://man7.org/linux/man-pages/man3/pthread_create.3.html +// +//go:linkname Create C.GC_pthread_create +func Create(pthread *Thread, attr *Attr, routine RoutineFunc, arg c.Pointer) c.Int + +// The pthread_join() function waits for the thread specified by +// thread to terminate. If that thread has already terminated, then +// pthread_join() returns immediately. The thread specified by +// thread must be joinable. +// +// If retval is not NULL, then pthread_join() copies the exit status +// of the target thread (i.e., the value that the target thread +// supplied to pthread_exit(3)) into the location pointed to by +// retval. If the target thread was canceled, then PTHREAD_CANCELED +// is placed in the location pointed to by retval. +// +// If multiple threads simultaneously try to join with the same +// thread, the results are undefined. If the thread calling +// pthread_join() is canceled, then the target thread will remain +// joinable (i.e., it will not be detached). +// +// See https://man7.org/linux/man-pages/man3/pthread_join.3.html +// +//go:linkname Join C.GC_pthread_join +func Join(thread Thread, retval *c.Pointer) c.Int diff --git a/runtime/internal/clite/pthread/pthread_nogc.go b/runtime/internal/clite/pthread/pthread_nogc.go new file mode 100644 index 00000000..594e1b97 --- /dev/null +++ b/runtime/internal/clite/pthread/pthread_nogc.go @@ -0,0 +1,80 @@ +//go:build nogc +// +build nogc + +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 pthread + +import ( + _ "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +const ( + LLGoPackage = "decl" +) + +// The pthread_create() function starts a new thread in the calling +// process. The new thread starts execution by invoking +// start_routine(); arg is passed as the sole argument of +// start_routine(). +// +// The new thread terminates in one of the following ways: +// +// - It calls pthread_exit(3), specifying an exit status value that +// is available to another thread in the same process that calls +// pthread_join(3). +// +// - It returns from start_routine(). This is equivalent to +// calling pthread_exit(3) with the value supplied in the return +// statement. +// +// - It is canceled (see pthread_cancel(3)). +// +// - Any of the threads in the process calls exit(3), or the main +// thread performs a return from main(). This causes the +// termination of all threads in the process. +// +// On success, pthread_create() returns 0; on error, it returns an +// error number, and the contents of *thread are undefined. +// +// See https://man7.org/linux/man-pages/man3/pthread_create.3.html +// +//go:linkname Create C.pthread_create +func Create(pthread *Thread, attr *Attr, routine RoutineFunc, arg c.Pointer) c.Int + +// The pthread_join() function waits for the thread specified by +// thread to terminate. If that thread has already terminated, then +// pthread_join() returns immediately. The thread specified by +// thread must be joinable. +// +// If retval is not NULL, then pthread_join() copies the exit status +// of the target thread (i.e., the value that the target thread +// supplied to pthread_exit(3)) into the location pointed to by +// retval. If the target thread was canceled, then PTHREAD_CANCELED +// is placed in the location pointed to by retval. +// +// If multiple threads simultaneously try to join with the same +// thread, the results are undefined. If the thread calling +// pthread_join() is canceled, then the target thread will remain +// joinable (i.e., it will not be detached). +// +// See https://man7.org/linux/man-pages/man3/pthread_join.3.html +// +//go:linkname Join C.pthread_join +func Join(thread Thread, retval *c.Pointer) c.Int diff --git a/runtime/internal/clite/pthread/sync/_sema.go b/runtime/internal/clite/pthread/sync/_sema.go new file mode 100644 index 00000000..6792b588 --- /dev/null +++ b/runtime/internal/clite/pthread/sync/_sema.go @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 sync + +// #include +import "C" + +import ( + _ "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +// Sem represents a semaphore. +type Sem C.sem_t + +// initializes the unnamed semaphore at the address +// pointed to by sem. The value argument specifies the initial +// value for the semaphore. +// +// The pshared argument indicates whether this semaphore is to be +// shared between the threads of a process, or between processes. +// +// If pshared has the value 0, then the semaphore is shared between +// the threads of a process, and should be located at some address +// that is visible to all threads (e.g., a global variable, or a +// variable allocated dynamically on the heap). +// +// If pshared is nonzero, then the semaphore is shared between +// processes, and should be located in a region of shared memory +// (see shm_open(3), mmap(2), and shmget(2)). (Since a child +// created by fork(2) inherits its parent's memory mappings, it can +// also access the semaphore.) Any process that can access the +// shared memory region can operate on the semaphore using +// sem_post(3), sem_wait(3), and so on. +// +// Initializing a semaphore that has already been initialized +// results in undefined behavior. +// +// llgo:link (*Sem).Init C.sem_init +func (*Sem) Init(pshared c.Int, value c.Uint) c.Int { return 0 } + +// llgo:link (*Sem).Destroy C.sem_destroy +func (*Sem) Destroy() c.Int { return 0 } + +// llgo:link (*Sem).Post C.sem_post +func (*Sem) Post() c.Int { return 0 } + +// llgo:link (*Sem).Wait C.sem_wait +func (*Sem) Wait() c.Int { return 0 } + +// llgo:link (*Sem).TryWait C.sem_trywait +func (*Sem) TryWait() c.Int { return 0 } + +// llgo:link (*Sem).GetValue C.sem_getvalue +func (*Sem) GetValue(sval *c.Int) c.Int { return 0 } diff --git a/runtime/internal/clite/pthread/sync/_wrap/pthd.c b/runtime/internal/clite/pthread/sync/_wrap/pthd.c new file mode 100644 index 00000000..0ba77d69 --- /dev/null +++ b/runtime/internal/clite/pthread/sync/_wrap/pthd.c @@ -0,0 +1,21 @@ +#include + +// ----------------------------------------------------------------------------- + +pthread_once_t cliteSyncOnceInitVal = PTHREAD_ONCE_INIT; + +// ----------------------------------------------------------------------------- + +// wrap return type to void +void clite_wrap_pthread_mutex_lock(pthread_mutex_t *mutex) +{ + pthread_mutex_lock(mutex); +} + +// wrap return type to void +void clite_wrap_pthread_mutex_unlock(pthread_mutex_t *mutex) +{ + pthread_mutex_unlock(mutex); +} + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/pthread/sync/sync.go b/runtime/internal/clite/pthread/sync/sync.go new file mode 100644 index 00000000..ececfd75 --- /dev/null +++ b/runtime/internal/clite/pthread/sync/sync.go @@ -0,0 +1,174 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 sync + +// #include +import "C" + +import ( + _ "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/time" +) + +const ( + LLGoFiles = "_wrap/pthd.c" + LLGoPackage = "link" +) + +// ----------------------------------------------------------------------------- + +// Once is an object that will perform exactly one action. +type Once C.pthread_once_t + +//go:linkname OnceInit cliteSyncOnceInitVal +var OnceInit Once + +// llgo:link (*Once).Do C.pthread_once +func (o *Once) Do(f func()) c.Int { return 0 } + +// ----------------------------------------------------------------------------- + +type MutexType c.Int + +const ( + MUTEX_NORMAL MutexType = C.PTHREAD_MUTEX_NORMAL + MUTEX_ERRORCHECK MutexType = C.PTHREAD_MUTEX_ERRORCHECK + MUTEX_RECURSIVE MutexType = C.PTHREAD_MUTEX_RECURSIVE + MUTEX_DEFAULT MutexType = C.PTHREAD_MUTEX_DEFAULT +) + +// MutexAttr is a mutex attribute object. +type MutexAttr C.pthread_mutexattr_t + +// llgo:link (*MutexAttr).Init C.pthread_mutexattr_init +func (a *MutexAttr) Init(attr *MutexAttr) c.Int { return 0 } + +// llgo:link (*MutexAttr).Destroy C.pthread_mutexattr_destroy +func (a *MutexAttr) Destroy() {} + +// llgo:link (*MutexAttr).SetType C.pthread_mutexattr_settype +func (a *MutexAttr) SetType(typ MutexType) c.Int { return 0 } + +// ----------------------------------------------------------------------------- + +// Mutex is a mutual exclusion lock. +type Mutex C.pthread_mutex_t + +// llgo:link (*Mutex).Init C.pthread_mutex_init +func (m *Mutex) Init(attr *MutexAttr) c.Int { return 0 } + +// llgo:link (*Mutex).Destroy C.pthread_mutex_destroy +func (m *Mutex) Destroy() {} + +// llgo:link (*Mutex).TryLock C.pthread_mutex_trylock +func (m *Mutex) TryLock() c.Int { return 0 } + +// llgo:link (*Mutex).Lock C.clite_wrap_pthread_mutex_lock +func (m *Mutex) Lock() {} + +// llgo:link (*Mutex).Unlock C.clite_wrap_pthread_mutex_unlock +func (m *Mutex) Unlock() {} + +// ----------------------------------------------------------------------------- + +// RWLockAttr is a read-write lock attribute object. +type RWLockAttr C.pthread_rwlockattr_t + +// llgo:link (*RWLockAttr).Init C.pthread_rwlockattr_init +func (a *RWLockAttr) Init(attr *RWLockAttr) c.Int { return 0 } + +// llgo:link (*RWLockAttr).Destroy C.pthread_rwlockattr_destroy +func (a *RWLockAttr) Destroy() {} + +// llgo:link (*RWLockAttr).SetPShared C.pthread_rwlockattr_setpshared +func (a *RWLockAttr) SetPShared(pshared c.Int) c.Int { return 0 } + +// llgo:link (*RWLockAttr).GetPShared C.pthread_rwlockattr_getpshared +func (a *RWLockAttr) GetPShared(pshared *c.Int) c.Int { return 0 } + +// ----------------------------------------------------------------------------- + +// RWLock is a read-write lock. +type RWLock C.pthread_rwlock_t + +// llgo:link (*RWLock).Init C.pthread_rwlock_init +func (rw *RWLock) Init(attr *RWLockAttr) c.Int { return 0 } + +// llgo:link (*RWLock).Destroy C.pthread_rwlock_destroy +func (rw *RWLock) Destroy() {} + +// llgo:link (*RWLock).RLock C.pthread_rwlock_rdlock +func (rw *RWLock) RLock() {} + +// llgo:link (*RWLock).TryRLock C.pthread_rwlock_tryrdlock +func (rw *RWLock) TryRLock() c.Int { return 0 } + +// llgo:link (*RWLock).RUnlock C.pthread_rwlock_unlock +func (rw *RWLock) RUnlock() {} + +// llgo:link (*RWLock).Lock C.pthread_rwlock_wrlock +func (rw *RWLock) Lock() {} + +// llgo:link (*RWLock).TryLock C.pthread_rwlock_trywrlock +func (rw *RWLock) TryLock() c.Int { return 0 } + +// llgo:link (*RWLock).Unlock C.pthread_rwlock_unlock +func (rw *RWLock) Unlock() {} + +// ----------------------------------------------------------------------------- + +// CondAttr is a condition variable attribute object. +type CondAttr C.pthread_condattr_t + +// llgo:link (*CondAttr).Init C.pthread_condattr_init +func (a *CondAttr) Init(attr *CondAttr) c.Int { return 0 } + +// llgo:link (*CondAttr).Destroy C.pthread_condattr_destroy +func (a *CondAttr) Destroy() {} + +// llgo:link (*CondAttr).SetClock C.pthread_condattr_setclock +func (a *CondAttr) SetClock(clock time.ClockidT) c.Int { return 0 } + +// llgo:link (*CondAttr).GetClock C.pthread_condattr_getclock +func (a *CondAttr) GetClock(clock *time.ClockidT) c.Int { return 0 } + +// ----------------------------------------------------------------------------- + +// Cond is a condition variable. +type Cond C.pthread_cond_t + +// llgo:link (*Cond).Init C.pthread_cond_init +func (c *Cond) Init(attr *CondAttr) c.Int { return 0 } + +// llgo:link (*Cond).Destroy C.pthread_cond_destroy +func (c *Cond) Destroy() {} + +// llgo:link (*Cond).Signal C.pthread_cond_signal +func (c *Cond) Signal() c.Int { return 0 } + +// llgo:link (*Cond).Broadcast C.pthread_cond_broadcast +func (c *Cond) Broadcast() c.Int { return 0 } + +// llgo:link (*Cond).Wait C.pthread_cond_wait +func (c *Cond) Wait(m *Mutex) c.Int { return 0 } + +// llgo:link (*Cond).TimedWait C.pthread_cond_timedwait +func (c *Cond) TimedWait(m *Mutex, abstime *time.Timespec) c.Int { return 0 } + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/signal/signal.go b/runtime/internal/clite/signal/signal.go new file mode 100644 index 00000000..9d071978 --- /dev/null +++ b/runtime/internal/clite/signal/signal.go @@ -0,0 +1,32 @@ +package signal + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) +import "C" + +const ( + LLGoPackage = "link" +) + +//llgo:type C +type SignalHandler func(c.Int) + +//llgo:type C +type sigactiont struct { + handler SignalHandler + tramp unsafe.Pointer + mask c.Int + flags c.Int +} + +//go:linkname sigaction C.sigaction +func sigaction(sig c.Int, act, old *sigactiont) c.Int + +func Signal(sig c.Int, hanlder SignalHandler) c.Int { + var act sigactiont + act.handler = hanlder + return sigaction(sig, &act, nil) +} diff --git a/runtime/internal/clite/sync/atomic/atomic.go b/runtime/internal/clite/sync/atomic/atomic.go new file mode 100644 index 00000000..395de99c --- /dev/null +++ b/runtime/internal/clite/sync/atomic/atomic.go @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 atomic + +import ( + "unsafe" +) + +const ( + LLGoPackage = "decl" +) + +type valtype interface { + ~int | ~uint | ~uintptr | ~int32 | ~uint32 | ~int64 | ~uint64 | ~unsafe.Pointer +} + +// llgo:link Add llgo.atomicAdd +func Add[T valtype](ptr *T, v T) T { return v } + +// llgo:link Sub llgo.atomicSub +func Sub[T valtype](ptr *T, v T) T { return v } + +// llgo:link And llgo.atomicAnd +func And[T valtype](ptr *T, v T) T { return v } + +// llgo:link NotAnd llgo.atomicNand +func NotAnd[T valtype](ptr *T, v T) T { return v } + +// llgo:link Or llgo.atomicOr +func Or[T valtype](ptr *T, v T) T { return v } + +// llgo:link Xor llgo.atomicXor +func Xor[T valtype](ptr *T, v T) T { return v } + +// llgo:link Max llgo.atomicMax +func Max[T valtype](ptr *T, v T) T { return v } + +// llgo:link Min llgo.atomicMin +func Min[T valtype](ptr *T, v T) T { return v } + +// llgo:link UMax llgo.atomicUMax +func UMax[T valtype](ptr *T, v T) T { return v } + +// llgo:link UMin llgo.atomicUMin +func UMin[T valtype](ptr *T, v T) T { return v } + +// llgo:link Load llgo.atomicLoad +func Load[T valtype](ptr *T) T { return *ptr } + +// llgo:link Store llgo.atomicStore +func Store[T valtype](ptr *T, v T) {} + +// llgo:link Exchange llgo.atomicXchg +func Exchange[T valtype](ptr *T, v T) T { return v } + +// llgo:link CompareAndExchange llgo.atomicCmpXchg +func CompareAndExchange[T valtype](ptr *T, old, new T) (T, bool) { return old, false } diff --git a/runtime/internal/clite/syscall/syscall.go b/runtime/internal/clite/syscall/syscall.go new file mode 100644 index 00000000..e9a08e06 --- /dev/null +++ b/runtime/internal/clite/syscall/syscall.go @@ -0,0 +1,32 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 syscall + +const ( + LLGoPackage = "noinit" +) + +type Errno = uintptr + +// A Signal is a number describing a process signal. +// It implements the os.Signal interface. +type Signal = int + +// Unix returns the time stored in ts as seconds plus nanoseconds. +func (ts *Timespec) Unix() (sec int64, nsec int64) { + return int64(ts.Sec), int64(ts.Nsec) +} diff --git a/runtime/internal/clite/syscall/unix/at_sysnum_darwin.go b/runtime/internal/clite/syscall/unix/at_sysnum_darwin.go new file mode 100644 index 00000000..208ff34d --- /dev/null +++ b/runtime/internal/clite/syscall/unix/at_sysnum_darwin.go @@ -0,0 +1,10 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unix + +const AT_REMOVEDIR = 0x80 +const AT_SYMLINK_NOFOLLOW = 0x0020 + +const UTIME_OMIT = -0x2 diff --git a/runtime/internal/clite/syscall/unix/at_sysnum_dragonfly.go b/runtime/internal/clite/syscall/unix/at_sysnum_dragonfly.go new file mode 100644 index 00000000..da9fded2 --- /dev/null +++ b/runtime/internal/clite/syscall/unix/at_sysnum_dragonfly.go @@ -0,0 +1,10 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unix + +const AT_REMOVEDIR = 0x2 +const AT_SYMLINK_NOFOLLOW = 0x1 + +const UTIME_OMIT = -0x1 diff --git a/runtime/internal/clite/syscall/unix/at_sysnum_freebsd.go b/runtime/internal/clite/syscall/unix/at_sysnum_freebsd.go new file mode 100644 index 00000000..7ecbf875 --- /dev/null +++ b/runtime/internal/clite/syscall/unix/at_sysnum_freebsd.go @@ -0,0 +1,12 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unix + +const ( + AT_REMOVEDIR = 0x800 + AT_SYMLINK_NOFOLLOW = 0x200 + + UTIME_OMIT = -0x2 +) diff --git a/runtime/internal/clite/syscall/unix/at_sysnum_linux.go b/runtime/internal/clite/syscall/unix/at_sysnum_linux.go new file mode 100644 index 00000000..7d3816e0 --- /dev/null +++ b/runtime/internal/clite/syscall/unix/at_sysnum_linux.go @@ -0,0 +1,14 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unix + +const ( + AT_EACCESS = 0x200 + AT_FDCWD = -0x64 + AT_REMOVEDIR = 0x200 + AT_SYMLINK_NOFOLLOW = 0x100 + + UTIME_OMIT = 0x3ffffffe +) diff --git a/runtime/internal/clite/syscall/unix/at_sysnum_netbsd.go b/runtime/internal/clite/syscall/unix/at_sysnum_netbsd.go new file mode 100644 index 00000000..e9575310 --- /dev/null +++ b/runtime/internal/clite/syscall/unix/at_sysnum_netbsd.go @@ -0,0 +1,10 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unix + +const AT_REMOVEDIR = 0x800 +const AT_SYMLINK_NOFOLLOW = 0x200 + +const UTIME_OMIT = (1 << 30) - 2 diff --git a/runtime/internal/clite/syscall/unix/at_sysnum_openbsd.go b/runtime/internal/clite/syscall/unix/at_sysnum_openbsd.go new file mode 100644 index 00000000..a26c9072 --- /dev/null +++ b/runtime/internal/clite/syscall/unix/at_sysnum_openbsd.go @@ -0,0 +1,10 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package unix + +const AT_REMOVEDIR = 0x08 +const AT_SYMLINK_NOFOLLOW = 0x02 + +const UTIME_OMIT = -0x1 diff --git a/internal/lib/internal/abi/abi.go b/runtime/internal/clite/syscall/unix/unix.go similarity index 83% rename from internal/lib/internal/abi/abi.go rename to runtime/internal/clite/syscall/unix/unix.go index a945995d..ab5144f6 100644 --- a/internal/lib/internal/abi/abi.go +++ b/runtime/internal/clite/syscall/unix/unix.go @@ -14,13 +14,8 @@ * limitations under the License. */ -package abi +package unix -// llgo:skipall -import ( - _ "unsafe" - - "github.com/goplus/llgo/internal/abi" +const ( + LLGoPackage = "decl" ) - -type InterfaceType = abi.InterfaceType diff --git a/runtime/internal/clite/syscall/zerrors_aix_ppc64.go b/runtime/internal/clite/syscall/zerrors_aix_ppc64.go new file mode 100644 index 00000000..5544610e --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_aix_ppc64.go @@ -0,0 +1,1153 @@ +// mkerrors.sh -maix64 +// Code generated by the command above; DO NOT EDIT. + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -maix64 _const.go + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_BYPASS = 0x19 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_INTF = 0x14 + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_MAX = 0x1e + AF_NDD = 0x17 + AF_NETWARE = 0x16 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_RIF = 0x15 + AF_ROUTE = 0x11 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_802_3 = 0x6 + ARPHRD_802_5 = 0x6 + ARPHRD_ETHER = 0x1 + ARPHRD_FDDI = 0x1 + B0 = 0x0 + B110 = 0x3 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2400 = 0xb + B300 = 0x7 + B38400 = 0xf + B4800 = 0xc + B50 = 0x1 + B600 = 0x8 + B75 = 0x2 + B9600 = 0xd + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x800 + CREAD = 0x80 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIOCGIFCONF = -0x3fef96dc + CSIZE = 0x30 + CSMAP_DIR = "/usr/lib/nls/csmap/" + CSTART = '\021' + CSTOP = '\023' + CSTOPB = 0x40 + CSUSP = 0x1a + ECHO = 0x8 + ECHOCTL = 0x20000 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x80000 + ECHONL = 0x40 + ECHOPRT = 0x40000 + ECH_ICMPID = 0x2 + ETHERNET_CSMACD = 0x6 + EVENP = 0x80 + EXCONTINUE = 0x0 + EXDLOK = 0x3 + EXIO = 0x2 + EXPGIO = 0x0 + EXRESUME = 0x2 + EXRETURN = 0x1 + EXSIG = 0x4 + EXTA = 0xe + EXTB = 0xf + EXTRAP = 0x1 + EYEC_RTENTRYA = 0x257274656e747241 + EYEC_RTENTRYF = 0x257274656e747246 + E_ACC = 0x0 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0xfffe + FLUSHBAND = 0x40 + FLUSHLOW = 0x8 + FLUSHO = 0x100000 + FLUSHR = 0x1 + FLUSHRW = 0x3 + FLUSHW = 0x2 + F_CLOSEM = 0xa + F_DUP2FD = 0xe + F_DUPFD = 0x0 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETLK64 = 0xb + F_GETOWN = 0x8 + F_LOCK = 0x1 + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLK64 = 0xc + F_SETLKW = 0xd + F_SETLKW64 = 0xd + F_SETOWN = 0x9 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_TSTLK = 0xf + F_ULOCK = 0x0 + F_UNLCK = 0x3 + F_WRLCK = 0x2 + HUPCL = 0x400 + ICANON = 0x2 + ICMP6_FILTER = 0x26 + ICMP6_SEC_SEND_DEL = 0x46 + ICMP6_SEC_SEND_GET = 0x47 + ICMP6_SEC_SEND_SET = 0x44 + ICMP6_SEC_SEND_SET_CGA_ADDR = 0x45 + ICRNL = 0x100 + IEXTEN = 0x200000 + IFA_FIRSTALIAS = 0x2000 + IFA_ROUTE = 0x1 + IFF_64BIT = 0x4000000 + IFF_ALLCAST = 0x20000 + IFF_ALLMULTI = 0x200 + IFF_BPF = 0x8000000 + IFF_BRIDGE = 0x40000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x80c52 + IFF_CHECKSUM_OFFLOAD = 0x10000000 + IFF_D1 = 0x8000 + IFF_D2 = 0x4000 + IFF_D3 = 0x2000 + IFF_D4 = 0x1000 + IFF_DEBUG = 0x4 + IFF_DEVHEALTH = 0x4000 + IFF_DO_HW_LOOPBACK = 0x10000 + IFF_GROUP_ROUTING = 0x2000000 + IFF_IFBUFMGT = 0x800000 + IFF_LINK0 = 0x100000 + IFF_LINK1 = 0x200000 + IFF_LINK2 = 0x400000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x80000 + IFF_NOARP = 0x80 + IFF_NOECHO = 0x800 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_PSEG = 0x40000000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_SNAP = 0x8000 + IFF_TCP_DISABLE_CKSUM = 0x20000000 + IFF_TCP_NOCKSUM = 0x1000000 + IFF_UP = 0x1 + IFF_VIPA = 0x80000000 + IFNAMSIZ = 0x10 + IFO_FLUSH = 0x1 + IFT_1822 = 0x2 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_CEPT = 0x13 + IFT_CLUSTER = 0x3e + IFT_DS3 = 0x1e + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FCS = 0x3a + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIFTUNNEL = 0x3c + IFT_HDH1822 = 0x3 + IFT_HF = 0x3d + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IB = 0xc7 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SN = 0x38 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SP = 0x39 + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TUNNEL = 0x3b + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_VIPA = 0x37 + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x10000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_USE = 0x1 + IPPROTO_AH = 0x33 + IPPROTO_BIP = 0x53 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GIF = 0x8c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_LOCAL = 0x3f + IPPROTO_MAX = 0x100 + IPPROTO_MH = 0x87 + IPPROTO_NONE = 0x3b + IPPROTO_PUP = 0xc + IPPROTO_QOS = 0x2d + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPV6_ADDRFORM = 0x16 + IPV6_ADDR_PREFERENCES = 0x4a + IPV6_ADD_MEMBERSHIP = 0xc + IPV6_AIXRAWSOCKET = 0x39 + IPV6_CHECKSUM = 0x27 + IPV6_DONTFRAG = 0x2d + IPV6_DROP_MEMBERSHIP = 0xd + IPV6_DSTOPTS = 0x36 + IPV6_FLOWINFO_FLOWLABEL = 0xffffff + IPV6_FLOWINFO_PRIFLOW = 0xfffffff + IPV6_FLOWINFO_PRIORITY = 0xf000000 + IPV6_FLOWINFO_SRFLAG = 0x10000000 + IPV6_FLOWINFO_VERSION = 0xf0000000 + IPV6_HOPLIMIT = 0x28 + IPV6_HOPOPTS = 0x34 + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MIPDSTOPTS = 0x36 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_NOPROBE = 0x1c + IPV6_PATHMTU = 0x2e + IPV6_PKTINFO = 0x21 + IPV6_PKTOPTIONS = 0x24 + IPV6_PRIORITY_10 = 0xa000000 + IPV6_PRIORITY_11 = 0xb000000 + IPV6_PRIORITY_12 = 0xc000000 + IPV6_PRIORITY_13 = 0xd000000 + IPV6_PRIORITY_14 = 0xe000000 + IPV6_PRIORITY_15 = 0xf000000 + IPV6_PRIORITY_8 = 0x8000000 + IPV6_PRIORITY_9 = 0x9000000 + IPV6_PRIORITY_BULK = 0x4000000 + IPV6_PRIORITY_CONTROL = 0x7000000 + IPV6_PRIORITY_FILLER = 0x1000000 + IPV6_PRIORITY_INTERACTIVE = 0x6000000 + IPV6_PRIORITY_RESERVED1 = 0x3000000 + IPV6_PRIORITY_RESERVED2 = 0x5000000 + IPV6_PRIORITY_UNATTENDED = 0x2000000 + IPV6_PRIORITY_UNCHARACTERIZED = 0x0 + IPV6_RECVDSTOPTS = 0x38 + IPV6_RECVHOPLIMIT = 0x29 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVHOPS = 0x22 + IPV6_RECVIF = 0x1e + IPV6_RECVPATHMTU = 0x2f + IPV6_RECVPKTINFO = 0x23 + IPV6_RECVRTHDR = 0x33 + IPV6_RECVSRCRT = 0x1d + IPV6_RECVTCLASS = 0x2a + IPV6_RTHDR = 0x32 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RTHDR_TYPE_2 = 0x2 + IPV6_SENDIF = 0x1f + IPV6_SRFLAG_LOOSE = 0x0 + IPV6_SRFLAG_STRICT = 0x10000000 + IPV6_TCLASS = 0x2b + IPV6_TOKEN_LENGTH = 0x40 + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2c + IPV6_V6ONLY = 0x25 + IPV6_VERSION = 0x60000000 + IP_ADDRFORM = 0x16 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x3c + IP_BLOCK_SOURCE = 0x3a + IP_BROADCAST_IF = 0x10 + IP_CACHE_LINE_SIZE = 0x80 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DHCPMODE = 0x11 + IP_DONTFRAG = 0x19 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x3d + IP_FINDPMTU = 0x1a + IP_HDRINCL = 0x2 + IP_INC_MEMBERSHIPS = 0x14 + IP_INIT_MEMBERSHIP = 0x14 + IP_MAXPACKET = 0xffff + IP_MF = 0x2000 + IP_MSS = 0x240 + IP_MULTICAST_HOPS = 0xa + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OPT = 0x1b + IP_OPTIONS = 0x1 + IP_PMTUAGE = 0x1b + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVIFINFO = 0xf + IP_RECVINTERFACE = 0x20 + IP_RECVMACHDR = 0xe + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x22 + IP_RETOPTS = 0x8 + IP_SOURCE_FILTER = 0x48 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x3b + IP_UNICAST_HOPS = 0x4 + ISIG = 0x1 + ISTRIP = 0x20 + IXANY = 0x1000 + IXOFF = 0x400 + IXON = 0x200 + I_FLUSH = 0x20005305 + LNOFLSH = 0x8000 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x10 + MAP_ANONYMOUS = 0x10 + MAP_FILE = 0x0 + MAP_FIXED = 0x100 + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_TYPE = 0xf0 + MAP_VARIABLE = 0x0 + MCL_CURRENT = 0x100 + MCL_FUTURE = 0x200 + MSG_ANY = 0x4 + MSG_ARGEXT = 0x400 + MSG_BAND = 0x2 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_EOR = 0x8 + MSG_HIPRI = 0x1 + MSG_MAXIOVLEN = 0x10 + MSG_MPEG2 = 0x80 + MSG_NONBLOCK = 0x4000 + MSG_NOSIGNAL = 0x100 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITFORONE = 0x200 + MS_ASYNC = 0x10 + MS_EINTR = 0x80 + MS_INVALIDATE = 0x40 + MS_PER_SEC = 0x3e8 + MS_SYNC = 0x20 + NOFLSH = 0x80 + NOFLUSH = 0x80000000 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + ONOEOT = 0x80000 + OPOST = 0x1 + O_ACCMODE = 0x23 + O_APPEND = 0x8 + O_CIO = 0x80 + O_CIOR = 0x800000000 + O_CLOEXEC = 0x800000 + O_CREAT = 0x100 + O_DEFER = 0x2000 + O_DELAY = 0x4000 + O_DIRECT = 0x8000000 + O_DIRECTORY = 0x80000 + O_DSYNC = 0x400000 + O_EFSOFF = 0x400000000 + O_EFSON = 0x200000000 + O_EXCL = 0x400 + O_EXEC = 0x20 + O_LARGEFILE = 0x4000000 + O_NDELAY = 0x8000 + O_NOCACHE = 0x100000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x1000000 + O_NONBLOCK = 0x4 + O_NONE = 0x3 + O_NSHARE = 0x10000 + O_RAW = 0x100000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSHARE = 0x1000 + O_RSYNC = 0x200000 + O_SEARCH = 0x20 + O_SNAPSHOT = 0x40 + O_SYNC = 0x10 + O_TRUNC = 0x200 + O_TTY_INIT = 0x0 + O_WRONLY = 0x1 + PARENB = 0x100 + PAREXT = 0x100000 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_64BIT = 0x20 + PR_ADDR = 0x2 + PR_ARGEXT = 0x400 + PR_ATOMIC = 0x1 + PR_CONNREQUIRED = 0x4 + PR_FASTHZ = 0x5 + PR_INP = 0x40 + PR_INTRLEVEL = 0x8000 + PR_MLS = 0x100 + PR_MLS_1_LABEL = 0x200 + PR_NOEOR = 0x4000 + PR_RIGHTS = 0x10 + PR_SLOWHZ = 0x2 + PR_WANTRCVD = 0x8 + PT_ATTACH = 0x1e + PT_CLEAR = 0x26 + PT_COMMAND_MAX = 0x45 + PT_CONTINUE = 0x7 + PT_DETACH = 0x1f + PT_GET_UKEY = 0x40 + PT_KILL = 0x8 + PT_LDINFO = 0x22 + PT_LDXINFO = 0x27 + PT_MULTI = 0x23 + PT_NEXT = 0x24 + PT_QUERY = 0x28 + PT_READ_BLOCK = 0x11 + PT_READ_D = 0x2 + PT_READ_FPR = 0xc + PT_READ_GPR = 0xb + PT_READ_I = 0x1 + PT_REATT = 0x21 + PT_REGSET = 0x20 + PT_SET = 0x25 + PT_STEP = 0x9 + PT_TRACE_ME = 0x0 + PT_WATCH = 0x29 + PT_WRITE_BLOCK = 0x13 + PT_WRITE_D = 0x5 + PT_WRITE_FPR = 0xf + PT_WRITE_GPR = 0xe + PT_WRITE_I = 0x4 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x7 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DOWNSTREAM = 0x100 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_ACTIVE_DGD = 0x1000000 + RTF_BCE = 0x80000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_BUL = 0x2000 + RTF_CLONE = 0x10000 + RTF_CLONED = 0x20000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FREE_IN_PROG = 0x4000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PERMANENT6 = 0x8000000 + RTF_PINNED = 0x100000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_SMALLMTU = 0x40000 + RTF_STATIC = 0x800 + RTF_STOPSRCH = 0x2000000 + RTF_UNREACHABLE = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_EXPIRE = 0xf + RTM_GET = 0x4 + RTM_GETNEXT = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTLOST = 0x10 + RTM_RTTUNIT = 0xf4240 + RTM_SAMEADDR = 0x12 + RTM_SET = 0x13 + RTM_VERSION = 0x2 + RTM_VERSION_GR = 0x4 + RTM_VERSION_GR_COMPAT = 0x3 + RTM_VERSION_POLICY = 0x5 + RTM_VERSION_POLICY_EXT = 0x6 + RTM_VERSION_POLICY_PRFN = 0x7 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIGQUEUE_MAX = 0x20 + SIOCADDIFVIPA = 0x20006942 + SIOCADDMTU = -0x7ffb9690 + SIOCADDMULTI = -0x7fdf96cf + SIOCADDNETID = -0x7fd796a9 + SIOCADDRT = -0x7fc78df6 + SIOCAIFADDR = -0x7fbf96e6 + SIOCATMARK = 0x40047307 + SIOCDARP = -0x7fb396e0 + SIOCDELIFVIPA = 0x20006943 + SIOCDELMTU = -0x7ffb968f + SIOCDELMULTI = -0x7fdf96ce + SIOCDELPMTU = -0x7fd78ff6 + SIOCDELRT = -0x7fc78df5 + SIOCDIFADDR = -0x7fd796e7 + SIOCDNETOPT = -0x3ffe9680 + SIOCDX25XLATE = -0x7fd7969b + SIOCFIFADDR = -0x7fdf966d + SIOCGARP = -0x3fb396da + SIOCGETMTUS = 0x2000696f + SIOCGETSGCNT = -0x3feb8acc + SIOCGETVIFCNT = -0x3feb8acd + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = -0x3fd796df + SIOCGIFADDRS = 0x2000698c + SIOCGIFBAUDRATE = -0x3fd79693 + SIOCGIFBRDADDR = -0x3fd796dd + SIOCGIFCONF = -0x3fef96bb + SIOCGIFCONFGLOB = -0x3fef9670 + SIOCGIFDSTADDR = -0x3fd796de + SIOCGIFFLAGS = -0x3fd796ef + SIOCGIFGIDLIST = 0x20006968 + SIOCGIFHWADDR = -0x3fab966b + SIOCGIFMETRIC = -0x3fd796e9 + SIOCGIFMTU = -0x3fd796aa + SIOCGIFNETMASK = -0x3fd796db + SIOCGIFOPTIONS = -0x3fd796d6 + SIOCGISNO = -0x3fd79695 + SIOCGLOADF = -0x3ffb967e + SIOCGLOWAT = 0x40047303 + SIOCGNETOPT = -0x3ffe96a5 + SIOCGNETOPT1 = -0x3fdf967f + SIOCGNMTUS = 0x2000696e + SIOCGPGRP = 0x40047309 + SIOCGSIZIFCONF = 0x4004696a + SIOCGSRCFILTER = -0x3fe796cb + SIOCGTUNEPHASE = -0x3ffb9676 + SIOCGX25XLATE = -0x3fd7969c + SIOCIFATTACH = -0x7fdf9699 + SIOCIFDETACH = -0x7fdf969a + SIOCIFGETPKEY = -0x7fdf969b + SIOCIF_ATM_DARP = -0x7fdf9683 + SIOCIF_ATM_DUMPARP = -0x7fdf9685 + SIOCIF_ATM_GARP = -0x7fdf9682 + SIOCIF_ATM_IDLE = -0x7fdf9686 + SIOCIF_ATM_SARP = -0x7fdf9681 + SIOCIF_ATM_SNMPARP = -0x7fdf9687 + SIOCIF_ATM_SVC = -0x7fdf9684 + SIOCIF_ATM_UBR = -0x7fdf9688 + SIOCIF_DEVHEALTH = -0x7ffb966c + SIOCIF_IB_ARP_INCOMP = -0x7fdf9677 + SIOCIF_IB_ARP_TIMER = -0x7fdf9678 + SIOCIF_IB_CLEAR_PINFO = -0x3fdf966f + SIOCIF_IB_DEL_ARP = -0x7fdf967f + SIOCIF_IB_DEL_PINFO = -0x3fdf9670 + SIOCIF_IB_DUMP_ARP = -0x7fdf9680 + SIOCIF_IB_GET_ARP = -0x7fdf967e + SIOCIF_IB_GET_INFO = -0x3f879675 + SIOCIF_IB_GET_STATS = -0x3f879672 + SIOCIF_IB_NOTIFY_ADDR_REM = -0x3f87966a + SIOCIF_IB_RESET_STATS = -0x3f879671 + SIOCIF_IB_RESIZE_CQ = -0x7fdf9679 + SIOCIF_IB_SET_ARP = -0x7fdf967d + SIOCIF_IB_SET_PKEY = -0x7fdf967c + SIOCIF_IB_SET_PORT = -0x7fdf967b + SIOCIF_IB_SET_QKEY = -0x7fdf9676 + SIOCIF_IB_SET_QSIZE = -0x7fdf967a + SIOCLISTIFVIPA = 0x20006944 + SIOCSARP = -0x7fb396e2 + SIOCSHIWAT = 0xffffffff80047300 + SIOCSIFADDR = -0x7fd796f4 + SIOCSIFADDRORI = -0x7fdb9673 + SIOCSIFBRDADDR = -0x7fd796ed + SIOCSIFDSTADDR = -0x7fd796f2 + SIOCSIFFLAGS = -0x7fd796f0 + SIOCSIFGIDLIST = 0x20006969 + SIOCSIFMETRIC = -0x7fd796e8 + SIOCSIFMTU = -0x7fd796a8 + SIOCSIFNETDUMP = -0x7fd796e4 + SIOCSIFNETMASK = -0x7fd796ea + SIOCSIFOPTIONS = -0x7fd796d7 + SIOCSIFSUBCHAN = -0x7fd796e5 + SIOCSISNO = -0x7fd79694 + SIOCSLOADF = -0x3ffb967d + SIOCSLOWAT = 0xffffffff80047302 + SIOCSNETOPT = -0x7ffe96a6 + SIOCSPGRP = 0xffffffff80047308 + SIOCSX25XLATE = -0x7fd7969d + SOCK_CONN_DGRAM = 0x6 + SOCK_DGRAM = 0x2 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x400 + SO_ACCEPTCONN = 0x2 + SO_AUDIT = 0x8000 + SO_BROADCAST = 0x20 + SO_CKSUMRECV = 0x800 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_KERNACCEPT = 0x2000 + SO_LINGER = 0x80 + SO_NOMULTIPATH = 0x4000 + SO_NOREUSEADDR = 0x1000 + SO_OOBINLINE = 0x100 + SO_PEERID = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMPNS = 0x100a + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USE_IFBUFS = 0x400 + S_BANDURG = 0x400 + S_EMODFMT = 0x3c000000 + S_ENFMT = 0x400 + S_ERROR = 0x100 + S_HANGUP = 0x200 + S_HIPRI = 0x2 + S_ICRYPTO = 0x80000 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFJOURNAL = 0x10000 + S_IFLNK = 0xa000 + S_IFMPX = 0x2200 + S_IFMT = 0xf000 + S_IFPDIR = 0x4000000 + S_IFPSDIR = 0x8000000 + S_IFPSSDIR = 0xc000000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFSYSEA = 0x30000000 + S_INPUT = 0x1 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_ITCB = 0x1000000 + S_ITP = 0x800000 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXACL = 0x2000000 + S_IXATTR = 0x40000 + S_IXGRP = 0x8 + S_IXINTERFACE = 0x100000 + S_IXMOD = 0x40000000 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + S_MSG = 0x8 + S_OUTPUT = 0x4 + S_RDBAND = 0x20 + S_RDNORM = 0x10 + S_RESERVED1 = 0x20000 + S_RESERVED2 = 0x200000 + S_RESERVED3 = 0x400000 + S_RESERVED4 = 0x80000000 + S_RESFMT1 = 0x10000000 + S_RESFMT10 = 0x34000000 + S_RESFMT11 = 0x38000000 + S_RESFMT12 = 0x3c000000 + S_RESFMT2 = 0x14000000 + S_RESFMT3 = 0x18000000 + S_RESFMT4 = 0x1c000000 + S_RESFMT5 = 0x20000000 + S_RESFMT6 = 0x24000000 + S_RESFMT7 = 0x28000000 + S_RESFMT8 = 0x2c000000 + S_WRBAND = 0x80 + S_WRNORM = 0x40 + TCIFLUSH = 0x0 + TCIOFLUSH = 0x2 + TCOFLUSH = 0x1 + TCP_24DAYS_WORTH_OF_SLOWTICKS = 0x3f4800 + TCP_ACLADD = 0x23 + TCP_ACLBIND = 0x26 + TCP_ACLCLEAR = 0x22 + TCP_ACLDEL = 0x24 + TCP_ACLDENY = 0x8 + TCP_ACLFLUSH = 0x21 + TCP_ACLGID = 0x1 + TCP_ACLLS = 0x25 + TCP_ACLSUBNET = 0x4 + TCP_ACLUID = 0x2 + TCP_CWND_DF = 0x16 + TCP_CWND_IF = 0x15 + TCP_DELAY_ACK_FIN = 0x2 + TCP_DELAY_ACK_SYN = 0x1 + TCP_FASTNAME = 0x101080a + TCP_KEEPCNT = 0x13 + TCP_KEEPIDLE = 0x11 + TCP_KEEPINTVL = 0x12 + TCP_LSPRIV = 0x29 + TCP_LUID = 0x20 + TCP_MAXBURST = 0x8 + TCP_MAXDF = 0x64 + TCP_MAXIF = 0x64 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAXWINDOWSCALE = 0xe + TCP_MAX_SACK = 0x4 + TCP_MSS = 0x5b4 + TCP_NODELAY = 0x1 + TCP_NODELAYACK = 0x14 + TCP_NOREDUCE_CWND_EXIT_FRXMT = 0x19 + TCP_NOREDUCE_CWND_IN_FRXMT = 0x18 + TCP_NOTENTER_SSTART = 0x17 + TCP_OPT = 0x19 + TCP_RFC1323 = 0x4 + TCP_SETPRIV = 0x27 + TCP_STDURG = 0x10 + TCP_TIMESTAMP_OPTLEN = 0xc + TCP_UNSETPRIV = 0x28 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0xffffffff80047462 + TIOCEXCL = 0x2000740d + TIOCFLUSH = 0xffffffff80047410 + TIOCGETC = 0x40067412 + TIOCGETD = 0x40047400 + TIOCGETP = 0x40067408 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047448 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCHPCL = 0x20007402 + TIOCLBIC = 0xffffffff8004747e + TIOCLBIS = 0xffffffff8004747f + TIOCLGET = 0x4004747c + TIOCLSET = 0xffffffff8004747d + TIOCMBIC = 0xffffffff8004746b + TIOCMBIS = 0xffffffff8004746c + TIOCMGET = 0x4004746a + TIOCMIWAIT = 0xffffffff80047464 + TIOCMODG = 0x40047403 + TIOCMODS = 0xffffffff80047404 + TIOCMSET = 0xffffffff8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0xffffffff80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0xffffffff80047469 + TIOCSBRK = 0x2000747b + TIOCSDTR = 0x20007479 + TIOCSETC = 0xffffffff80067411 + TIOCSETD = 0xffffffff80047401 + TIOCSETN = 0xffffffff8006740a + TIOCSETP = 0xffffffff80067409 + TIOCSLTC = 0xffffffff80067475 + TIOCSPGRP = 0xffffffff80047476 + TIOCSSIZE = 0xffffffff80087467 + TIOCSTART = 0x2000746e + TIOCSTI = 0xffffffff80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0xffffffff80087467 + TIOCUCNTL = 0xffffffff80047466 + TOSTOP = 0x10000 + VDISCRD = 0xc + VDSUSP = 0xa + VEOF = 0x4 + VEOL = 0x5 + VEOL2 = 0x6 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xe + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xb + VSTART = 0x7 + VSTOP = 0x8 + VSTRT = 0x7 + VSUSP = 0x9 + VT0 = 0x0 + VT1 = 0x8000 + VTDELAY = 0x2000 + VTDLY = 0x8000 + VTIME = 0x5 + VWERSE = 0xd + WPARSTART = 0x1 + WPARSTOP = 0x2 + WPARTTYNAME = "Global" + _FDATAFLUSH = 0x2000000000 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x43) + EADDRNOTAVAIL = Errno(0x44) + EAFNOSUPPORT = Errno(0x42) + EAGAIN = Errno(0xb) + EALREADY = Errno(0x38) + EBADF = Errno(0x9) + EBADMSG = Errno(0x78) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x75) + ECHILD = Errno(0xa) + ECHRNG = Errno(0x25) + ECLONEME = Errno(0x52) + ECONNABORTED = Errno(0x48) + ECONNREFUSED = Errno(0x4f) + ECONNRESET = Errno(0x49) + ECORRUPT = Errno(0x59) + EDEADLK = Errno(0x2d) + EDESTADDREQ = Errno(0x3a) + EDESTADDRREQ = Errno(0x3a) + EDIST = Errno(0x35) + EDOM = Errno(0x21) + EDQUOT = Errno(0x58) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFORMAT = Errno(0x30) + EHOSTDOWN = Errno(0x50) + EHOSTUNREACH = Errno(0x51) + EIDRM = Errno(0x24) + EILSEQ = Errno(0x74) + EINPROGRESS = Errno(0x37) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x4b) + EISDIR = Errno(0x15) + EL2HLT = Errno(0x2c) + EL2NSYNC = Errno(0x26) + EL3HLT = Errno(0x27) + EL3RST = Errno(0x28) + ELNRNG = Errno(0x29) + ELOOP = Errno(0x55) + EMEDIA = Errno(0x6e) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x3b) + EMULTIHOP = Errno(0x7d) + ENAMETOOLONG = Errno(0x56) + ENETDOWN = Errno(0x45) + ENETRESET = Errno(0x47) + ENETUNREACH = Errno(0x46) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x70) + ENOBUFS = Errno(0x4a) + ENOCONNECT = Errno(0x32) + ENOCSI = Errno(0x2b) + ENODATA = Errno(0x7a) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x31) + ENOLINK = Errno(0x7e) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x23) + ENOPROTOOPT = Errno(0x3d) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x76) + ENOSTR = Errno(0x7b) + ENOSYS = Errno(0x6d) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x4c) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x11) + ENOTREADY = Errno(0x2e) + ENOTRECOVERABLE = Errno(0x5e) + ENOTRUST = Errno(0x72) + ENOTSOCK = Errno(0x39) + ENOTSUP = Errno(0x7c) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x40) + EOVERFLOW = Errno(0x7f) + EOWNERDEAD = Errno(0x5f) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x41) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x53) + EPROTO = Errno(0x79) + EPROTONOSUPPORT = Errno(0x3e) + EPROTOTYPE = Errno(0x3c) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x5d) + ERESTART = Errno(0x52) + EROFS = Errno(0x1e) + ESAD = Errno(0x71) + ESHUTDOWN = Errno(0x4d) + ESOCKTNOSUPPORT = Errno(0x3f) + ESOFT = Errno(0x6f) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x34) + ESYSERROR = Errno(0x5a) + ETIME = Errno(0x77) + ETIMEDOUT = Errno(0x4e) + ETOOMANYREFS = Errno(0x73) + ETXTBSY = Errno(0x1a) + EUNATCH = Errno(0x2a) + EUSERS = Errno(0x54) + EWOULDBLOCK = Errno(0xb) + EWRPROTECT = Errno(0x2f) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGAIO = Signal(0x17) + SIGALRM = Signal(0xe) + SIGALRM1 = Signal(0x26) + SIGBUS = Signal(0xa) + SIGCAPI = Signal(0x31) + SIGCHLD = Signal(0x14) + SIGCLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGCPUFAIL = Signal(0x3b) + SIGDANGER = Signal(0x21) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGGRANT = Signal(0x3c) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOINT = Signal(0x10) + SIGIOT = Signal(0x6) + SIGKAP = Signal(0x3c) + SIGKILL = Signal(0x9) + SIGLOST = Signal(0x6) + SIGMAX = Signal(0xff) + SIGMAX32 = Signal(0x3f) + SIGMAX64 = Signal(0xff) + SIGMIGRATE = Signal(0x23) + SIGMSG = Signal(0x1b) + SIGPIPE = Signal(0xd) + SIGPOLL = Signal(0x17) + SIGPRE = Signal(0x24) + SIGPROF = Signal(0x20) + SIGPTY = Signal(0x17) + SIGPWR = Signal(0x1d) + SIGQUIT = Signal(0x3) + SIGRECONFIG = Signal(0x3a) + SIGRETRACT = Signal(0x3d) + SIGSAK = Signal(0x3f) + SIGSEGV = Signal(0xb) + SIGSOUND = Signal(0x3e) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGSYSERROR = Signal(0x30) + SIGTALRM = Signal(0x26) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVIRT = Signal(0x25) + SIGVTALRM = Signal(0x22) + SIGWAITING = Signal(0x27) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_darwin_amd64.go b/runtime/internal/clite/syscall/zerrors_darwin_amd64.go new file mode 100644 index 00000000..abba1845 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_darwin_amd64.go @@ -0,0 +1,1279 @@ +// mkerrors.sh -m64 +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m64 _const.go + +//go:build amd64 && darwin + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1c + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1e + AF_IPX = 0x17 + AF_ISDN = 0x1c + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x26 + AF_NATM = 0x1f + AF_NDRV = 0x1b + AF_NETBIOS = 0x21 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PPP = 0x22 + AF_PUP = 0x4 + AF_RESERVED_36 = 0x24 + AF_ROUTE = 0x11 + AF_SIP = 0x18 + AF_SNA = 0xb + AF_SYSTEM = 0x20 + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc00c4279 + BIOCGETIF = 0x4020426b + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044278 + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_NULL = 0x0 + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xc + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_FS = -0x9 + EVFILT_MACHPORT = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xc + EVFILT_THREADMARKER = 0xc + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xa + EVFILT_VM = -0xc + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG0 = 0x1000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_OOBAND = 0x2000 + EV_POLL = 0x1000 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_ADDFILESIGS = 0x3d + F_ADDSIGS = 0x3b + F_ALLOCATEALL = 0x4 + F_ALLOCATECONTIG = 0x2 + F_CHKCLEAN = 0x29 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x43 + F_FLUSH_DATA = 0x28 + F_FREEZE_FS = 0x35 + F_FULLFSYNC = 0x33 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETLKPID = 0x42 + F_GETNOSIGPIPE = 0x4a + F_GETOWN = 0x5 + F_GETPATH = 0x32 + F_GETPATH_MTMINFO = 0x47 + F_GETPROTECTIONCLASS = 0x3f + F_GLOBAL_NOCACHE = 0x37 + F_LOG2PHYS = 0x31 + F_LOG2PHYS_EXT = 0x41 + F_MARKDEPENDENCY = 0x3c + F_NOCACHE = 0x30 + F_NODIRECT = 0x3e + F_OK = 0x0 + F_PATHPKG_CHECK = 0x34 + F_PEOFPOSMODE = 0x3 + F_PREALLOCATE = 0x2a + F_RDADVISE = 0x2c + F_RDAHEAD = 0x2d + F_RDLCK = 0x1 + F_READBOOTSTRAP = 0x2e + F_SETBACKINGSTORE = 0x46 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0x49 + F_SETOWN = 0x6 + F_SETPROTECTIONCLASS = 0x40 + F_SETSIZE = 0x2b + F_THAW_FS = 0x36 + F_UNLCK = 0x2 + F_VOLPOSMODE = 0x4 + F_WRITEBOOTSTRAP = 0x2f + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_CELLULAR = 0xff + IFT_CEPT = 0x13 + IFT_DS3 = 0x1e + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FAITH = 0x38 + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIF = 0x37 + IFT_HDH1822 = 0x3 + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IEEE1394 = 0x90 + IFT_IEEE8023ADLAG = 0x88 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_L2VLAN = 0x87 + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PDP = 0xff + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_STARLAN = 0xb + IFT_STF = 0x39 + IFT_T1 = 0x12 + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LINKLOCALNETNUM = 0xa9fe0000 + IN_LOOPBACKNET = 0x7f + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0xfe + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEP = 0x21 + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_2292DSTOPTS = 0x17 + IPV6_2292HOPLIMIT = 0x14 + IPV6_2292HOPOPTS = 0x16 + IPV6_2292NEXTHOP = 0x15 + IPV6_2292PKTINFO = 0x13 + IPV6_2292PKTOPTIONS = 0x19 + IPV6_2292RTHDR = 0x18 + IPV6_BINDV6ONLY = 0x1b + IPV6_BOUND_IF = 0x7d + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MIN_MEMBERSHIPS = 0x1f + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVTCLASS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x24 + IPV6_UNICAST_HOPS = 0x4 + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BLOCK_SOURCE = 0x48 + IP_BOUND_IF = 0x19 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FAITH = 0x16 + IP_FW_ADD = 0x28 + IP_FW_DEL = 0x29 + IP_FW_FLUSH = 0x2a + IP_FW_GET = 0x2c + IP_FW_RESETLOG = 0x2d + IP_FW_ZERO = 0x2b + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_IFINDEX = 0x42 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_NAT__XXX = 0x37 + IP_OFFMASK = 0x1fff + IP_OLD_FW_ADD = 0x32 + IP_OLD_FW_DEL = 0x33 + IP_OLD_FW_FLUSH = 0x34 + IP_OLD_FW_GET = 0x36 + IP_OLD_FW_RESETLOG = 0x38 + IP_OLD_FW_ZERO = 0x35 + IP_OPTIONS = 0x1 + IP_PKTINFO = 0x1a + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVPKTINFO = 0x1a + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x18 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_STRIPHDR = 0x17 + IP_TOS = 0x3 + IP_TRAFFIC_MGT_BACKGROUND = 0x41 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_CAN_REUSE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_FREE_REUSABLE = 0x7 + MADV_FREE_REUSE = 0x8 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MADV_ZERO_WIRED_PAGES = 0x6 + MAP_ANON = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_JIT = 0x800 + MAP_NOCACHE = 0x400 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_RESERVED0080 = 0x80 + MAP_SHARED = 0x1 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_FLUSH = 0x400 + MSG_HAVEMORE = 0x2000 + MSG_HOLD = 0x800 + MSG_NEEDSA = 0x10000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_RCVMORE = 0x4000 + MSG_SEND = 0x1000 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITSTREAM = 0x200 + MS_ASYNC = 0x1 + MS_DEACTIVATE = 0x8 + MS_INVALIDATE = 0x2 + MS_KILLPAGES = 0x4 + MS_SYNC = 0x10 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_DUMP2 = 0x7 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLIST2 = 0x6 + NET_RT_MAXID = 0xa + NET_RT_STAT = 0x4 + NET_RT_TRASH = 0x5 + NOFLSH = 0x80000000 + NOTE_ABSOLUTE = 0x8 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXITSTATUS = 0x4000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_NONE = 0x80 + NOTE_NSECONDS = 0x4 + NOTE_PCTRLMASK = -0x100000 + NOTE_PDATAMASK = 0xfffff + NOTE_REAP = 0x10000000 + NOTE_RENAME = 0x20 + NOTE_RESOURCEEND = 0x2000000 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_SIGNAL = 0x8000000 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x2 + NOTE_VM_ERROR = 0x10000000 + NOTE_VM_PRESSURE = 0x80000000 + NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 + NOTE_VM_PRESSURE_TERMINATE = 0x40000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFDEL = 0x20000 + OFILL = 0x80 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALERT = 0x20000000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x1000000 + O_CREAT = 0x200 + O_DIRECTORY = 0x100000 + O_DSYNC = 0x400000 + O_EVTONLY = 0x8000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x20000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_POPUP = 0x80000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYMLINK = 0x200000 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PT_ATTACH = 0xa + PT_ATTACHEXC = 0xe + PT_CONTINUE = 0x7 + PT_DENY_ATTACH = 0x1f + PT_DETACH = 0xb + PT_FIRSTMACH = 0x20 + PT_FORCEQUOTA = 0x1e + PT_KILL = 0x8 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_READ_U = 0x3 + PT_SIGEXC = 0xc + PT_STEP = 0x9 + PT_THUPDATE = 0xd + PT_TRACE_ME = 0x0 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + PT_WRITE_U = 0x6 + RLIMIT_AS = 0x5 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CLONING = 0x100 + RTF_CONDEMNED = 0x2000000 + RTF_DELCLONE = 0x80 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_IFREF = 0x4000000 + RTF_IFSCOPE = 0x1000000 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_WASCLONED = 0x20000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_GET2 = 0x14 + RTM_IFINFO = 0xe + RTM_IFINFO2 = 0x12 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_NEWMADDR2 = 0x13 + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIMESTAMP_MONOTONIC = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691d + SIOCARPIPLL = 0xc0206928 + SIOCATMARK = 0x40047307 + SIOCAUTOADDR = 0xc0206926 + SIOCAUTONETMASK = 0x80206927 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFPHYADDR = 0x80206941 + SIOCDLIFADDR = 0x8118691f + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc014721c + SIOCGETVIFCNT = 0xc014721b + SIOCGETVLAN = 0xc020697f + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFALTMTU = 0xc0206948 + SIOCGIFASYNCMAP = 0xc020697c + SIOCGIFBOND = 0xc0206947 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020695b + SIOCGIFCONF = 0xc00c6924 + SIOCGIFDEVMTU = 0xc0206944 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFKPI = 0xc0206987 + SIOCGIFMAC = 0xc0206982 + SIOCGIFMEDIA = 0xc02c6938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206940 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc020693f + SIOCGIFSTATUS = 0xc331693d + SIOCGIFVLAN = 0xc020697f + SIOCGIFWAKEFLAGS = 0xc0206988 + SIOCGLIFADDR = 0xc118691e + SIOCGLIFPHYADDR = 0xc1186943 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCIFCREATE = 0xc0206978 + SIOCIFCREATE2 = 0xc020697a + SIOCIFDESTROY = 0x80206979 + SIOCRSLVMULTI = 0xc010693b + SIOCSDRVSPEC = 0x8028697b + SIOCSETVLAN = 0x8020697e + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFALTMTU = 0x80206945 + SIOCSIFASYNCMAP = 0x8020697d + SIOCSIFBOND = 0x80206946 + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020695a + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFKPI = 0x80206986 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206983 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x8040693e + SIOCSIFPHYS = 0x80206936 + SIOCSIFVLAN = 0x8020697e + SIOCSLIFPHYADDR = 0x81186942 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_DONTTRUNC = 0x2000 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1010 + SO_LINGER = 0x80 + SO_LINGER_SEC = 0x1080 + SO_NKE = 0x1021 + SO_NOADDRERR = 0x1023 + SO_NOSIGPIPE = 0x1022 + SO_NOTIFYCONFLICT = 0x1026 + SO_NP_EXTENSIONS = 0x1083 + SO_NREAD = 0x1020 + SO_NWRITE = 0x1024 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1011 + SO_RANDOMPORT = 0x1082 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_RESTRICTIONS = 0x1081 + SO_RESTRICT_DENYIN = 0x1 + SO_RESTRICT_DENYOUT = 0x2 + SO_RESTRICT_DENYSET = 0x80000000 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSESHAREUID = 0x1025 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TIMESTAMP_MONOTONIC = 0x800 + SO_TYPE = 0x1008 + SO_UPCALLCLOSEWAIT = 0x1027 + SO_USELOOPBACK = 0x40 + SO_WANTMORE = 0x4000 + SO_WANTOOBFLAG = 0x8000 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONNECTIONTIMEOUT = 0x20 + TCP_KEEPALIVE = 0x10 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MINMSS = 0xd8 + TCP_MINMSSOVERLOAD = 0x3e8 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_RXT_CONNDROPTIME = 0x80 + TCP_RXT_FINDROP = 0x100 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCDSIMICROCODE = 0x20007455 + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x40487413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGWINSZ = 0x40087468 + TIOCIXOFF = 0x20007480 + TIOCIXON = 0x20007481 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTYGNAME = 0x40807453 + TIOCPTYGRANT = 0x20007454 + TIOCPTYUNLK = 0x20007452 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCONS = 0x20007463 + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x80487414 + TIOCSETAF = 0x80487416 + TIOCSETAW = 0x80487415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2000745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VT0 = 0x0 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x10 + WCOREFLAG = 0x80 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOWAIT = 0x20 + WORDSIZE = 0x40 + WSTOPPED = 0x8 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EAUTH = Errno(0x50) + EBADARCH = Errno(0x56) + EBADEXEC = Errno(0x55) + EBADF = Errno(0x9) + EBADMACHO = Errno(0x58) + EBADMSG = Errno(0x5e) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x59) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDEVERR = Errno(0x53) + EDOM = Errno(0x21) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x5a) + EILSEQ = Errno(0x5c) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x69) + ELOOP = Errno(0x3e) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + EMULTIHOP = Errno(0x5f) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x5d) + ENOBUFS = Errno(0x37) + ENODATA = Errno(0x60) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOLINK = Errno(0x61) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x5b) + ENOPOLICY = Errno(0x67) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x62) + ENOSTR = Errno(0x63) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTRECOVERABLE = Errno(0x68) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x2d) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x66) + EOVERFLOW = Errno(0x54) + EOWNERDEAD = Errno(0x69) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTO = Errno(0x64) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + EPWROFF = Errno(0x52) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHLIBVERS = Errno(0x57) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIME = Errno(0x65) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_darwin_arm64.go b/runtime/internal/clite/syscall/zerrors_darwin_arm64.go new file mode 100644 index 00000000..fc2982a7 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_darwin_arm64.go @@ -0,0 +1,1291 @@ +// mkerrors.sh -m64 +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m64 _const.go + +//go:build arm64 && darwin + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1c + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1e + AF_IPX = 0x17 + AF_ISDN = 0x1c + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x28 + AF_NATM = 0x1f + AF_NDRV = 0x1b + AF_NETBIOS = 0x21 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PPP = 0x22 + AF_PUP = 0x4 + AF_RESERVED_36 = 0x24 + AF_ROUTE = 0x11 + AF_SIP = 0x18 + AF_SNA = 0xb + AF_SYSTEM = 0x20 + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_UTUN = 0x26 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc00c4279 + BIOCGETIF = 0x4020426b + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044278 + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_NULL = 0x0 + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xc + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_FS = -0x9 + EVFILT_MACHPORT = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xe + EVFILT_THREADMARKER = 0xe + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xa + EVFILT_VM = -0xc + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG0 = 0x1000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_OOBAND = 0x2000 + EV_POLL = 0x1000 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_ADDFILESIGS = 0x3d + F_ADDSIGS = 0x3b + F_ALLOCATEALL = 0x4 + F_ALLOCATECONTIG = 0x2 + F_CHKCLEAN = 0x29 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x43 + F_FINDSIGS = 0x4e + F_FLUSH_DATA = 0x28 + F_FREEZE_FS = 0x35 + F_FULLFSYNC = 0x33 + F_GETCODEDIR = 0x48 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETLKPID = 0x42 + F_GETNOSIGPIPE = 0x4a + F_GETOWN = 0x5 + F_GETPATH = 0x32 + F_GETPATH_MTMINFO = 0x47 + F_GETPROTECTIONCLASS = 0x3f + F_GETPROTECTIONLEVEL = 0x4d + F_GLOBAL_NOCACHE = 0x37 + F_LOG2PHYS = 0x31 + F_LOG2PHYS_EXT = 0x41 + F_NOCACHE = 0x30 + F_NODIRECT = 0x3e + F_OK = 0x0 + F_PATHPKG_CHECK = 0x34 + F_PEOFPOSMODE = 0x3 + F_PREALLOCATE = 0x2a + F_RDADVISE = 0x2c + F_RDAHEAD = 0x2d + F_RDLCK = 0x1 + F_SETBACKINGSTORE = 0x46 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETLKWTIMEOUT = 0xa + F_SETNOSIGPIPE = 0x49 + F_SETOWN = 0x6 + F_SETPROTECTIONCLASS = 0x40 + F_SETSIZE = 0x2b + F_SINGLE_WRITER = 0x4c + F_THAW_FS = 0x36 + F_TRANSCODEKEY = 0x4b + F_UNLCK = 0x2 + F_VOLPOSMODE = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_BRIDGE = 0xd1 + IFT_CARP = 0xf8 + IFT_CELLULAR = 0xff + IFT_CEPT = 0x13 + IFT_DS3 = 0x1e + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FAITH = 0x38 + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_GIF = 0x37 + IFT_HDH1822 = 0x3 + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IEEE1394 = 0x90 + IFT_IEEE8023ADLAG = 0x88 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_L2VLAN = 0x87 + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PDP = 0xff + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_STARLAN = 0xb + IFT_STF = 0x39 + IFT_T1 = 0x12 + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LINKLOCALNETNUM = 0xa9fe0000 + IN_LOOPBACKNET = 0x7f + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0xfe + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEP = 0x21 + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_2292DSTOPTS = 0x17 + IPV6_2292HOPLIMIT = 0x14 + IPV6_2292HOPOPTS = 0x16 + IPV6_2292NEXTHOP = 0x15 + IPV6_2292PKTINFO = 0x13 + IPV6_2292PKTOPTIONS = 0x19 + IPV6_2292RTHDR = 0x18 + IPV6_BINDV6ONLY = 0x1b + IPV6_BOUND_IF = 0x7d + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MIN_MEMBERSHIPS = 0x1f + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVTCLASS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x24 + IPV6_UNICAST_HOPS = 0x4 + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BLOCK_SOURCE = 0x48 + IP_BOUND_IF = 0x19 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FAITH = 0x16 + IP_FW_ADD = 0x28 + IP_FW_DEL = 0x29 + IP_FW_FLUSH = 0x2a + IP_FW_GET = 0x2c + IP_FW_RESETLOG = 0x2d + IP_FW_ZERO = 0x2b + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MF = 0x2000 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_IFINDEX = 0x42 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_NAT__XXX = 0x37 + IP_OFFMASK = 0x1fff + IP_OLD_FW_ADD = 0x32 + IP_OLD_FW_DEL = 0x33 + IP_OLD_FW_FLUSH = 0x34 + IP_OLD_FW_GET = 0x36 + IP_OLD_FW_RESETLOG = 0x38 + IP_OLD_FW_ZERO = 0x35 + IP_OPTIONS = 0x1 + IP_PKTINFO = 0x1a + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVPKTINFO = 0x1a + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x18 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_STRIPHDR = 0x17 + IP_TOS = 0x3 + IP_TRAFFIC_MGT_BACKGROUND = 0x41 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_CAN_REUSE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_FREE_REUSABLE = 0x7 + MADV_FREE_REUSE = 0x8 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MADV_ZERO_WIRED_PAGES = 0x6 + MAP_ANON = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_JIT = 0x800 + MAP_NOCACHE = 0x400 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_RESERVED0080 = 0x80 + MAP_SHARED = 0x1 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_FLUSH = 0x400 + MSG_HAVEMORE = 0x2000 + MSG_HOLD = 0x800 + MSG_NEEDSA = 0x10000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_RCVMORE = 0x4000 + MSG_SEND = 0x1000 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MSG_WAITSTREAM = 0x200 + MS_ASYNC = 0x1 + MS_DEACTIVATE = 0x8 + MS_INVALIDATE = 0x2 + MS_KILLPAGES = 0x4 + MS_SYNC = 0x10 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_DUMP2 = 0x7 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLIST2 = 0x6 + NET_RT_MAXID = 0xa + NET_RT_STAT = 0x4 + NET_RT_TRASH = 0x5 + NOFLSH = 0x80000000 + NOTE_ABSOLUTE = 0x8 + NOTE_ATTRIB = 0x8 + NOTE_BACKGROUND = 0x40 + NOTE_CHILD = 0x4 + NOTE_CRITICAL = 0x20 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXITSTATUS = 0x4000000 + NOTE_EXIT_CSERROR = 0x40000 + NOTE_EXIT_DECRYPTFAIL = 0x10000 + NOTE_EXIT_DETAIL = 0x2000000 + NOTE_EXIT_DETAIL_MASK = 0x70000 + NOTE_EXIT_MEMORY = 0x20000 + NOTE_EXIT_REPARENTED = 0x80000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_LEEWAY = 0x10 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_NONE = 0x80 + NOTE_NSECONDS = 0x4 + NOTE_PCTRLMASK = -0x100000 + NOTE_PDATAMASK = 0xfffff + NOTE_REAP = 0x10000000 + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_SECONDS = 0x1 + NOTE_SIGNAL = 0x8000000 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_USECONDS = 0x2 + NOTE_VM_ERROR = 0x10000000 + NOTE_VM_PRESSURE = 0x80000000 + NOTE_VM_PRESSURE_SUDDEN_TERMINATE = 0x20000000 + NOTE_VM_PRESSURE_TERMINATE = 0x40000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFDEL = 0x20000 + OFILL = 0x80 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALERT = 0x20000000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x1000000 + O_CREAT = 0x200 + O_DIRECTORY = 0x100000 + O_DP_GETRAWENCRYPTED = 0x1 + O_DSYNC = 0x400000 + O_EVTONLY = 0x8000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x20000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_POPUP = 0x80000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYMLINK = 0x200000 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PT_ATTACH = 0xa + PT_ATTACHEXC = 0xe + PT_CONTINUE = 0x7 + PT_DENY_ATTACH = 0x1f + PT_DETACH = 0xb + PT_FIRSTMACH = 0x20 + PT_FORCEQUOTA = 0x1e + PT_KILL = 0x8 + PT_READ_D = 0x2 + PT_READ_I = 0x1 + PT_READ_U = 0x3 + PT_SIGEXC = 0xc + PT_STEP = 0x9 + PT_THUPDATE = 0xd + PT_TRACE_ME = 0x0 + PT_WRITE_D = 0x5 + PT_WRITE_I = 0x4 + PT_WRITE_U = 0x6 + RLIMIT_AS = 0x5 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_CPU_USAGE_MONITOR = 0x2 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CLONING = 0x100 + RTF_CONDEMNED = 0x2000000 + RTF_DELCLONE = 0x80 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_IFREF = 0x4000000 + RTF_IFSCOPE = 0x1000000 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_PROXY = 0x8000000 + RTF_REJECT = 0x8 + RTF_ROUTER = 0x10000000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_WASCLONED = 0x20000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_GET2 = 0x14 + RTM_IFINFO = 0xe + RTM_IFINFO2 = 0x12 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_NEWMADDR2 = 0x13 + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SCM_TIMESTAMP_MONOTONIC = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCARPIPLL = 0xc0206928 + SIOCATMARK = 0x40047307 + SIOCAUTOADDR = 0xc0206926 + SIOCAUTONETMASK = 0x80206927 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFPHYADDR = 0x80206941 + SIOCGDRVSPEC = 0xc028697b + SIOCGETVLAN = 0xc020697f + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFALTMTU = 0xc0206948 + SIOCGIFASYNCMAP = 0xc020697c + SIOCGIFBOND = 0xc0206947 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020695b + SIOCGIFCONF = 0xc00c6924 + SIOCGIFDEVMTU = 0xc0206944 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFKPI = 0xc0206987 + SIOCGIFMAC = 0xc0206982 + SIOCGIFMEDIA = 0xc02c6938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206940 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc020693f + SIOCGIFSTATUS = 0xc331693d + SIOCGIFVLAN = 0xc020697f + SIOCGIFWAKEFLAGS = 0xc0206988 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCIFCREATE = 0xc0206978 + SIOCIFCREATE2 = 0xc020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106981 + SIOCRSLVMULTI = 0xc010693b + SIOCSDRVSPEC = 0x8028697b + SIOCSETVLAN = 0x8020697e + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFALTMTU = 0x80206945 + SIOCSIFASYNCMAP = 0x8020697d + SIOCSIFBOND = 0x80206946 + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020695a + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFKPI = 0x80206986 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206983 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x8040693e + SIOCSIFPHYS = 0x80206936 + SIOCSIFVLAN = 0x8020697e + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_DONTTRUNC = 0x2000 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1010 + SO_LINGER = 0x80 + SO_LINGER_SEC = 0x1080 + SO_NKE = 0x1021 + SO_NOADDRERR = 0x1023 + SO_NOSIGPIPE = 0x1022 + SO_NOTIFYCONFLICT = 0x1026 + SO_NP_EXTENSIONS = 0x1083 + SO_NREAD = 0x1020 + SO_NUMRCVPKT = 0x1112 + SO_NWRITE = 0x1024 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1011 + SO_RANDOMPORT = 0x1082 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_REUSESHAREUID = 0x1025 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TIMESTAMP_MONOTONIC = 0x800 + SO_TYPE = 0x1008 + SO_UPCALLCLOSEWAIT = 0x1027 + SO_USELOOPBACK = 0x40 + SO_WANTMORE = 0x4000 + SO_WANTOOBFLAG = 0x8000 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONNECTIONTIMEOUT = 0x20 + TCP_ENABLE_ECN = 0x104 + TCP_KEEPALIVE = 0x10 + TCP_KEEPCNT = 0x102 + TCP_KEEPINTVL = 0x101 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MINMSS = 0xd8 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_NOTSENT_LOWAT = 0x201 + TCP_RXT_CONNDROPTIME = 0x80 + TCP_RXT_FINDROP = 0x100 + TCP_SENDMOREACKS = 0x103 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCDSIMICROCODE = 0x20007455 + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x40487413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGWINSZ = 0x40087468 + TIOCIXOFF = 0x20007480 + TIOCIXON = 0x20007481 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTYGNAME = 0x40807453 + TIOCPTYGRANT = 0x20007454 + TIOCPTYUNLK = 0x20007452 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCONS = 0x20007463 + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x80487414 + TIOCSETAF = 0x80487416 + TIOCSETAW = 0x80487415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2000745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VT0 = 0x0 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x10 + WCOREFLAG = 0x80 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOWAIT = 0x20 + WORDSIZE = 0x40 + WSTOPPED = 0x8 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EAUTH = Errno(0x50) + EBADARCH = Errno(0x56) + EBADEXEC = Errno(0x55) + EBADF = Errno(0x9) + EBADMACHO = Errno(0x58) + EBADMSG = Errno(0x5e) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x59) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDEVERR = Errno(0x53) + EDOM = Errno(0x21) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x5a) + EILSEQ = Errno(0x5c) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x6a) + ELOOP = Errno(0x3e) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + EMULTIHOP = Errno(0x5f) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x5d) + ENOBUFS = Errno(0x37) + ENODATA = Errno(0x60) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOLINK = Errno(0x61) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x5b) + ENOPOLICY = Errno(0x67) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x62) + ENOSTR = Errno(0x63) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTRECOVERABLE = Errno(0x68) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x2d) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x66) + EOVERFLOW = Errno(0x54) + EOWNERDEAD = Errno(0x69) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTO = Errno(0x64) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + EPWROFF = Errno(0x52) + EQFULL = Errno(0x6a) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHLIBVERS = Errno(0x57) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIME = Errno(0x65) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_dragonfly_amd64.go b/runtime/internal/clite/syscall/zerrors_dragonfly_amd64.go new file mode 100644 index 00000000..3e8ba9fb --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_dragonfly_amd64.go @@ -0,0 +1,1392 @@ +// mkerrors.sh -m64 +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m64 _const.go + +//go:build amd64 && dragonfly + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x21 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x23 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x22 + AF_NATM = 0x1d + AF_NETGRAPH = 0x20 + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x18 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104279 + BIOCGETIF = 0x4020426b + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044278 + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x8010427b + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DEFAULTBUFSIZE = 0x1000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MAX_CLONES = 0x80 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_HHDLC = 0x79 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_REDBACK_SMARTEDGE = 0x20 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DBF = 0xf + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_EXCEPT = -0x8 + EVFILT_MARKER = 0xf + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x8 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_NODATA = 0x1000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTEXIT_LWP = 0x10000 + EXTEXIT_PROC = 0x0 + EXTEXIT_SETINT = 0x1 + EXTEXIT_SIMPLE = 0x0 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x118e72 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NPOLLING = 0x100000 + IFF_OACTIVE = 0x400 + IFF_OACTIVE_COMPAT = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_POLLING = 0x10000 + IFF_POLLING_COMPAT = 0x10000 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_SMART = 0x20 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xf3 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VOICEEM = 0x64 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0xfe + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEP = 0x21 + IPPROTO_SKIP = 0x39 + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_UNKNOWN = 0x102 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PKTOPTIONS = 0x34 + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FAITH = 0x16 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_RESETLOG = 0x37 + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CONTROL_END = 0xb + MADV_CONTROL_START = 0xa + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_INVAL = 0xa + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SETMAP = 0xb + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_NOCORE = 0x20000 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_NOSYNC = 0x800 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_SIZEALIGN = 0x40000 + MAP_STACK = 0x400 + MAP_TRYFIXED = 0x10000 + MAP_VPAGETABLE = 0x2000 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_CMSG_CLOEXEC = 0x1000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_FBLOCKING = 0x10000 + MSG_FMASK = 0xffff0000 + MSG_FNONBLOCKING = 0x20000 + MSG_NOSIGNAL = 0x400 + MSG_NOTIFICATION = 0x200 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_SYNC = 0x800 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_MAXID = 0x4 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_OOB = 0x2 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x20000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x8000000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FAPPEND = 0x100000 + O_FASYNCWRITE = 0x800000 + O_FBLOCKING = 0x40000 + O_FBUFFERED = 0x2000000 + O_FMASK = 0x7fc0000 + O_FNONBLOCKING = 0x80000 + O_FOFFSET = 0x200000 + O_FSYNC = 0x80 + O_FSYNCWRITE = 0x400000 + O_FUNBUFFERED = 0x1000000 + O_MAPONREAD = 0x4000000 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0xb + RTAX_MPLS1 = 0x8 + RTAX_MPLS2 = 0x9 + RTAX_MPLS3 = 0xa + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_MPLS1 = 0x100 + RTA_MPLS2 = 0x200 + RTA_MPLS3 = 0x400 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPLSOPS = 0x1000000 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_WASCLONED = 0x20000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x6 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_IWCAPSEGS = 0x400 + RTV_IWMAXSEGS = 0x200 + RTV_MSL = 0x100 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCADDRT = 0x8040720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691b + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDELRT = 0x8040720b + SIOCDIFADDR = 0x80206919 + SIOCDIFPHYADDR = 0x80206949 + SIOCDLIFADDR = 0x8118691d + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc0207210 + SIOCGETVIFCNT = 0xc028720f + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc0206926 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMEDIA = 0xc0306938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPOLLCPU = 0xc020697e + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFSTATUS = 0xc331693b + SIOCGIFTSOLEN = 0xc0206980 + SIOCGLIFADDR = 0xc118691c + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSDRVSPEC = 0x8028697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFPOLLCPU = 0x8020697d + SIOCSIFTSOLEN = 0x8020697f + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDSPACE = 0x100a + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_FASTKEEP = 0x80 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x20 + TCP_KEEPINTVL = 0x200 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MINMSS = 0x100 + TCP_MIN_WINSHIFT = 0x5 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_SIGNATURE_ENABLE = 0x10 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCISPTMASTER = 0x20007455 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMODG = 0x40047403 + TIOCMODS = 0x80047404 + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2000745f + TIOCSPGRP = 0x80047476 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VCHECKPT = 0x13 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EASYNC = Errno(0x63) + EAUTH = Errno(0x50) + EBADF = Errno(0x9) + EBADMSG = Errno(0x59) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x55) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDOM = Errno(0x21) + EDOOFUS = Errno(0x58) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x52) + EILSEQ = Errno(0x56) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x63) + ELOOP = Errno(0x3e) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + EMULTIHOP = Errno(0x5a) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x57) + ENOBUFS = Errno(0x37) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOLINK = Errno(0x5b) + ENOMEDIUM = Errno(0x5d) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x53) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x2d) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x2d) + EOVERFLOW = Errno(0x54) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTO = Errno(0x5c) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUNUSED94 = Errno(0x5e) + EUNUSED95 = Errno(0x5f) + EUNUSED96 = Errno(0x60) + EUNUSED97 = Errno(0x61) + EUNUSED98 = Errno(0x62) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCKPT = Signal(0x21) + SIGCKPTEXIT = Signal(0x22) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTHR = Signal(0x20) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_freebsd_386.go b/runtime/internal/clite/syscall/zerrors_freebsd_386.go new file mode 100644 index 00000000..b4dcbdc7 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_freebsd_386.go @@ -0,0 +1,1580 @@ +// mkerrors.sh -m32 +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m32 _const.go + +//go:build 386 && freebsd + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0084279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4004427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4008426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x400c4280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80084267 + BIOCSETFNR = 0x80084282 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x8008427b + BIOCSETZBUF = 0x800c4281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8008426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0x18 + CTL_NET = 0x4 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HHDLC = 0x79 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0xf6 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x79 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xb + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xb + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f72 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_SMART = 0x20 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_IPXIP = 0xf9 + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf6 + IFT_PFSYNC = 0xf7 + IFT_PLC = 0xae + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VOICEEM = 0x64 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SEP = 0x21 + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MIN_MEMBERSHIPS = 0x1f + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FAITH = 0x16 + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MAX_SOURCE_FILTER = 0x400 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NORESERVE = 0x40 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_RESERVED0080 = 0x80 + MAP_RESERVED0100 = 0x100 + MAP_SHARED = 0x1 + MAP_STACK = 0x400 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLISTL = 0x5 + NET_RT_IFMALIST = 0x4 + NET_RT_MAXID = 0x6 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RTV_WEIGHT = 0x100 + RT_CACHING_CONTEXT = 0x1 + RT_DEFAULT_FIB = 0x0 + RT_NORTREF = 0x2 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_BINTIME = 0x4 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCADDRT = 0x8030720a + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80246987 + SIOCALIFADDR = 0x8118691b + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDELRT = 0x8030720b + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80246989 + SIOCDIFPHYADDR = 0x80206949 + SIOCDLIFADDR = 0x8118691d + SIOCGDRVSPEC = 0xc01c697b + SIOCGETSGCNT = 0xc0147210 + SIOCGETVIFCNT = 0xc014720f + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0086924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc024698a + SIOCGIFGROUP = 0xc0246988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0286938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFSTATUS = 0xc331693b + SIOCGLIFADDR = 0xc118691c + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCSDRVSPEC = 0x801c697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + SO_LISTENINCQLEN = 0x1013 + SO_LISTENQLEN = 0x1012 + SO_LISTENQLIMIT = 0x1011 + SO_NOSIGPIPE = 0x800 + SO_NO_DDP = 0x8000 + SO_NO_OFFLOAD = 0x4000 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SETFIB = 0x1014 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USER_COOKIE = 0x1015 + SO_VENDOR = 0x80000000 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CA_NAME_MAX = 0x10 + TCP_CONGESTION = 0x40 + TCP_INFO = 0x20 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x80 + TCP_KEEPINTVL = 0x200 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_VENDOR = 0x80000000 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40087459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EAUTH = Errno(0x50) + EBADF = Errno(0x9) + EBADMSG = Errno(0x59) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x55) + ECAPMODE = Errno(0x5e) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDOM = Errno(0x21) + EDOOFUS = Errno(0x58) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x52) + EILSEQ = Errno(0x56) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x60) + ELOOP = Errno(0x3e) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + EMULTIHOP = Errno(0x5a) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x57) + ENOBUFS = Errno(0x37) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOLINK = Errno(0x5b) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x53) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCAPABLE = Errno(0x5d) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTRECOVERABLE = Errno(0x5f) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x2d) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x2d) + EOVERFLOW = Errno(0x54) + EOWNERDEAD = Errno(0x60) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTO = Errno(0x5c) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGLIBRT = Signal(0x21) + SIGLWP = Signal(0x20) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTHR = Signal(0x20) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_freebsd_amd64.go b/runtime/internal/clite/syscall/zerrors_freebsd_amd64.go new file mode 100644 index 00000000..19765f64 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_freebsd_amd64.go @@ -0,0 +1,1581 @@ +// mkerrors.sh -m64 +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m64 _const.go + +//go:build amd64 && freebsd + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4008427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x40184280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x80104282 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x8010427b + BIOCSETZBUF = 0x80184281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0x18 + CTL_NET = 0x4 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HHDLC = 0x79 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0xf6 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x79 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xb + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xb + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f72 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_SMART = 0x20 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_IPXIP = 0xf9 + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf6 + IFT_PFSYNC = 0xf7 + IFT_PLC = 0xae + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VOICEEM = 0x64 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SEP = 0x21 + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MIN_MEMBERSHIPS = 0x1f + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FAITH = 0x16 + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MAX_SOURCE_FILTER = 0x400 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x80000 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NORESERVE = 0x40 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_RESERVED0080 = 0x80 + MAP_RESERVED0100 = 0x100 + MAP_SHARED = 0x1 + MAP_STACK = 0x400 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLISTL = 0x5 + NET_RT_IFMALIST = 0x4 + NET_RT_MAXID = 0x6 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RTV_WEIGHT = 0x100 + RT_CACHING_CONTEXT = 0x1 + RT_DEFAULT_FIB = 0x0 + RT_NORTREF = 0x2 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_BINTIME = 0x4 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCADDRT = 0x8040720a + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCALIFADDR = 0x8118691b + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDELRT = 0x8040720b + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPHYADDR = 0x80206949 + SIOCDLIFADDR = 0x8118691d + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc0207210 + SIOCGETVIFCNT = 0xc028720f + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0106924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0306938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFSTATUS = 0xc331693b + SIOCGLIFADDR = 0xc118691c + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSDRVSPEC = 0x8028697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + SO_LISTENINCQLEN = 0x1013 + SO_LISTENQLEN = 0x1012 + SO_LISTENQLIMIT = 0x1011 + SO_NOSIGPIPE = 0x800 + SO_NO_DDP = 0x8000 + SO_NO_OFFLOAD = 0x4000 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SETFIB = 0x1014 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USER_COOKIE = 0x1015 + SO_VENDOR = 0x80000000 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CA_NAME_MAX = 0x10 + TCP_CONGESTION = 0x40 + TCP_INFO = 0x20 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x80 + TCP_KEEPINTVL = 0x200 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_VENDOR = 0x80000000 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EAUTH = Errno(0x50) + EBADF = Errno(0x9) + EBADMSG = Errno(0x59) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x55) + ECAPMODE = Errno(0x5e) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDOM = Errno(0x21) + EDOOFUS = Errno(0x58) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x52) + EILSEQ = Errno(0x56) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x60) + ELOOP = Errno(0x3e) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + EMULTIHOP = Errno(0x5a) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x57) + ENOBUFS = Errno(0x37) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOLINK = Errno(0x5b) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x53) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCAPABLE = Errno(0x5d) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTRECOVERABLE = Errno(0x5f) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x2d) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x2d) + EOVERFLOW = Errno(0x54) + EOWNERDEAD = Errno(0x60) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTO = Errno(0x5c) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGLIBRT = Signal(0x21) + SIGLWP = Signal(0x20) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTHR = Signal(0x20) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_freebsd_arm.go b/runtime/internal/clite/syscall/zerrors_freebsd_arm.go new file mode 100644 index 00000000..cc3f67a0 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_freebsd_arm.go @@ -0,0 +1,1580 @@ +// mkerrors.sh +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- _const.go + +//go:build arm && freebsd + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0084279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4004427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x400c4280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80084267 + BIOCSETFNR = 0x80084282 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x8008427b + BIOCSETZBUF = 0x800c4281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0x18 + CTL_NET = 0x4 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HHDLC = 0x79 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0xf6 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x79 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xb + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xb + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f72 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_SMART = 0x20 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_IPXIP = 0xf9 + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf6 + IFT_PFSYNC = 0xf7 + IFT_PLC = 0xae + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VOICEEM = 0x64 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SEP = 0x21 + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MIN_MEMBERSHIPS = 0x1f + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FAITH = 0x16 + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MAX_SOURCE_FILTER = 0x400 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NORESERVE = 0x40 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_RESERVED0080 = 0x80 + MAP_RESERVED0100 = 0x100 + MAP_SHARED = 0x1 + MAP_STACK = 0x400 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLISTL = 0x5 + NET_RT_IFMALIST = 0x4 + NET_RT_MAXID = 0x6 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RTV_WEIGHT = 0x100 + RT_CACHING_CONTEXT = 0x1 + RT_DEFAULT_FIB = 0x0 + RT_NORTREF = 0x2 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_BINTIME = 0x4 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCADDRT = 0x8030720a + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80246987 + SIOCALIFADDR = 0x8118691b + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDELRT = 0x8030720b + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80246989 + SIOCDIFPHYADDR = 0x80206949 + SIOCDLIFADDR = 0x8118691d + SIOCGDRVSPEC = 0xc01c697b + SIOCGETSGCNT = 0xc0147210 + SIOCGETVIFCNT = 0xc014720f + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0086924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc024698a + SIOCGIFGROUP = 0xc0246988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0286938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFSTATUS = 0xc331693b + SIOCGLIFADDR = 0xc118691c + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCSDRVSPEC = 0x801c697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + SO_LISTENINCQLEN = 0x1013 + SO_LISTENQLEN = 0x1012 + SO_LISTENQLIMIT = 0x1011 + SO_NOSIGPIPE = 0x800 + SO_NO_DDP = 0x8000 + SO_NO_OFFLOAD = 0x4000 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SETFIB = 0x1014 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USER_COOKIE = 0x1015 + SO_VENDOR = 0x80000000 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CA_NAME_MAX = 0x10 + TCP_CONGESTION = 0x40 + TCP_INFO = 0x20 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x80 + TCP_KEEPINTVL = 0x200 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_VENDOR = 0x80000000 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EAUTH = Errno(0x50) + EBADF = Errno(0x9) + EBADMSG = Errno(0x59) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x55) + ECAPMODE = Errno(0x5e) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDOM = Errno(0x21) + EDOOFUS = Errno(0x58) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x52) + EILSEQ = Errno(0x56) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x60) + ELOOP = Errno(0x3e) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + EMULTIHOP = Errno(0x5a) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x57) + ENOBUFS = Errno(0x37) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOLINK = Errno(0x5b) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x53) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCAPABLE = Errno(0x5d) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTRECOVERABLE = Errno(0x5f) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x2d) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x2d) + EOVERFLOW = Errno(0x54) + EOWNERDEAD = Errno(0x60) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTO = Errno(0x5c) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGLIBRT = Signal(0x21) + SIGLWP = Signal(0x20) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTHR = Signal(0x20) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_freebsd_arm64.go b/runtime/internal/clite/syscall/zerrors_freebsd_arm64.go new file mode 100644 index 00000000..0aac0ef6 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_freebsd_arm64.go @@ -0,0 +1,1581 @@ +// mkerrors.sh -m64 +// Code generated by the command above; DO NOT EDIT. + +//go:build freebsd && arm64 + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4008427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x40184280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x80104282 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x8010427b + BIOCSETZBUF = 0x80184281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0x18 + CTL_NET = 0x4 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HHDLC = 0x79 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0xf6 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x79 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xb + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xb + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f72 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_SMART = 0x20 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_IPXIP = 0xf9 + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf6 + IFT_PFSYNC = 0xf7 + IFT_PLC = 0xae + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VOICEEM = 0x64 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SEP = 0x21 + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MIN_MEMBERSHIPS = 0x1f + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FAITH = 0x16 + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MAX_SOURCE_FILTER = 0x400 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x80000 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NORESERVE = 0x40 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_RESERVED0080 = 0x80 + MAP_RESERVED0100 = 0x100 + MAP_SHARED = 0x1 + MAP_STACK = 0x400 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLISTL = 0x5 + NET_RT_IFMALIST = 0x4 + NET_RT_MAXID = 0x6 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RTV_WEIGHT = 0x100 + RT_CACHING_CONTEXT = 0x1 + RT_DEFAULT_FIB = 0x0 + RT_NORTREF = 0x2 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_BINTIME = 0x4 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCADDRT = 0x8040720a + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCALIFADDR = 0x8118691b + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDELRT = 0x8040720b + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPHYADDR = 0x80206949 + SIOCDLIFADDR = 0x8118691d + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc0207210 + SIOCGETVIFCNT = 0xc028720f + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0106924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0306938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFSTATUS = 0xc331693b + SIOCGLIFADDR = 0xc118691c + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSDRVSPEC = 0x8028697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + SO_LISTENINCQLEN = 0x1013 + SO_LISTENQLEN = 0x1012 + SO_LISTENQLIMIT = 0x1011 + SO_NOSIGPIPE = 0x800 + SO_NO_DDP = 0x8000 + SO_NO_OFFLOAD = 0x4000 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SETFIB = 0x1014 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USER_COOKIE = 0x1015 + SO_VENDOR = 0x80000000 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CA_NAME_MAX = 0x10 + TCP_CONGESTION = 0x40 + TCP_INFO = 0x20 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x80 + TCP_KEEPINTVL = 0x200 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_VENDOR = 0x80000000 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EAUTH = Errno(0x50) + EBADF = Errno(0x9) + EBADMSG = Errno(0x59) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x55) + ECAPMODE = Errno(0x5e) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDOM = Errno(0x21) + EDOOFUS = Errno(0x58) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x52) + EILSEQ = Errno(0x56) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x60) + ELOOP = Errno(0x3e) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + EMULTIHOP = Errno(0x5a) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x57) + ENOBUFS = Errno(0x37) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOLINK = Errno(0x5b) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x53) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCAPABLE = Errno(0x5d) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTRECOVERABLE = Errno(0x5f) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x2d) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x2d) + EOVERFLOW = Errno(0x54) + EOWNERDEAD = Errno(0x60) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTO = Errno(0x5c) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGLIBRT = Signal(0x21) + SIGLWP = Signal(0x20) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTHR = Signal(0x20) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_freebsd_riscv64.go b/runtime/internal/clite/syscall/zerrors_freebsd_riscv64.go new file mode 100644 index 00000000..38ce3028 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_freebsd_riscv64.go @@ -0,0 +1,1581 @@ +// mkerrors.sh -m64 +// Code generated by the command above; DO NOT EDIT. + +//go:build freebsd && riscv64 + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x23 + AF_ATM = 0x1e + AF_BLUETOOTH = 0x24 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x25 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1c + AF_INET6_SDP = 0x2a + AF_INET_SDP = 0x28 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_NATM = 0x1d + AF_NETBIOS = 0x6 + AF_NETGRAPH = 0x20 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SCLUSTER = 0x22 + AF_SIP = 0x18 + AF_SLOW = 0x21 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VENDOR00 = 0x27 + AF_VENDOR01 = 0x29 + AF_VENDOR02 = 0x2b + AF_VENDOR03 = 0x2d + AF_VENDOR04 = 0x2f + AF_VENDOR05 = 0x31 + AF_VENDOR06 = 0x33 + AF_VENDOR07 = 0x35 + AF_VENDOR08 = 0x37 + AF_VENDOR09 = 0x39 + AF_VENDOR10 = 0x3b + AF_VENDOR11 = 0x3d + AF_VENDOR12 = 0x3f + AF_VENDOR13 = 0x41 + AF_VENDOR14 = 0x43 + AF_VENDOR15 = 0x45 + AF_VENDOR16 = 0x47 + AF_VENDOR17 = 0x49 + AF_VENDOR18 = 0x4b + AF_VENDOR19 = 0x4d + AF_VENDOR20 = 0x4f + AF_VENDOR21 = 0x51 + AF_VENDOR22 = 0x53 + AF_VENDOR23 = 0x55 + AF_VENDOR24 = 0x57 + AF_VENDOR25 = 0x59 + AF_VENDOR26 = 0x5b + AF_VENDOR27 = 0x5d + AF_VENDOR28 = 0x5f + AF_VENDOR29 = 0x61 + AF_VENDOR30 = 0x63 + AF_VENDOR31 = 0x65 + AF_VENDOR32 = 0x67 + AF_VENDOR33 = 0x69 + AF_VENDOR34 = 0x6b + AF_VENDOR35 = 0x6d + AF_VENDOR36 = 0x6f + AF_VENDOR37 = 0x71 + AF_VENDOR38 = 0x73 + AF_VENDOR39 = 0x75 + AF_VENDOR40 = 0x77 + AF_VENDOR41 = 0x79 + AF_VENDOR42 = 0x7b + AF_VENDOR43 = 0x7d + AF_VENDOR44 = 0x7f + AF_VENDOR45 = 0x81 + AF_VENDOR46 = 0x83 + AF_VENDOR47 = 0x85 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427c + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRECTION = 0x40044276 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104279 + BIOCGETBUFMODE = 0x4004427d + BIOCGETIF = 0x4020426b + BIOCGETZMAX = 0x4008427f + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044272 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSEESENT = 0x40044276 + BIOCGSTATS = 0x4008426f + BIOCGTSTAMP = 0x40044283 + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x2000427a + BIOCPROMISC = 0x20004269 + BIOCROTZBUF = 0x40184280 + BIOCSBLEN = 0xc0044266 + BIOCSDIRECTION = 0x80044277 + BIOCSDLT = 0x80044278 + BIOCSETBUFMODE = 0x8004427e + BIOCSETF = 0x80104267 + BIOCSETFNR = 0x80104282 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x8010427b + BIOCSETZBUF = 0x80184281 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044273 + BIOCSRTIMEOUT = 0x8010426d + BIOCSSEESENT = 0x80044277 + BIOCSTSTAMP = 0x80044284 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_BUFMODE_BUFFER = 0x1 + BPF_BUFMODE_ZBUF = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x80000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_T_BINTIME = 0x2 + BPF_T_BINTIME_FAST = 0x102 + BPF_T_BINTIME_MONOTONIC = 0x202 + BPF_T_BINTIME_MONOTONIC_FAST = 0x302 + BPF_T_FAST = 0x100 + BPF_T_FLAG_MASK = 0x300 + BPF_T_FORMAT_MASK = 0x3 + BPF_T_MICROTIME = 0x0 + BPF_T_MICROTIME_FAST = 0x100 + BPF_T_MICROTIME_MONOTONIC = 0x200 + BPF_T_MICROTIME_MONOTONIC_FAST = 0x300 + BPF_T_MONOTONIC = 0x200 + BPF_T_MONOTONIC_FAST = 0x300 + BPF_T_NANOTIME = 0x1 + BPF_T_NANOTIME_FAST = 0x101 + BPF_T_NANOTIME_MONOTONIC = 0x201 + BPF_T_NANOTIME_MONOTONIC_FAST = 0x301 + BPF_T_NONE = 0x3 + BPF_T_NORMAL = 0x0 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0x18 + CTL_NET = 0x4 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CHDLC = 0x68 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DBUS = 0xe7 + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_DVB_CI = 0xeb + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HHDLC = 0x79 + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NOFCS = 0xe6 + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPFILTER = 0x74 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xf2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_ATM_CEMIC = 0xee + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FIBRECHANNEL = 0xea + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_SRX_E2E = 0xe9 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_JUNIPER_VS = 0xe8 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_PPP_WITHDIRECTION = 0xa6 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MATCHING_MAX = 0xf6 + DLT_MATCHING_MIN = 0x68 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPEG_2_TS = 0xf3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_MUX27010 = 0xec + DLT_NETANALYZER = 0xf0 + DLT_NETANALYZER_TRANSPARENT = 0xf1 + DLT_NFC_LLCP = 0xf5 + DLT_NFLOG = 0xef + DLT_NG40 = 0xf4 + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x79 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PPP_WITH_DIRECTION = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_STANAG_5066_D_PDU = 0xed + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EVFILT_AIO = -0x3 + EVFILT_FS = -0x9 + EVFILT_LIO = -0xa + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0xb + EVFILT_TIMER = -0x7 + EVFILT_USER = -0xb + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_DROP = 0x1000 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_CANCEL = 0x5 + F_DUP2FD = 0xa + F_DUP2FD_CLOEXEC = 0x12 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x11 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xb + F_GETOWN = 0x5 + F_OGETLK = 0x7 + F_OK = 0x0 + F_OSETLK = 0x8 + F_OSETLKW = 0x9 + F_RDAHEAD = 0x10 + F_RDLCK = 0x1 + F_READAHEAD = 0xf + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0xc + F_SETLKW = 0xd + F_SETLK_REMOTE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_UNLCKSYS = 0x4 + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_ALTPHYS = 0x4000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x218f72 + IFF_CANTCONFIG = 0x10000 + IFF_DEBUG = 0x4 + IFF_DRV_OACTIVE = 0x400 + IFF_DRV_RUNNING = 0x40 + IFF_DYING = 0x200000 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MONITOR = 0x40000 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PPROMISC = 0x20000 + IFF_PROMISC = 0x100 + IFF_RENAMING = 0x400000 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_SMART = 0x20 + IFF_STATICARP = 0x80000 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_IPXIP = 0xf9 + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf6 + IFT_PFSYNC = 0xf7 + IFT_PLC = 0xae + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VOICEEM = 0x64 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_MASK = 0xfffffffe + IPPROTO_3PC = 0x22 + IPPROTO_ADFS = 0x44 + IPPROTO_AH = 0x33 + IPPROTO_AHIP = 0x3d + IPPROTO_APES = 0x63 + IPPROTO_ARGUS = 0xd + IPPROTO_AX25 = 0x5d + IPPROTO_BHA = 0x31 + IPPROTO_BLT = 0x1e + IPPROTO_BRSATMON = 0x4c + IPPROTO_CARP = 0x70 + IPPROTO_CFTP = 0x3e + IPPROTO_CHAOS = 0x10 + IPPROTO_CMTP = 0x26 + IPPROTO_CPHB = 0x49 + IPPROTO_CPNX = 0x48 + IPPROTO_DDP = 0x25 + IPPROTO_DGP = 0x56 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_EMCON = 0xe + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GMTP = 0x64 + IPPROTO_GRE = 0x2f + IPPROTO_HELLO = 0x3f + IPPROTO_HMP = 0x14 + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IDPR = 0x23 + IPPROTO_IDRP = 0x2d + IPPROTO_IGMP = 0x2 + IPPROTO_IGP = 0x55 + IPPROTO_IGRP = 0x58 + IPPROTO_IL = 0x28 + IPPROTO_INLSP = 0x34 + IPPROTO_INP = 0x20 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPCV = 0x47 + IPPROTO_IPEIP = 0x5e + IPPROTO_IPIP = 0x4 + IPPROTO_IPPC = 0x43 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IRTP = 0x1c + IPPROTO_KRYPTOLAN = 0x41 + IPPROTO_LARP = 0x5b + IPPROTO_LEAF1 = 0x19 + IPPROTO_LEAF2 = 0x1a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MEAS = 0x13 + IPPROTO_MH = 0x87 + IPPROTO_MHRP = 0x30 + IPPROTO_MICP = 0x5f + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_MUX = 0x12 + IPPROTO_ND = 0x4d + IPPROTO_NHRP = 0x36 + IPPROTO_NONE = 0x3b + IPPROTO_NSP = 0x1f + IPPROTO_NVPII = 0xb + IPPROTO_OLD_DIVERT = 0xfe + IPPROTO_OSPFIGP = 0x59 + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PGM = 0x71 + IPPROTO_PIGP = 0x9 + IPPROTO_PIM = 0x67 + IPPROTO_PRM = 0x15 + IPPROTO_PUP = 0xc + IPPROTO_PVP = 0x4b + IPPROTO_RAW = 0xff + IPPROTO_RCCMON = 0xa + IPPROTO_RDP = 0x1b + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_RVD = 0x42 + IPPROTO_SATEXPAK = 0x40 + IPPROTO_SATMON = 0x45 + IPPROTO_SCCSP = 0x60 + IPPROTO_SCTP = 0x84 + IPPROTO_SDRP = 0x2a + IPPROTO_SEND = 0x103 + IPPROTO_SEP = 0x21 + IPPROTO_SKIP = 0x39 + IPPROTO_SPACER = 0x7fff + IPPROTO_SRPC = 0x5a + IPPROTO_ST = 0x7 + IPPROTO_SVMTP = 0x52 + IPPROTO_SWIPE = 0x35 + IPPROTO_TCF = 0x57 + IPPROTO_TCP = 0x6 + IPPROTO_TLSP = 0x38 + IPPROTO_TP = 0x1d + IPPROTO_TPXX = 0x27 + IPPROTO_TRUNK1 = 0x17 + IPPROTO_TRUNK2 = 0x18 + IPPROTO_TTP = 0x54 + IPPROTO_UDP = 0x11 + IPPROTO_VINES = 0x53 + IPPROTO_VISA = 0x46 + IPPROTO_VMTP = 0x51 + IPPROTO_WBEXPAK = 0x4f + IPPROTO_WBMON = 0x4e + IPPROTO_WSN = 0x4a + IPPROTO_XNET = 0xf + IPPROTO_XTP = 0x24 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_BINDANY = 0x40 + IPV6_BINDV6ONLY = 0x1b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_FW_ADD = 0x1e + IPV6_FW_DEL = 0x1f + IPV6_FW_FLUSH = 0x20 + IPV6_FW_GET = 0x22 + IPV6_FW_ZERO = 0x21 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXOPTHDR = 0x800 + IPV6_MAXPACKET = 0xffff + IPV6_MAX_GROUP_SRC_FILTER = 0x200 + IPV6_MAX_MEMBERSHIPS = 0xfff + IPV6_MAX_SOCK_SRC_FILTER = 0x80 + IPV6_MIN_MEMBERSHIPS = 0x1f + IPV6_MMTU = 0x500 + IPV6_MSFILTER = 0x4a + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_PREFER_TEMPADDR = 0x3f + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_ADD_SOURCE_MEMBERSHIP = 0x46 + IP_BINDANY = 0x18 + IP_BLOCK_SOURCE = 0x48 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DONTFRAG = 0x43 + IP_DROP_MEMBERSHIP = 0xd + IP_DROP_SOURCE_MEMBERSHIP = 0x47 + IP_DUMMYNET3 = 0x31 + IP_DUMMYNET_CONFIGURE = 0x3c + IP_DUMMYNET_DEL = 0x3d + IP_DUMMYNET_FLUSH = 0x3e + IP_DUMMYNET_GET = 0x40 + IP_FAITH = 0x16 + IP_FW3 = 0x30 + IP_FW_ADD = 0x32 + IP_FW_DEL = 0x33 + IP_FW_FLUSH = 0x34 + IP_FW_GET = 0x36 + IP_FW_NAT_CFG = 0x38 + IP_FW_NAT_DEL = 0x39 + IP_FW_NAT_GET_CONFIG = 0x3a + IP_FW_NAT_GET_LOG = 0x3b + IP_FW_RESETLOG = 0x37 + IP_FW_TABLE_ADD = 0x28 + IP_FW_TABLE_DEL = 0x29 + IP_FW_TABLE_FLUSH = 0x2a + IP_FW_TABLE_GETSIZE = 0x2b + IP_FW_TABLE_LIST = 0x2c + IP_FW_ZERO = 0x35 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x15 + IP_MAXPACKET = 0xffff + IP_MAX_GROUP_SRC_FILTER = 0x200 + IP_MAX_MEMBERSHIPS = 0xfff + IP_MAX_SOCK_MUTE_FILTER = 0x80 + IP_MAX_SOCK_SRC_FILTER = 0x80 + IP_MAX_SOURCE_FILTER = 0x400 + IP_MF = 0x2000 + IP_MINTTL = 0x42 + IP_MIN_MEMBERSHIPS = 0x1f + IP_MSFILTER = 0x4a + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_MULTICAST_VIF = 0xe + IP_OFFMASK = 0x1fff + IP_ONESBCAST = 0x17 + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTOS = 0x44 + IP_RECVTTL = 0x41 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RSVP_OFF = 0x10 + IP_RSVP_ON = 0xf + IP_RSVP_VIF_OFF = 0x12 + IP_RSVP_VIF_ON = 0x11 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x49 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_AUTOSYNC = 0x7 + MADV_CORE = 0x9 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NOCORE = 0x8 + MADV_NORMAL = 0x0 + MADV_NOSYNC = 0x6 + MADV_PROTECT = 0xa + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x80000 + MAP_ALIGNED_SUPER = 0x1000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_NOCORE = 0x20000 + MAP_NORESERVE = 0x40 + MAP_NOSYNC = 0x800 + MAP_PREFAULT_READ = 0x40000 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_RESERVED0080 = 0x80 + MAP_RESERVED0100 = 0x100 + MAP_SHARED = 0x1 + MAP_STACK = 0x400 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_CMSG_CLOEXEC = 0x40000 + MSG_COMPAT = 0x8000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOF = 0x100 + MSG_EOR = 0x8 + MSG_NBIO = 0x4000 + MSG_NOSIGNAL = 0x20000 + MSG_NOTIFICATION = 0x2000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x0 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFLISTL = 0x5 + NET_RT_IFMALIST = 0x4 + NET_RT_MAXID = 0x6 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FFAND = 0x40000000 + NOTE_FFCOPY = 0xc0000000 + NOTE_FFCTRLMASK = 0xc0000000 + NOTE_FFLAGSMASK = 0xffffff + NOTE_FFNOP = 0x0 + NOTE_FFOR = 0x80000000 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRIGGER = 0x1000000 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x100000 + O_CREAT = 0x200 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x20000 + O_EXCL = 0x800 + O_EXEC = 0x40000 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_TTY_INIT = 0x80000 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x8 + RTAX_NETMASK = 0x2 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x1004d808 + RTF_GATEWAY = 0x2 + RTF_GWFLAG_COMPAT = 0x80000000 + RTF_HOST = 0x4 + RTF_LLDATA = 0x400 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MULTICAST = 0x800000 + RTF_PINNED = 0x100000 + RTF_PRCLONING = 0x10000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x40000 + RTF_REJECT = 0x8 + RTF_RNH_LOCKED = 0x40000000 + RTF_STATIC = 0x800 + RTF_STICKY = 0x10000000 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DELMADDR = 0x10 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x12 + RTM_IFANNOUNCE = 0x11 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_NEWMADDR = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RTV_WEIGHT = 0x100 + RT_CACHING_CONTEXT = 0x1 + RT_DEFAULT_FIB = 0x0 + RT_NORTREF = 0x2 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_BINTIME = 0x4 + SCM_CREDS = 0x3 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x2 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCADDRT = 0x8040720a + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCALIFADDR = 0x8118691b + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80206932 + SIOCDELRT = 0x8040720b + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPHYADDR = 0x80206949 + SIOCDLIFADDR = 0x8118691d + SIOCGDRVSPEC = 0xc028697b + SIOCGETSGCNT = 0xc0207210 + SIOCGETVIFCNT = 0xc028720f + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCAP = 0xc020691f + SIOCGIFCONF = 0xc0106924 + SIOCGIFDESCR = 0xc020692a + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFIB = 0xc020695c + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFINDEX = 0xc0206920 + SIOCGIFMAC = 0xc0206926 + SIOCGIFMEDIA = 0xc0306938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc0206933 + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPHYS = 0xc0206935 + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFSTATUS = 0xc331693b + SIOCGLIFADDR = 0xc118691c + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGPRIVATE_0 = 0xc0206950 + SIOCGPRIVATE_1 = 0xc0206951 + SIOCIFCREATE = 0xc020697a + SIOCIFCREATE2 = 0xc020697c + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSDRVSPEC = 0x8028697b + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFCAP = 0x8020691e + SIOCSIFDESCR = 0x80206929 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFIB = 0x8020695d + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020693c + SIOCSIFMAC = 0x80206927 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x80206934 + SIOCSIFNAME = 0x80206928 + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPHYS = 0x80206936 + SIOCSIFRVNET = 0xc020695b + SIOCSIFVNET = 0xc020695a + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_MAXADDRLEN = 0xff + SOCK_NONBLOCK = 0x20000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BINTIME = 0x2000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LABEL = 0x1009 + SO_LINGER = 0x80 + SO_LISTENINCQLEN = 0x1013 + SO_LISTENQLEN = 0x1012 + SO_LISTENQLIMIT = 0x1011 + SO_NOSIGPIPE = 0x800 + SO_NO_DDP = 0x8000 + SO_NO_OFFLOAD = 0x4000 + SO_OOBINLINE = 0x100 + SO_PEERLABEL = 0x1010 + SO_PROTOCOL = 0x1016 + SO_PROTOTYPE = 0x1016 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SETFIB = 0x1014 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_TIMESTAMP = 0x400 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_USER_COOKIE = 0x1015 + SO_VENDOR = 0x80000000 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CA_NAME_MAX = 0x10 + TCP_CONGESTION = 0x40 + TCP_INFO = 0x20 + TCP_KEEPCNT = 0x400 + TCP_KEEPIDLE = 0x100 + TCP_KEEPINIT = 0x80 + TCP_KEEPINTVL = 0x200 + TCP_MAXBURST = 0x4 + TCP_MAXHLEN = 0x3c + TCP_MAXOLEN = 0x28 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x4 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOOPT = 0x8 + TCP_NOPUSH = 0x4 + TCP_VENDOR = 0x80000000 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLUSH = 0x80047410 + TIOCGDRAINWAIT = 0x40047456 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGPGRP = 0x40047477 + TIOCGPTN = 0x4004740f + TIOCGSID = 0x40047463 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGDTRWAIT = 0x4004745a + TIOCMGET = 0x4004746a + TIOCMSDTRWAIT = 0x8004745b + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DCD = 0x40 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMASTER = 0x2000741c + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDRAINWAIT = 0x80047457 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSIG = 0x2004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCTIMESTAMP = 0x40107459 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VERASE2 = 0x7 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WCONTINUED = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x10 + WLINUXCLONE = 0x80000000 + WNOHANG = 0x1 + WNOWAIT = 0x8 + WSTOPPED = 0x2 + WTRAPPED = 0x20 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EAUTH = Errno(0x50) + EBADF = Errno(0x9) + EBADMSG = Errno(0x59) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x55) + ECAPMODE = Errno(0x5e) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDOM = Errno(0x21) + EDOOFUS = Errno(0x58) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x52) + EILSEQ = Errno(0x56) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x60) + ELOOP = Errno(0x3e) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + EMULTIHOP = Errno(0x5a) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x57) + ENOBUFS = Errno(0x37) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOLINK = Errno(0x5b) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x53) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCAPABLE = Errno(0x5d) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTRECOVERABLE = Errno(0x5f) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x2d) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x2d) + EOVERFLOW = Errno(0x54) + EOWNERDEAD = Errno(0x60) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTO = Errno(0x5c) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGLIBRT = Signal(0x21) + SIGLWP = Signal(0x20) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTHR = Signal(0x20) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_linux_386.go b/runtime/internal/clite/syscall/zerrors_linux_386.go new file mode 100644 index 00000000..ae0a2a8a --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_linux_386.go @@ -0,0 +1,1355 @@ +// mkerrors.sh -m32 +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m32 _const.go + +//go:build 386 && linux + +package syscall + +const ( + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x27 + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_PHY = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_X25 = 0x10f + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + EPOLLERR = 0x8 + EPOLLET = -0x80000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x80000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + EPOLL_NONBLOCK = 0x800 + ETH_P_1588 = 0x88f7 + ETH_P_8021Q = 0x8100 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_AARP = 0x80f3 + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0xc + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OK = 0x0 + F_RDLCK = 0x0 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0xd + F_SETLK64 = 0xd + F_SETLKW = 0xe + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + ICMPV6_FILTER = 0x1 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_NODAD = 0x2 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0x7 + IFF_ALLMULTI = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DYNAMIC = 0x8000 + IFF_LOOPBACK = 0x8 + IFF_MASTER = 0x400 + IFF_MULTICAST = 0x1000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_TAP = 0x2 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFNAMSIZ = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x80000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x800 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_CHECKSUM = 0x7 + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_UNICAST_HOPS = 0x10 + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BLOCK_SOURCE = 0x26 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_XFRM_POLICY = 0x11 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DOFORK = 0xb + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x40 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_STACK = 0x20000 + MAP_TYPE = 0xf + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + NAME_MAX = 0xff + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CONNECTOR = 0xb + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_ROUTE = 0x0 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + O_ACCMODE = 0x3 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x8000 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_BROADCAST = 0x1 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FASTROUTE = 0x6 + PACKET_HOST = 0x0 + PACKET_LOOPBACK = 0x5 + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MULTICAST = 0x2 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_KEEPCAPS = 0x8 + PR_SET_NAME = 0xf + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPXREGS = 0x12 + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_KILL = 0x8 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_O_MASK = 0x7f + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKETEXT = 0x4 + PTRACE_POKEUSR = 0x6 + PTRACE_SETFPREGS = 0xf + PTRACE_SETFPXREGS = 0x13 + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SINGLEBLOCK = 0x21 + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + PTRACE_TRACEME = 0x0 + RLIMIT_AS = 0x9 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x7 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = -0x1 + RTAX_ADVMSS = 0x8 + RTAX_CWND = 0x7 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0xe + RTAX_MTU = 0x2 + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x10 + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELLINK = 0x11 + RTM_DELNEIGH = 0x1d + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_NOTIFY = 0x100 + RTM_F_PREFIX = 0x800 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_MAX = 0x4f + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWLINK = 0x10 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x10 + RTM_NR_MSGTYPES = 0x40 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_F_DEAD = 0x1 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTN_MAX = 0xb + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_GATED = 0x8 + RTPROT_KERNEL = 0x2 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPNS = 0x23 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x8905 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCGARP = 0x8954 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGPGRP = 0x8904 + SIOCGRARP = 0x8961 + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSPGRP = 0x8902 + SIOCSRARP = 0x8962 + SOCK_CLOEXEC = 0x80000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_AAL = 0x109 + SOL_ATM = 0x108 + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_PACKET = 0x107 + SOL_RAW = 0xff + SOL_SOCKET = 0x1 + SOL_TCP = 0x6 + SOL_X25 = 0x106 + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_FILTER = 0x1a + SO_BINDTODEVICE = 0x19 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_DEBUG = 0x1 + SO_DETACH_FILTER = 0x1b + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_MARK = 0x24 + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEERCRED = 0x11 + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1f + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_REUSEADDR = 0x2 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TYPE = 0x3 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x0 + TCIOFLUSH = 0x2 + TCOFLUSH = 0x1 + TCP_CONGESTION = 0xd + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_INFO = 0xb + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_QUICKACK = 0xc + TCP_SYNCNT = 0x7 + TCP_WINDOW_CLAMP = 0xa + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGICOUNT = 0x545d + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPTN = 0x80045430 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TUNATTACHFILTER = 0x400854d5 + TUNDETACHFILTER = 0x400854d6 + TUNGETFEATURES = 0x800454cf + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETHDRSZ = 0x800454d7 + TUNSETDEBUG = 0x400454c9 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETSNDBUF = 0x400454d4 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETHDRSZ = 0x400454d8 + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x20 + WSTOPPED = 0x2 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x62) + EADDRNOTAVAIL = Errno(0x63) + EADV = Errno(0x44) + EAFNOSUPPORT = Errno(0x61) + EAGAIN = Errno(0xb) + EALREADY = Errno(0x72) + EBADE = Errno(0x34) + EBADF = Errno(0x9) + EBADFD = Errno(0x4d) + EBADMSG = Errno(0x4a) + EBADR = Errno(0x35) + EBADRQC = Errno(0x38) + EBADSLT = Errno(0x39) + EBFONT = Errno(0x3b) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x7d) + ECHILD = Errno(0xa) + ECHRNG = Errno(0x2c) + ECOMM = Errno(0x46) + ECONNABORTED = Errno(0x67) + ECONNREFUSED = Errno(0x6f) + ECONNRESET = Errno(0x68) + EDEADLK = Errno(0x23) + EDEADLOCK = Errno(0x23) + EDESTADDRREQ = Errno(0x59) + EDOM = Errno(0x21) + EDOTDOT = Errno(0x49) + EDQUOT = Errno(0x7a) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EHOSTDOWN = Errno(0x70) + EHOSTUNREACH = Errno(0x71) + EIDRM = Errno(0x2b) + EILSEQ = Errno(0x54) + EINPROGRESS = Errno(0x73) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x6a) + EISDIR = Errno(0x15) + EISNAM = Errno(0x78) + EKEYEXPIRED = Errno(0x7f) + EKEYREJECTED = Errno(0x81) + EKEYREVOKED = Errno(0x80) + EL2HLT = Errno(0x33) + EL2NSYNC = Errno(0x2d) + EL3HLT = Errno(0x2e) + EL3RST = Errno(0x2f) + ELIBACC = Errno(0x4f) + ELIBBAD = Errno(0x50) + ELIBEXEC = Errno(0x53) + ELIBMAX = Errno(0x52) + ELIBSCN = Errno(0x51) + ELNRNG = Errno(0x30) + ELOOP = Errno(0x28) + EMEDIUMTYPE = Errno(0x7c) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x5a) + EMULTIHOP = Errno(0x48) + ENAMETOOLONG = Errno(0x24) + ENAVAIL = Errno(0x77) + ENETDOWN = Errno(0x64) + ENETRESET = Errno(0x66) + ENETUNREACH = Errno(0x65) + ENFILE = Errno(0x17) + ENOANO = Errno(0x37) + ENOBUFS = Errno(0x69) + ENOCSI = Errno(0x32) + ENODATA = Errno(0x3d) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOKEY = Errno(0x7e) + ENOLCK = Errno(0x25) + ENOLINK = Errno(0x43) + ENOMEDIUM = Errno(0x7b) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x2a) + ENONET = Errno(0x40) + ENOPKG = Errno(0x41) + ENOPROTOOPT = Errno(0x5c) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x3f) + ENOSTR = Errno(0x3c) + ENOSYS = Errno(0x26) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x6b) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x27) + ENOTNAM = Errno(0x76) + ENOTRECOVERABLE = Errno(0x83) + ENOTSOCK = Errno(0x58) + ENOTSUP = Errno(0x5f) + ENOTTY = Errno(0x19) + ENOTUNIQ = Errno(0x4c) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x5f) + EOVERFLOW = Errno(0x4b) + EOWNERDEAD = Errno(0x82) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x60) + EPIPE = Errno(0x20) + EPROTO = Errno(0x47) + EPROTONOSUPPORT = Errno(0x5d) + EPROTOTYPE = Errno(0x5b) + ERANGE = Errno(0x22) + EREMCHG = Errno(0x4e) + EREMOTE = Errno(0x42) + EREMOTEIO = Errno(0x79) + ERESTART = Errno(0x55) + ERFKILL = Errno(0x84) + EROFS = Errno(0x1e) + ESHUTDOWN = Errno(0x6c) + ESOCKTNOSUPPORT = Errno(0x5e) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESRMNT = Errno(0x45) + ESTALE = Errno(0x74) + ESTRPIPE = Errno(0x56) + ETIME = Errno(0x3e) + ETIMEDOUT = Errno(0x6e) + ETOOMANYREFS = Errno(0x6d) + ETXTBSY = Errno(0x1a) + EUCLEAN = Errno(0x75) + EUNATCH = Errno(0x31) + EUSERS = Errno(0x57) + EWOULDBLOCK = Errno(0xb) + EXDEV = Errno(0x12) + EXFULL = Errno(0x36) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0x7) + SIGCHLD = Signal(0x11) + SIGCLD = Signal(0x11) + SIGCONT = Signal(0x12) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINT = Signal(0x2) + SIGIO = Signal(0x1d) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPOLL = Signal(0x1d) + SIGPROF = Signal(0x1b) + SIGPWR = Signal(0x1e) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTKFLT = Signal(0x10) + SIGSTOP = Signal(0x13) + SIGSYS = Signal(0x1f) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x14) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGUNUSED = Signal(0x1f) + SIGURG = Signal(0x17) + SIGUSR1 = Signal(0xa) + SIGUSR2 = Signal(0xc) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_linux_amd64.go b/runtime/internal/clite/syscall/zerrors_linux_amd64.go new file mode 100644 index 00000000..4c6950f6 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_linux_amd64.go @@ -0,0 +1,1356 @@ +// mkerrors.sh -m64 +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m64 _const.go + +//go:build amd64 && linux + +package syscall + +const ( + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x27 + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_PHY = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_X25 = 0x10f + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + EPOLLERR = 0x8 + EPOLLET = -0x80000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x80000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + EPOLL_NONBLOCK = 0x800 + ETH_P_1588 = 0x88f7 + ETH_P_8021Q = 0x8100 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_AARP = 0x80f3 + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OK = 0x0 + F_RDLCK = 0x0 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + ICMPV6_FILTER = 0x1 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_NODAD = 0x2 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0x7 + IFF_ALLMULTI = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DYNAMIC = 0x8000 + IFF_LOOPBACK = 0x8 + IFF_MASTER = 0x400 + IFF_MULTICAST = 0x1000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_TAP = 0x2 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFNAMSIZ = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x80000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x800 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_CHECKSUM = 0x7 + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_UNICAST_HOPS = 0x10 + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BLOCK_SOURCE = 0x26 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_XFRM_POLICY = 0x11 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DOFORK = 0xb + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x40 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_STACK = 0x20000 + MAP_TYPE = 0xf + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + NAME_MAX = 0xff + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CONNECTOR = 0xb + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_ROUTE = 0x0 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + O_ACCMODE = 0x3 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_BROADCAST = 0x1 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FASTROUTE = 0x6 + PACKET_HOST = 0x0 + PACKET_LOOPBACK = 0x5 + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MULTICAST = 0x2 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_KEEPCAPS = 0x8 + PR_SET_NAME = 0xf + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PTRACE_ARCH_PRCTL = 0x1e + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETFPREGS = 0xe + PTRACE_GETFPXREGS = 0x12 + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_KILL = 0x8 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_O_MASK = 0x7f + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKETEXT = 0x4 + PTRACE_POKEUSR = 0x6 + PTRACE_SETFPREGS = 0xf + PTRACE_SETFPXREGS = 0x13 + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SINGLEBLOCK = 0x21 + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + PTRACE_TRACEME = 0x0 + RLIMIT_AS = 0x9 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x7 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = -0x1 + RTAX_ADVMSS = 0x8 + RTAX_CWND = 0x7 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0xe + RTAX_MTU = 0x2 + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x10 + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELLINK = 0x11 + RTM_DELNEIGH = 0x1d + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_NOTIFY = 0x100 + RTM_F_PREFIX = 0x800 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_MAX = 0x4f + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWLINK = 0x10 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x10 + RTM_NR_MSGTYPES = 0x40 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_F_DEAD = 0x1 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTN_MAX = 0xb + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_GATED = 0x8 + RTPROT_KERNEL = 0x2 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPNS = 0x23 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x8905 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCGARP = 0x8954 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGPGRP = 0x8904 + SIOCGRARP = 0x8961 + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSPGRP = 0x8902 + SIOCSRARP = 0x8962 + SOCK_CLOEXEC = 0x80000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_AAL = 0x109 + SOL_ATM = 0x108 + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_PACKET = 0x107 + SOL_RAW = 0xff + SOL_SOCKET = 0x1 + SOL_TCP = 0x6 + SOL_X25 = 0x106 + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_FILTER = 0x1a + SO_BINDTODEVICE = 0x19 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_DEBUG = 0x1 + SO_DETACH_FILTER = 0x1b + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_MARK = 0x24 + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEERCRED = 0x11 + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1f + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_REUSEADDR = 0x2 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TYPE = 0x3 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x0 + TCIOFLUSH = 0x2 + TCOFLUSH = 0x1 + TCP_CONGESTION = 0xd + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_INFO = 0xb + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_QUICKACK = 0xc + TCP_SYNCNT = 0x7 + TCP_WINDOW_CLAMP = 0xa + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGICOUNT = 0x545d + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPTN = 0x80045430 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETFEATURES = 0x800454cf + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETHDRSZ = 0x800454d7 + TUNSETDEBUG = 0x400454c9 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETSNDBUF = 0x400454d4 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETHDRSZ = 0x400454d8 + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x40 + WSTOPPED = 0x2 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x62) + EADDRNOTAVAIL = Errno(0x63) + EADV = Errno(0x44) + EAFNOSUPPORT = Errno(0x61) + EAGAIN = Errno(0xb) + EALREADY = Errno(0x72) + EBADE = Errno(0x34) + EBADF = Errno(0x9) + EBADFD = Errno(0x4d) + EBADMSG = Errno(0x4a) + EBADR = Errno(0x35) + EBADRQC = Errno(0x38) + EBADSLT = Errno(0x39) + EBFONT = Errno(0x3b) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x7d) + ECHILD = Errno(0xa) + ECHRNG = Errno(0x2c) + ECOMM = Errno(0x46) + ECONNABORTED = Errno(0x67) + ECONNREFUSED = Errno(0x6f) + ECONNRESET = Errno(0x68) + EDEADLK = Errno(0x23) + EDEADLOCK = Errno(0x23) + EDESTADDRREQ = Errno(0x59) + EDOM = Errno(0x21) + EDOTDOT = Errno(0x49) + EDQUOT = Errno(0x7a) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EHOSTDOWN = Errno(0x70) + EHOSTUNREACH = Errno(0x71) + EIDRM = Errno(0x2b) + EILSEQ = Errno(0x54) + EINPROGRESS = Errno(0x73) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x6a) + EISDIR = Errno(0x15) + EISNAM = Errno(0x78) + EKEYEXPIRED = Errno(0x7f) + EKEYREJECTED = Errno(0x81) + EKEYREVOKED = Errno(0x80) + EL2HLT = Errno(0x33) + EL2NSYNC = Errno(0x2d) + EL3HLT = Errno(0x2e) + EL3RST = Errno(0x2f) + ELIBACC = Errno(0x4f) + ELIBBAD = Errno(0x50) + ELIBEXEC = Errno(0x53) + ELIBMAX = Errno(0x52) + ELIBSCN = Errno(0x51) + ELNRNG = Errno(0x30) + ELOOP = Errno(0x28) + EMEDIUMTYPE = Errno(0x7c) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x5a) + EMULTIHOP = Errno(0x48) + ENAMETOOLONG = Errno(0x24) + ENAVAIL = Errno(0x77) + ENETDOWN = Errno(0x64) + ENETRESET = Errno(0x66) + ENETUNREACH = Errno(0x65) + ENFILE = Errno(0x17) + ENOANO = Errno(0x37) + ENOBUFS = Errno(0x69) + ENOCSI = Errno(0x32) + ENODATA = Errno(0x3d) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOKEY = Errno(0x7e) + ENOLCK = Errno(0x25) + ENOLINK = Errno(0x43) + ENOMEDIUM = Errno(0x7b) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x2a) + ENONET = Errno(0x40) + ENOPKG = Errno(0x41) + ENOPROTOOPT = Errno(0x5c) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x3f) + ENOSTR = Errno(0x3c) + ENOSYS = Errno(0x26) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x6b) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x27) + ENOTNAM = Errno(0x76) + ENOTRECOVERABLE = Errno(0x83) + ENOTSOCK = Errno(0x58) + ENOTSUP = Errno(0x5f) + ENOTTY = Errno(0x19) + ENOTUNIQ = Errno(0x4c) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x5f) + EOVERFLOW = Errno(0x4b) + EOWNERDEAD = Errno(0x82) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x60) + EPIPE = Errno(0x20) + EPROTO = Errno(0x47) + EPROTONOSUPPORT = Errno(0x5d) + EPROTOTYPE = Errno(0x5b) + ERANGE = Errno(0x22) + EREMCHG = Errno(0x4e) + EREMOTE = Errno(0x42) + EREMOTEIO = Errno(0x79) + ERESTART = Errno(0x55) + ERFKILL = Errno(0x84) + EROFS = Errno(0x1e) + ESHUTDOWN = Errno(0x6c) + ESOCKTNOSUPPORT = Errno(0x5e) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESRMNT = Errno(0x45) + ESTALE = Errno(0x74) + ESTRPIPE = Errno(0x56) + ETIME = Errno(0x3e) + ETIMEDOUT = Errno(0x6e) + ETOOMANYREFS = Errno(0x6d) + ETXTBSY = Errno(0x1a) + EUCLEAN = Errno(0x75) + EUNATCH = Errno(0x31) + EUSERS = Errno(0x57) + EWOULDBLOCK = Errno(0xb) + EXDEV = Errno(0x12) + EXFULL = Errno(0x36) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0x7) + SIGCHLD = Signal(0x11) + SIGCLD = Signal(0x11) + SIGCONT = Signal(0x12) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINT = Signal(0x2) + SIGIO = Signal(0x1d) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPOLL = Signal(0x1d) + SIGPROF = Signal(0x1b) + SIGPWR = Signal(0x1e) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTKFLT = Signal(0x10) + SIGSTOP = Signal(0x13) + SIGSYS = Signal(0x1f) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x14) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGUNUSED = Signal(0x1f) + SIGURG = Signal(0x17) + SIGUSR1 = Signal(0xa) + SIGUSR2 = Signal(0xc) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_linux_arm.go b/runtime/internal/clite/syscall/zerrors_linux_arm.go new file mode 100644 index 00000000..3e4e47cf --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_linux_arm.go @@ -0,0 +1,1368 @@ +// mkerrors.sh +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- _const.go + +//go:build arm && linux + +package syscall + +const ( + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x27 + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_PHY = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_X25 = 0x10f + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ELF_NGREG = 0x12 + ELF_PRARGSZ = 0x50 + EPOLLERR = 0x8 + EPOLLET = -0x80000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x80000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + EPOLL_NONBLOCK = 0x800 + ETH_P_1588 = 0x88f7 + ETH_P_8021Q = 0x8100 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_AARP = 0x80f3 + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0xc + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OK = 0x0 + F_RDLCK = 0x0 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0xd + F_SETLK64 = 0xd + F_SETLKW = 0xe + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + ICMPV6_FILTER = 0x1 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_NODAD = 0x2 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0x7 + IFF_ALLMULTI = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DYNAMIC = 0x8000 + IFF_LOOPBACK = 0x8 + IFF_MASTER = 0x400 + IFF_MULTICAST = 0x1000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_TAP = 0x2 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFNAMSIZ = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x80000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x800 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_CHECKSUM = 0x7 + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_UNICAST_HOPS = 0x10 + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BLOCK_SOURCE = 0x26 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_XFRM_POLICY = 0x11 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DOFORK = 0xb + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GROWSDOWN = 0x100 + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_TYPE = 0xf + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + NAME_MAX = 0xff + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CONNECTOR = 0xb + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + O_ACCMODE = 0x3 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x1000 + O_LARGEFILE = 0x20000 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x1000 + O_SYNC = 0x1000 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_BROADCAST = 0x1 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FASTROUTE = 0x6 + PACKET_HOST = 0x0 + PACKET_LOOPBACK = 0x5 + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MULTICAST = 0x2 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_CLEAR_SECCOMP_FILTER = 0x25 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECCOMP_FILTER = 0x23 + PR_GET_SECUREBITS = 0x1b + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_SECCOMP_FILTER_EVENT = 0x1 + PR_SECCOMP_FILTER_SYSCALL = 0x0 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_KEEPCAPS = 0x8 + PR_SET_NAME = 0xf + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_SECCOMP = 0x16 + PR_SET_SECCOMP_FILTER = 0x24 + PR_SET_SECUREBITS = 0x1c + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETCRUNCHREGS = 0x19 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETFPREGS = 0xe + PTRACE_GETHBPREGS = 0x1d + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETVFPREGS = 0x1b + PTRACE_GETWMMXREGS = 0x12 + PTRACE_GET_THREAD_AREA = 0x16 + PTRACE_KILL = 0x8 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_O_MASK = 0x7f + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKETEXT = 0x4 + PTRACE_POKEUSR = 0x6 + PTRACE_SETCRUNCHREGS = 0x1a + PTRACE_SETFPREGS = 0xf + PTRACE_SETHBPREGS = 0x1e + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETVFPREGS = 0x1c + PTRACE_SETWMMXREGS = 0x13 + PTRACE_SET_SYSCALL = 0x17 + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_TRACEME = 0x0 + PT_DATA_ADDR = 0x10004 + PT_TEXT_ADDR = 0x10000 + PT_TEXT_END_ADDR = 0x10008 + RLIMIT_AS = 0x9 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x7 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = -0x1 + RTAX_ADVMSS = 0x8 + RTAX_CWND = 0x7 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0xe + RTAX_MTU = 0x2 + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x10 + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELLINK = 0x11 + RTM_DELNEIGH = 0x1d + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_NOTIFY = 0x100 + RTM_F_PREFIX = 0x800 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_MAX = 0x4f + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWLINK = 0x10 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x10 + RTM_NR_MSGTYPES = 0x40 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_F_DEAD = 0x1 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTN_MAX = 0xb + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_GATED = 0x8 + RTPROT_KERNEL = 0x2 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPNS = 0x23 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x8905 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCGARP = 0x8954 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGPGRP = 0x8904 + SIOCGRARP = 0x8961 + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSPGRP = 0x8902 + SIOCSRARP = 0x8962 + SOCK_CLOEXEC = 0x80000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_AAL = 0x109 + SOL_ATM = 0x108 + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_PACKET = 0x107 + SOL_RAW = 0xff + SOL_SOCKET = 0x1 + SOL_TCP = 0x6 + SOL_X25 = 0x106 + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_FILTER = 0x1a + SO_BINDTODEVICE = 0x19 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_DEBUG = 0x1 + SO_DETACH_FILTER = 0x1b + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_MARK = 0x24 + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEERCRED = 0x11 + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1f + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_REUSEADDR = 0x2 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TYPE = 0x3 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x0 + TCIOFLUSH = 0x2 + TCOFLUSH = 0x1 + TCP_CONGESTION = 0xd + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_INFO = 0xb + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_QUICKACK = 0xc + TCP_SYNCNT = 0x7 + TCP_WINDOW_CLAMP = 0xa + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGICOUNT = 0x545d + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPTN = 0x80045430 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TUNATTACHFILTER = 0x400854d5 + TUNDETACHFILTER = 0x400854d6 + TUNGETFEATURES = 0x800454cf + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETHDRSZ = 0x800454d7 + TUNSETDEBUG = 0x400454c9 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETSNDBUF = 0x400454d4 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETHDRSZ = 0x400454d8 + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x20 + WSTOPPED = 0x2 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x62) + EADDRNOTAVAIL = Errno(0x63) + EADV = Errno(0x44) + EAFNOSUPPORT = Errno(0x61) + EAGAIN = Errno(0xb) + EALREADY = Errno(0x72) + EBADE = Errno(0x34) + EBADF = Errno(0x9) + EBADFD = Errno(0x4d) + EBADMSG = Errno(0x4a) + EBADR = Errno(0x35) + EBADRQC = Errno(0x38) + EBADSLT = Errno(0x39) + EBFONT = Errno(0x3b) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x7d) + ECHILD = Errno(0xa) + ECHRNG = Errno(0x2c) + ECOMM = Errno(0x46) + ECONNABORTED = Errno(0x67) + ECONNREFUSED = Errno(0x6f) + ECONNRESET = Errno(0x68) + EDEADLK = Errno(0x23) + EDEADLOCK = Errno(0x23) + EDESTADDRREQ = Errno(0x59) + EDOM = Errno(0x21) + EDOTDOT = Errno(0x49) + EDQUOT = Errno(0x7a) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EHOSTDOWN = Errno(0x70) + EHOSTUNREACH = Errno(0x71) + EHWPOISON = Errno(0x85) + EIDRM = Errno(0x2b) + EILSEQ = Errno(0x54) + EINPROGRESS = Errno(0x73) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x6a) + EISDIR = Errno(0x15) + EISNAM = Errno(0x78) + EKEYEXPIRED = Errno(0x7f) + EKEYREJECTED = Errno(0x81) + EKEYREVOKED = Errno(0x80) + EL2HLT = Errno(0x33) + EL2NSYNC = Errno(0x2d) + EL3HLT = Errno(0x2e) + EL3RST = Errno(0x2f) + ELIBACC = Errno(0x4f) + ELIBBAD = Errno(0x50) + ELIBEXEC = Errno(0x53) + ELIBMAX = Errno(0x52) + ELIBSCN = Errno(0x51) + ELNRNG = Errno(0x30) + ELOOP = Errno(0x28) + EMEDIUMTYPE = Errno(0x7c) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x5a) + EMULTIHOP = Errno(0x48) + ENAMETOOLONG = Errno(0x24) + ENAVAIL = Errno(0x77) + ENETDOWN = Errno(0x64) + ENETRESET = Errno(0x66) + ENETUNREACH = Errno(0x65) + ENFILE = Errno(0x17) + ENOANO = Errno(0x37) + ENOBUFS = Errno(0x69) + ENOCSI = Errno(0x32) + ENODATA = Errno(0x3d) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOKEY = Errno(0x7e) + ENOLCK = Errno(0x25) + ENOLINK = Errno(0x43) + ENOMEDIUM = Errno(0x7b) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x2a) + ENONET = Errno(0x40) + ENOPKG = Errno(0x41) + ENOPROTOOPT = Errno(0x5c) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x3f) + ENOSTR = Errno(0x3c) + ENOSYS = Errno(0x26) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x6b) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x27) + ENOTNAM = Errno(0x76) + ENOTRECOVERABLE = Errno(0x83) + ENOTSOCK = Errno(0x58) + ENOTSUP = Errno(0x5f) + ENOTTY = Errno(0x19) + ENOTUNIQ = Errno(0x4c) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x5f) + EOVERFLOW = Errno(0x4b) + EOWNERDEAD = Errno(0x82) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x60) + EPIPE = Errno(0x20) + EPROTO = Errno(0x47) + EPROTONOSUPPORT = Errno(0x5d) + EPROTOTYPE = Errno(0x5b) + ERANGE = Errno(0x22) + EREMCHG = Errno(0x4e) + EREMOTE = Errno(0x42) + EREMOTEIO = Errno(0x79) + ERESTART = Errno(0x55) + ERFKILL = Errno(0x84) + EROFS = Errno(0x1e) + ESHUTDOWN = Errno(0x6c) + ESOCKTNOSUPPORT = Errno(0x5e) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESRMNT = Errno(0x45) + ESTALE = Errno(0x74) + ESTRPIPE = Errno(0x56) + ETIME = Errno(0x3e) + ETIMEDOUT = Errno(0x6e) + ETOOMANYREFS = Errno(0x6d) + ETXTBSY = Errno(0x1a) + EUCLEAN = Errno(0x75) + EUNATCH = Errno(0x31) + EUSERS = Errno(0x57) + EWOULDBLOCK = Errno(0xb) + EXDEV = Errno(0x12) + EXFULL = Errno(0x36) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0x7) + SIGCHLD = Signal(0x11) + SIGCLD = Signal(0x11) + SIGCONT = Signal(0x12) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINT = Signal(0x2) + SIGIO = Signal(0x1d) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPOLL = Signal(0x1d) + SIGPROF = Signal(0x1b) + SIGPWR = Signal(0x1e) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTKFLT = Signal(0x10) + SIGSTOP = Signal(0x13) + SIGSYS = Signal(0x1f) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x14) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGUNUSED = Signal(0x1f) + SIGURG = Signal(0x17) + SIGUSR1 = Signal(0xa) + SIGUSR2 = Signal(0xc) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_linux_arm64.go b/runtime/internal/clite/syscall/zerrors_linux_arm64.go new file mode 100644 index 00000000..dda2f7c8 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_linux_arm64.go @@ -0,0 +1,1632 @@ +// mkerrors.sh +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- _const.go + +//go:build arm64 && linux + +package syscall + +const ( + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x29 + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VSOCK = 0x28 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_X25 = 0x10f + B0 = 0x0 + B1000000 = 0x1008 + B110 = 0x3 + B115200 = 0x1002 + B1152000 = 0x1009 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1500000 = 0x100a + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2000000 = 0x100b + B230400 = 0x1003 + B2400 = 0xb + B2500000 = 0x100c + B300 = 0x7 + B3000000 = 0x100d + B3500000 = 0x100e + B38400 = 0xf + B4000000 = 0x100f + B460800 = 0x1004 + B4800 = 0xc + B50 = 0x1 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B600 = 0x8 + B75 = 0x2 + B921600 = 0x1007 + B9600 = 0xd + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x800 + CREAD = 0x80 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIGNAL = 0xff + CSIZE = 0x30 + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSTOPB = 0x40 + CSUSP = 0x1a + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x80000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MVRP = 0x88f5 + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PRP = 0x88fb + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + EXTA = 0xe + EXTB = 0xf + EXTPROC = 0x10000 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x1000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OK = 0x0 + F_RDLCK = 0x0 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + ICMPV6_FILTER = 0x1 + ICRNL = 0x100 + IEXTEN = 0x8000 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_NODAD = 0x2 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0x7 + IFF_802_1Q_VLAN = 0x1 + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BONDING = 0x20 + IFF_BRIDGE_PORT = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DISABLE_NETPOLL = 0x1000 + IFF_DONT_BRIDGE = 0x800 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_EBRIDGE = 0x2 + IFF_ECHO = 0x40000 + IFF_ISATAP = 0x80 + IFF_LIVE_ADDR_CHANGE = 0x100000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MACVLAN = 0x200000 + IFF_MACVLAN_PORT = 0x2000 + IFF_MASTER = 0x400 + IFF_MASTER_8023AD = 0x8 + IFF_MASTER_ALB = 0x10 + IFF_MASTER_ARPMON = 0x100 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_OVS_DATAPATH = 0x8000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_SLAVE_INACTIVE = 0x4 + IFF_SLAVE_NEEDARP = 0x40 + IFF_SUPP_NOFCS = 0x80000 + IFF_TAP = 0x2 + IFF_TEAM_PORT = 0x40000 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_TX_SKB_SHARING = 0x10000 + IFF_UNICAST_FLT = 0x20000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFF_WAN_HDLC = 0x200 + IFF_XMIT_DST_RELEASE = 0x400 + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x80000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x800 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_BEETPH = 0x5e + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MH = 0x87 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_CHECKSUM = 0x7 + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_UNICAST_HOPS = 0x10 + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BLOCK_SOURCE = 0x26 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_XFRM_POLICY = 0x11 + ISIG = 0x1 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x1000 + IXON = 0x400 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_HUGE_MASK = 0x3f + MAP_HUGE_SHIFT = 0x1a + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_STACK = 0x20000 + MAP_TYPE = 0xf + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + NAME_MAX = 0xff + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_RX_RING = 0x6 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NOFLSH = 0x80 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x10000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARENB = 0x100 + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x4000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_PTRACER_ANY = -0x1 + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x1000ff + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKETEXT = 0x4 + PTRACE_POKEUSR = 0x6 + PTRACE_SEIZE = 0x4206 + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_TRACEME = 0x0 + RLIMIT_AS = 0x9 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x7 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = -0x1 + RTAX_ADVMSS = 0x8 + RTAX_CWND = 0x7 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0xf + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x11 + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELLINK = 0x11 + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_NOTIFY = 0x100 + RTM_F_PREFIX = 0x800 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_MAX = 0x57 + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWLINK = 0x10 + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x12 + RTM_NR_MSGTYPES = 0x48 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_F_DEAD = 0x1 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTN_MAX = 0xb + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_GATED = 0x8 + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPNS = 0x23 + SCM_WIFI_STATUS = 0x29 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x8905 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCGARP = 0x8954 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGPGRP = 0x8904 + SIOCGRARP = 0x8961 + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSPGRP = 0x8902 + SIOCSRARP = 0x8962 + SOCK_CLOEXEC = 0x80000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_AAL = 0x109 + SOL_ATM = 0x108 + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_PACKET = 0x107 + SOL_RAW = 0xff + SOL_SOCKET = 0x1 + SOL_TCP = 0x6 + SOL_X25 = 0x106 + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_FILTER = 0x1a + SO_BINDTODEVICE = 0x19 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_DEBUG = 0x1 + SO_DETACH_FILTER = 0x1b + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_GET_FILTER = 0x1a + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_NOFCS = 0x2b + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1f + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCFLSH = 0x540b + TCIFLUSH = 0x0 + TCIOFLUSH = 0x2 + TCOFLUSH = 0x1 + TCP_CONGESTION = 0xd + TCP_COOKIE_IN_ALWAYS = 0x1 + TCP_COOKIE_MAX = 0x10 + TCP_COOKIE_MIN = 0x8 + TCP_COOKIE_OUT_NEVER = 0x2 + TCP_COOKIE_PAIR_SIZE = 0x20 + TCP_COOKIE_TRANSACTIONS = 0xf + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_FASTOPEN = 0x17 + TCP_INFO = 0xb + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_MSS_DEFAULT = 0x218 + TCP_MSS_DESIRED = 0x4c4 + TCP_NODELAY = 0x1 + TCP_QUEUE_SEQ = 0x15 + TCP_QUICKACK = 0xc + TCP_REPAIR = 0x13 + TCP_REPAIR_OPTIONS = 0x16 + TCP_REPAIR_QUEUE = 0x14 + TCP_SYNCNT = 0x7 + TCP_S_DATA_IN = 0x4 + TCP_S_DATA_OUT = 0x8 + TCP_THIN_DUPACK = 0x11 + TCP_THIN_LINEAR_TIMEOUTS = 0x10 + TCP_TIMESTAMP = 0x18 + TCP_USER_TIMEOUT = 0x12 + TCP_WINDOW_CLAMP = 0xa + TCSAFLUSH = 0x2 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETHDRSZ = 0x800454d7 + TUNSETDEBUG = 0x400454c9 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETHDRSZ = 0x400454d8 + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x6 + VQUIT = 0x1 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT0 = 0x0 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x40 + WSTOPPED = 0x2 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x62) + EADDRNOTAVAIL = Errno(0x63) + EADV = Errno(0x44) + EAFNOSUPPORT = Errno(0x61) + EAGAIN = Errno(0xb) + EALREADY = Errno(0x72) + EBADE = Errno(0x34) + EBADF = Errno(0x9) + EBADFD = Errno(0x4d) + EBADMSG = Errno(0x4a) + EBADR = Errno(0x35) + EBADRQC = Errno(0x38) + EBADSLT = Errno(0x39) + EBFONT = Errno(0x3b) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x7d) + ECHILD = Errno(0xa) + ECHRNG = Errno(0x2c) + ECOMM = Errno(0x46) + ECONNABORTED = Errno(0x67) + ECONNREFUSED = Errno(0x6f) + ECONNRESET = Errno(0x68) + EDEADLK = Errno(0x23) + EDEADLOCK = Errno(0x23) + EDESTADDRREQ = Errno(0x59) + EDOM = Errno(0x21) + EDOTDOT = Errno(0x49) + EDQUOT = Errno(0x7a) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EHOSTDOWN = Errno(0x70) + EHOSTUNREACH = Errno(0x71) + EHWPOISON = Errno(0x85) + EIDRM = Errno(0x2b) + EILSEQ = Errno(0x54) + EINPROGRESS = Errno(0x73) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x6a) + EISDIR = Errno(0x15) + EISNAM = Errno(0x78) + EKEYEXPIRED = Errno(0x7f) + EKEYREJECTED = Errno(0x81) + EKEYREVOKED = Errno(0x80) + EL2HLT = Errno(0x33) + EL2NSYNC = Errno(0x2d) + EL3HLT = Errno(0x2e) + EL3RST = Errno(0x2f) + ELIBACC = Errno(0x4f) + ELIBBAD = Errno(0x50) + ELIBEXEC = Errno(0x53) + ELIBMAX = Errno(0x52) + ELIBSCN = Errno(0x51) + ELNRNG = Errno(0x30) + ELOOP = Errno(0x28) + EMEDIUMTYPE = Errno(0x7c) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x5a) + EMULTIHOP = Errno(0x48) + ENAMETOOLONG = Errno(0x24) + ENAVAIL = Errno(0x77) + ENETDOWN = Errno(0x64) + ENETRESET = Errno(0x66) + ENETUNREACH = Errno(0x65) + ENFILE = Errno(0x17) + ENOANO = Errno(0x37) + ENOBUFS = Errno(0x69) + ENOCSI = Errno(0x32) + ENODATA = Errno(0x3d) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOKEY = Errno(0x7e) + ENOLCK = Errno(0x25) + ENOLINK = Errno(0x43) + ENOMEDIUM = Errno(0x7b) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x2a) + ENONET = Errno(0x40) + ENOPKG = Errno(0x41) + ENOPROTOOPT = Errno(0x5c) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x3f) + ENOSTR = Errno(0x3c) + ENOSYS = Errno(0x26) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x6b) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x27) + ENOTNAM = Errno(0x76) + ENOTRECOVERABLE = Errno(0x83) + ENOTSOCK = Errno(0x58) + ENOTSUP = Errno(0x5f) + ENOTTY = Errno(0x19) + ENOTUNIQ = Errno(0x4c) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x5f) + EOVERFLOW = Errno(0x4b) + EOWNERDEAD = Errno(0x82) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x60) + EPIPE = Errno(0x20) + EPROTO = Errno(0x47) + EPROTONOSUPPORT = Errno(0x5d) + EPROTOTYPE = Errno(0x5b) + ERANGE = Errno(0x22) + EREMCHG = Errno(0x4e) + EREMOTE = Errno(0x42) + EREMOTEIO = Errno(0x79) + ERESTART = Errno(0x55) + ERFKILL = Errno(0x84) + EROFS = Errno(0x1e) + ESHUTDOWN = Errno(0x6c) + ESOCKTNOSUPPORT = Errno(0x5e) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESRMNT = Errno(0x45) + ESTALE = Errno(0x74) + ESTRPIPE = Errno(0x56) + ETIME = Errno(0x3e) + ETIMEDOUT = Errno(0x6e) + ETOOMANYREFS = Errno(0x6d) + ETXTBSY = Errno(0x1a) + EUCLEAN = Errno(0x75) + EUNATCH = Errno(0x31) + EUSERS = Errno(0x57) + EWOULDBLOCK = Errno(0xb) + EXDEV = Errno(0x12) + EXFULL = Errno(0x36) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0x7) + SIGCHLD = Signal(0x11) + SIGCLD = Signal(0x11) + SIGCONT = Signal(0x12) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINT = Signal(0x2) + SIGIO = Signal(0x1d) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPOLL = Signal(0x1d) + SIGPROF = Signal(0x1b) + SIGPWR = Signal(0x1e) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTKFLT = Signal(0x10) + SIGSTOP = Signal(0x13) + SIGSYS = Signal(0x1f) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x14) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGUNUSED = Signal(0x1f) + SIGURG = Signal(0x17) + SIGUSR1 = Signal(0xa) + SIGUSR2 = Signal(0xc) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_linux_loong64.go b/runtime/internal/clite/syscall/zerrors_linux_loong64.go new file mode 100644 index 00000000..37fa6e1a --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_linux_loong64.go @@ -0,0 +1,1931 @@ +// mkerrors.sh +// Code generated by the command above; DO NOT EDIT. + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- _const.go + +package syscall + +const ( + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IB = 0x1b + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KCM = 0x29 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x2e + AF_MCTP = 0x2d + AF_MPLS = 0x1c + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_QIPCRTR = 0x2a + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SMC = 0x2b + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VSOCK = 0x28 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + AF_XDP = 0x2c + ARPHRD_6LOWPAN = 0x339 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_MCTP = 0x122 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_RAWIP = 0x207 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_VSOCKMON = 0x33a + ARPHRD_X25 = 0x10f + B0 = 0x0 + B1000000 = 0x1008 + B110 = 0x3 + B115200 = 0x1002 + B1152000 = 0x1009 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1500000 = 0x100a + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2000000 = 0x100b + B230400 = 0x1003 + B2400 = 0xb + B2500000 = 0x100c + B300 = 0x7 + B3000000 = 0x100d + B3500000 = 0x100e + B38400 = 0xf + B4000000 = 0x100f + B460800 = 0x1004 + B4800 = 0xc + B50 = 0x1 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B600 = 0x8 + B75 = 0x2 + B921600 = 0x1007 + B9600 = 0xd + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LL_OFF = -0x200000 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_NET_OFF = -0x100000 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x800 + CLONE_ARGS_SIZE_VER0 = 0x40 + CLONE_ARGS_SIZE_VER1 = 0x50 + CLONE_ARGS_SIZE_VER2 = 0x58 + CREAD = 0x80 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIGNAL = 0xff + CSIZE = 0x30 + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSTOPB = 0x40 + CSUSP = 0x1a + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLEXCLUSIVE = 0x10000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x80000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_80221 = 0x8917 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CFM = 0x8902 + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_DSA_8021Q = 0xdadb + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_ERSPAN = 0x88be + ETH_P_ERSPAN2 = 0x22eb + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_HSR = 0x892f + ETH_P_IBOE = 0x8915 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IFE = 0xed3e + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LLDP = 0x88cc + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_LOOPBACK = 0x9000 + ETH_P_MACSEC = 0x88e5 + ETH_P_MAP = 0xf9 + ETH_P_MCTP = 0xfa + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MRP = 0x88e3 + ETH_P_MVRP = 0x88f5 + ETH_P_NCSI = 0x88f8 + ETH_P_NSH = 0x894f + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PREAUTH = 0x88c7 + ETH_P_PRP = 0x88fb + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_REALTEK = 0x8899 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_TSN = 0x22f0 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + ETH_P_XDSA = 0xf8 + EXTA = 0xe + EXTB = 0xf + EXTPROC = 0x10000 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x1000 + F_ADD_SEALS = 0x409 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_GET_FILE_RW_HINT = 0x40d + F_GET_RW_HINT = 0x40b + F_GET_SEALS = 0x40a + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OFD_GETLK = 0x24 + F_OFD_SETLK = 0x25 + F_OFD_SETLKW = 0x26 + F_OK = 0x0 + F_RDLCK = 0x0 + F_SEAL_FUTURE_WRITE = 0x10 + F_SEAL_GROW = 0x4 + F_SEAL_SEAL = 0x1 + F_SEAL_SHRINK = 0x2 + F_SEAL_WRITE = 0x8 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SET_FILE_RW_HINT = 0x40e + F_SET_RW_HINT = 0x40c + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + ICMPV6_FILTER = 0x1 + ICRNL = 0x100 + IEXTEN = 0x8000 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_MANAGETEMPADDR = 0x100 + IFA_F_MCAUTOJOIN = 0x400 + IFA_F_NODAD = 0x2 + IFA_F_NOPREFIXROUTE = 0x200 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_STABLE_PRIVACY = 0x800 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0xa + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_ECHO = 0x40000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MASTER = 0x400 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NAPI = 0x10 + IFF_NAPI_FRAGS = 0x20 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_TAP = 0x2 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x80000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MASK_CREATE = 0x10000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x800 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_BEETPH = 0x5e + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERNET = 0x8f + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MH = 0x87 + IPPROTO_MPLS = 0x89 + IPPROTO_MPTCP = 0x106 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADDR_PREFERENCES = 0x48 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_AUTOFLOWLABEL = 0x46 + IPV6_CHECKSUM = 0x7 + IPV6_DONTFRAG = 0x3e + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_FREEBIND = 0x4e + IPV6_HDRINCL = 0x24 + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MINHOPCOUNT = 0x49 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_ALL = 0x1d + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_ORIGDSTADDR = 0x4a + IPV6_PATHMTU = 0x3d + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_INTERFACE = 0x4 + IPV6_PMTUDISC_OMIT = 0x5 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVERR_RFC4884 = 0x1f + IPV6_RECVFRAGSIZE = 0x4d + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVORIGDSTADDR = 0x4a + IPV6_RECVPATHMTU = 0x3c + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_ROUTER_ALERT_ISOLATE = 0x1e + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_TRANSPARENT = 0x4b + IPV6_UNICAST_HOPS = 0x10 + IPV6_UNICAST_IF = 0x4c + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BIND_ADDRESS_NO_PORT = 0x18 + IP_BLOCK_SOURCE = 0x26 + IP_CHECKSUM = 0x17 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_NODEFRAG = 0x16 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_INTERFACE = 0x4 + IP_PMTUDISC_OMIT = 0x5 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVERR_RFC4884 = 0x1a + IP_RECVFRAGSIZE = 0x19 + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_XFRM_POLICY = 0x11 + ISIG = 0x1 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x1000 + IXON = 0x400 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_COLD = 0x14 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_FREE = 0x8 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_KEEPONFORK = 0x13 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_PAGEOUT = 0x15 + MADV_POPULATE_READ = 0x16 + MADV_POPULATE_WRITE = 0x17 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MADV_WIPEONFORK = 0x12 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FIXED_NOREPLACE = 0x100000 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_HUGE_MASK = 0x3f + MAP_HUGE_SHIFT = 0x1a + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_SHARED_VALIDATE = 0x3 + MAP_STACK = 0x20000 + MAP_SYNC = 0x80000 + MAP_TYPE = 0xf + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MSG_BATCH = 0x40000 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MSG_ZEROCOPY = 0x4000000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_LAZYTIME = 0x2000000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOSUID = 0x2 + MS_NOSYMFOLLOW = 0x100 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x2800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + NAME_MAX = 0xff + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CAP_ACK = 0xa + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_EXT_ACK = 0xb + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_GET_STRICT_CHK = 0xc + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_LISTEN_ALL_NSID = 0x8 + NETLINK_LIST_MEMBERSHIPS = 0x9 + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_RX_RING = 0x6 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_SMC = 0x16 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_ACK_TLVS = 0x200 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CAPPED = 0x100 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_FILTERED = 0x20 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_NONREC = 0x100 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NOFLSH = 0x80 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CBPF = 0x6 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_DATA = 0x16 + PACKET_FANOUT_EBPF = 0x7 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_FLAG_UNIQUEID = 0x2000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_QM = 0x5 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_IGNORE_OUTGOING = 0x17 + PACKET_KERNEL = 0x7 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_QDISC_BYPASS = 0x14 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_ROLLOVER_STATS = 0x15 + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_USER = 0x6 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARENB = 0x100 + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x4000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_CAP_AMBIENT = 0x2f + PR_CAP_AMBIENT_CLEAR_ALL = 0x4 + PR_CAP_AMBIENT_IS_SET = 0x1 + PR_CAP_AMBIENT_LOWER = 0x3 + PR_CAP_AMBIENT_RAISE = 0x2 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_FP_MODE_FR = 0x1 + PR_FP_MODE_FRE = 0x2 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_FP_MODE = 0x2e + PR_GET_IO_FLUSHER = 0x3a + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_SPECULATION_CTRL = 0x34 + PR_GET_TAGGED_ADDR_CTRL = 0x38 + PR_GET_THP_DISABLE = 0x2a + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_MPX_DISABLE_MANAGEMENT = 0x2c + PR_MPX_ENABLE_MANAGEMENT = 0x2b + PR_MTE_TAG_MASK = 0x7fff8 + PR_MTE_TAG_SHIFT = 0x3 + PR_MTE_TCF_ASYNC = 0x4 + PR_MTE_TCF_MASK = 0x6 + PR_MTE_TCF_NONE = 0x0 + PR_MTE_TCF_SHIFT = 0x1 + PR_MTE_TCF_SYNC = 0x2 + PR_PAC_APDAKEY = 0x4 + PR_PAC_APDBKEY = 0x8 + PR_PAC_APGAKEY = 0x10 + PR_PAC_APIAKEY = 0x1 + PR_PAC_APIBKEY = 0x2 + PR_PAC_GET_ENABLED_KEYS = 0x3d + PR_PAC_RESET_KEYS = 0x36 + PR_PAC_SET_ENABLED_KEYS = 0x3c + PR_SCHED_CORE = 0x3e + PR_SCHED_CORE_CREATE = 0x1 + PR_SCHED_CORE_GET = 0x0 + PR_SCHED_CORE_MAX = 0x4 + PR_SCHED_CORE_SCOPE_PROCESS_GROUP = 0x2 + PR_SCHED_CORE_SCOPE_THREAD = 0x0 + PR_SCHED_CORE_SCOPE_THREAD_GROUP = 0x1 + PR_SCHED_CORE_SHARE_FROM = 0x3 + PR_SCHED_CORE_SHARE_TO = 0x2 + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_FP_MODE = 0x2d + PR_SET_IO_FLUSHER = 0x39 + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_MAP = 0xe + PR_SET_MM_MAP_SIZE = 0xf + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_PTRACER_ANY = 0xffffffffffffffff + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_SPECULATION_CTRL = 0x35 + PR_SET_SYSCALL_USER_DISPATCH = 0x3b + PR_SET_TAGGED_ADDR_CTRL = 0x37 + PR_SET_THP_DISABLE = 0x29 + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_SET_VMA = 0x53564d41 + PR_SET_VMA_ANON_NAME = 0x0 + PR_SPEC_DISABLE = 0x4 + PR_SPEC_DISABLE_NOEXEC = 0x10 + PR_SPEC_ENABLE = 0x2 + PR_SPEC_FORCE_DISABLE = 0x8 + PR_SPEC_INDIRECT_BRANCH = 0x1 + PR_SPEC_L1D_FLUSH = 0x2 + PR_SPEC_NOT_AFFECTED = 0x0 + PR_SPEC_PRCTL = 0x1 + PR_SPEC_STORE_BYPASS = 0x0 + PR_SVE_GET_VL = 0x33 + PR_SVE_SET_VL = 0x32 + PR_SVE_SET_VL_ONEXEC = 0x40000 + PR_SVE_VL_INHERIT = 0x20000 + PR_SVE_VL_LEN_MASK = 0xffff + PR_SYS_DISPATCH_OFF = 0x0 + PR_SYS_DISPATCH_ON = 0x1 + PR_TAGGED_ADDR_ENABLE = 0x1 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENTMSG_SYSCALL_ENTRY = 0x1 + PTRACE_EVENTMSG_SYSCALL_EXIT = 0x2 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_GET_RSEQ_CONFIGURATION = 0x420f + PTRACE_GET_SYSCALL_INFO = 0x420e + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x3000ff + PTRACE_O_SUSPEND_SECCOMP = 0x200000 + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKETEXT = 0x4 + PTRACE_POKEUSR = 0x6 + PTRACE_SECCOMP_GET_FILTER = 0x420c + PTRACE_SECCOMP_GET_METADATA = 0x420d + PTRACE_SEIZE = 0x4206 + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_SYSCALL_INFO_ENTRY = 0x1 + PTRACE_SYSCALL_INFO_EXIT = 0x2 + PTRACE_SYSCALL_INFO_NONE = 0x0 + PTRACE_SYSCALL_INFO_SECCOMP = 0x3 + PTRACE_SYSEMU = 0x1f + PTRACE_SYSEMU_SINGLESTEP = 0x20 + PTRACE_TRACEME = 0x0 + RLIMIT_AS = 0x9 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x7 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0xffffffffffffffff + RTAX_ADVMSS = 0x8 + RTAX_CC_ALGO = 0x10 + RTAX_CWND = 0x7 + RTAX_FASTOPEN_NO_COOKIE = 0x11 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_MASK = 0xf + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0x11 + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x1e + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELCHAIN = 0x65 + RTM_DELLINK = 0x11 + RTM_DELLINKPROP = 0x6d + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELNETCONF = 0x51 + RTM_DELNEXTHOP = 0x69 + RTM_DELNEXTHOPBUCKET = 0x75 + RTM_DELNSID = 0x59 + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_DELVLAN = 0x71 + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_FIB_MATCH = 0x2000 + RTM_F_LOOKUP_TABLE = 0x1000 + RTM_F_NOTIFY = 0x100 + RTM_F_OFFLOAD = 0x4000 + RTM_F_OFFLOAD_FAILED = 0x20000000 + RTM_F_PREFIX = 0x800 + RTM_F_TRAP = 0x8000 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETCHAIN = 0x66 + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETLINKPROP = 0x6e + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETNEXTHOP = 0x6a + RTM_GETNEXTHOPBUCKET = 0x76 + RTM_GETNSID = 0x5a + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETSTATS = 0x5e + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_GETVLAN = 0x72 + RTM_MAX = 0x77 + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWCACHEREPORT = 0x60 + RTM_NEWCHAIN = 0x64 + RTM_NEWLINK = 0x10 + RTM_NEWLINKPROP = 0x6c + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWNEXTHOP = 0x68 + RTM_NEWNEXTHOPBUCKET = 0x74 + RTM_NEWNSID = 0x58 + RTM_NEWNVLAN = 0x70 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWSTATS = 0x5c + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x1a + RTM_NR_MSGTYPES = 0x68 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_COMPARE_MASK = 0x59 + RTNH_F_DEAD = 0x1 + RTNH_F_LINKDOWN = 0x10 + RTNH_F_OFFLOAD = 0x8 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTNH_F_TRAP = 0x40 + RTNH_F_UNRESOLVED = 0x20 + RTN_MAX = 0xb + RTPROT_BABEL = 0x2a + RTPROT_BGP = 0xba + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_EIGRP = 0xc0 + RTPROT_GATED = 0x8 + RTPROT_ISIS = 0xbb + RTPROT_KEEPALIVED = 0x12 + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_OPENR = 0x63 + RTPROT_OSPF = 0xbc + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_RIP = 0xbd + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPING_OPT_STATS = 0x36 + SCM_TIMESTAMPING_PKTINFO = 0x3a + SCM_TIMESTAMPNS = 0x23 + SCM_TXTIME = 0x3d + SCM_WIFI_STATUS = 0x29 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x8905 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCGARP = 0x8954 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGPGRP = 0x8904 + SIOCGRARP = 0x8961 + SIOCGSTAMPNS_OLD = 0x8907 + SIOCGSTAMP_OLD = 0x8906 + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSPGRP = 0x8902 + SIOCSRARP = 0x8962 + SOCK_BUF_LOCK_MASK = 0x3 + SOCK_CLOEXEC = 0x80000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RCVBUF_LOCK = 0x2 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_SNDBUF_LOCK = 0x1 + SOCK_STREAM = 0x1 + SOL_AAL = 0x109 + SOL_ALG = 0x117 + SOL_ATM = 0x108 + SOL_BLUETOOTH = 0x112 + SOL_CAIF = 0x116 + SOL_DCCP = 0x10d + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_IUCV = 0x115 + SOL_KCM = 0x119 + SOL_LLC = 0x10c + SOL_NETBEUI = 0x10b + SOL_NETLINK = 0x10e + SOL_NFC = 0x118 + SOL_PACKET = 0x107 + SOL_PNPIPE = 0x113 + SOL_PPPOL2TP = 0x111 + SOL_RAW = 0xff + SOL_RDS = 0x114 + SOL_RXRPC = 0x110 + SOL_SOCKET = 0x1 + SOL_TCP = 0x6 + SOL_TIPC = 0x10f + SOL_TLS = 0x11a + SOL_X25 = 0x106 + SOL_XDP = 0x11b + SOMAXCONN = 0x1000 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_FILTER = 0x1a + SO_ATTACH_REUSEPORT_CBPF = 0x33 + SO_ATTACH_REUSEPORT_EBPF = 0x34 + SO_BINDTODEVICE = 0x19 + SO_BINDTOIFINDEX = 0x3e + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUF_LOCK = 0x48 + SO_BUSY_POLL = 0x2e + SO_BUSY_POLL_BUDGET = 0x46 + SO_CNX_ADVICE = 0x35 + SO_COOKIE = 0x39 + SO_DEBUG = 0x1 + SO_DETACH_BPF = 0x1b + SO_DETACH_FILTER = 0x1b + SO_DETACH_REUSEPORT_BPF = 0x44 + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_GET_FILTER = 0x1a + SO_INCOMING_CPU = 0x31 + SO_INCOMING_NAPI_ID = 0x38 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_MEMINFO = 0x37 + SO_NETNS_COOKIE = 0x47 + SO_NOFCS = 0x2b + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERGROUPS = 0x3b + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1f + SO_PREFER_BUSY_POLL = 0x45 + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_RCVTIMEO_NEW = 0x42 + SO_RCVTIMEO_OLD = 0x14 + SO_RESERVE_MEM = 0x49 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_SNDTIMEO_NEW = 0x43 + SO_SNDTIMEO_OLD = 0x15 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPING_NEW = 0x41 + SO_TIMESTAMPING_OLD = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TIMESTAMPNS_NEW = 0x40 + SO_TIMESTAMPNS_OLD = 0x23 + SO_TIMESTAMP_NEW = 0x3f + SO_TIMESTAMP_OLD = 0x1d + SO_TXTIME = 0x3d + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + SO_ZEROCOPY = 0x3c + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCFLSH = 0x540b + TCIFLUSH = 0x0 + TCIOFLUSH = 0x2 + TCOFLUSH = 0x1 + TCP_CC_INFO = 0x1a + TCP_CM_INQ = 0x24 + TCP_CONGESTION = 0xd + TCP_COOKIE_IN_ALWAYS = 0x1 + TCP_COOKIE_MAX = 0x10 + TCP_COOKIE_MIN = 0x8 + TCP_COOKIE_OUT_NEVER = 0x2 + TCP_COOKIE_PAIR_SIZE = 0x20 + TCP_COOKIE_TRANSACTIONS = 0xf + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_FASTOPEN = 0x17 + TCP_FASTOPEN_CONNECT = 0x1e + TCP_FASTOPEN_KEY = 0x21 + TCP_FASTOPEN_NO_COOKIE = 0x22 + TCP_INFO = 0xb + TCP_INQ = 0x24 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_EXT = 0x20 + TCP_MD5SIG_FLAG_PREFIX = 0x1 + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_MSS_DEFAULT = 0x218 + TCP_MSS_DESIRED = 0x4c4 + TCP_NODELAY = 0x1 + TCP_NOTSENT_LOWAT = 0x19 + TCP_QUEUE_SEQ = 0x15 + TCP_QUICKACK = 0xc + TCP_REPAIR = 0x13 + TCP_REPAIR_OFF = 0x0 + TCP_REPAIR_OFF_NO_WP = -0x1 + TCP_REPAIR_ON = 0x1 + TCP_REPAIR_OPTIONS = 0x16 + TCP_REPAIR_QUEUE = 0x14 + TCP_REPAIR_WINDOW = 0x1d + TCP_SAVED_SYN = 0x1c + TCP_SAVE_SYN = 0x1b + TCP_SYNCNT = 0x7 + TCP_S_DATA_IN = 0x4 + TCP_S_DATA_OUT = 0x8 + TCP_THIN_DUPACK = 0x11 + TCP_THIN_LINEAR_TIMEOUTS = 0x10 + TCP_TIMESTAMP = 0x18 + TCP_TX_DELAY = 0x25 + TCP_ULP = 0x1f + TCP_USER_TIMEOUT = 0x12 + TCP_WINDOW_CLAMP = 0xa + TCP_ZEROCOPY_RECEIVE = 0x23 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGISO7816 = 0x80285442 + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGPTPEER = 0x5441 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSISO7816 = 0xc0285443 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETDEVNETNS = 0x54e3 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETCARRIER = 0x400454e2 + TUNSETDEBUG = 0x400454c9 + TUNSETFILTEREBPF = 0x800454e1 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETSTEERINGEBPF = 0x800454e0 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x6 + VQUIT = 0x1 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT0 = 0x0 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x40 + WSTOPPED = 0x2 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x62) + EADDRNOTAVAIL = Errno(0x63) + EADV = Errno(0x44) + EAFNOSUPPORT = Errno(0x61) + EAGAIN = Errno(0xb) + EALREADY = Errno(0x72) + EBADE = Errno(0x34) + EBADF = Errno(0x9) + EBADFD = Errno(0x4d) + EBADMSG = Errno(0x4a) + EBADR = Errno(0x35) + EBADRQC = Errno(0x38) + EBADSLT = Errno(0x39) + EBFONT = Errno(0x3b) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x7d) + ECHILD = Errno(0xa) + ECHRNG = Errno(0x2c) + ECOMM = Errno(0x46) + ECONNABORTED = Errno(0x67) + ECONNREFUSED = Errno(0x6f) + ECONNRESET = Errno(0x68) + EDEADLK = Errno(0x23) + EDEADLOCK = Errno(0x23) + EDESTADDRREQ = Errno(0x59) + EDOM = Errno(0x21) + EDOTDOT = Errno(0x49) + EDQUOT = Errno(0x7a) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EHOSTDOWN = Errno(0x70) + EHOSTUNREACH = Errno(0x71) + EHWPOISON = Errno(0x85) + EIDRM = Errno(0x2b) + EILSEQ = Errno(0x54) + EINPROGRESS = Errno(0x73) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x6a) + EISDIR = Errno(0x15) + EISNAM = Errno(0x78) + EKEYEXPIRED = Errno(0x7f) + EKEYREJECTED = Errno(0x81) + EKEYREVOKED = Errno(0x80) + EL2HLT = Errno(0x33) + EL2NSYNC = Errno(0x2d) + EL3HLT = Errno(0x2e) + EL3RST = Errno(0x2f) + ELIBACC = Errno(0x4f) + ELIBBAD = Errno(0x50) + ELIBEXEC = Errno(0x53) + ELIBMAX = Errno(0x52) + ELIBSCN = Errno(0x51) + ELNRNG = Errno(0x30) + ELOOP = Errno(0x28) + EMEDIUMTYPE = Errno(0x7c) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x5a) + EMULTIHOP = Errno(0x48) + ENAMETOOLONG = Errno(0x24) + ENAVAIL = Errno(0x77) + ENETDOWN = Errno(0x64) + ENETRESET = Errno(0x66) + ENETUNREACH = Errno(0x65) + ENFILE = Errno(0x17) + ENOANO = Errno(0x37) + ENOBUFS = Errno(0x69) + ENOCSI = Errno(0x32) + ENODATA = Errno(0x3d) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOKEY = Errno(0x7e) + ENOLCK = Errno(0x25) + ENOLINK = Errno(0x43) + ENOMEDIUM = Errno(0x7b) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x2a) + ENONET = Errno(0x40) + ENOPKG = Errno(0x41) + ENOPROTOOPT = Errno(0x5c) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x3f) + ENOSTR = Errno(0x3c) + ENOSYS = Errno(0x26) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x6b) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x27) + ENOTNAM = Errno(0x76) + ENOTRECOVERABLE = Errno(0x83) + ENOTSOCK = Errno(0x58) + ENOTSUP = Errno(0x5f) + ENOTTY = Errno(0x19) + ENOTUNIQ = Errno(0x4c) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x5f) + EOVERFLOW = Errno(0x4b) + EOWNERDEAD = Errno(0x82) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x60) + EPIPE = Errno(0x20) + EPROTO = Errno(0x47) + EPROTONOSUPPORT = Errno(0x5d) + EPROTOTYPE = Errno(0x5b) + ERANGE = Errno(0x22) + EREMCHG = Errno(0x4e) + EREMOTE = Errno(0x42) + EREMOTEIO = Errno(0x79) + ERESTART = Errno(0x55) + ERFKILL = Errno(0x84) + EROFS = Errno(0x1e) + ESHUTDOWN = Errno(0x6c) + ESOCKTNOSUPPORT = Errno(0x5e) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESRMNT = Errno(0x45) + ESTALE = Errno(0x74) + ESTRPIPE = Errno(0x56) + ETIME = Errno(0x3e) + ETIMEDOUT = Errno(0x6e) + ETOOMANYREFS = Errno(0x6d) + ETXTBSY = Errno(0x1a) + EUCLEAN = Errno(0x75) + EUNATCH = Errno(0x31) + EUSERS = Errno(0x57) + EWOULDBLOCK = Errno(0xb) + EXDEV = Errno(0x12) + EXFULL = Errno(0x36) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0x7) + SIGCHLD = Signal(0x11) + SIGCLD = Signal(0x11) + SIGCONT = Signal(0x12) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINT = Signal(0x2) + SIGIO = Signal(0x1d) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPOLL = Signal(0x1d) + SIGPROF = Signal(0x1b) + SIGPWR = Signal(0x1e) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTKFLT = Signal(0x10) + SIGSTOP = Signal(0x13) + SIGSYS = Signal(0x1f) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x14) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x17) + SIGUSR1 = Signal(0xa) + SIGUSR2 = Signal(0xc) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_linux_mips.go b/runtime/internal/clite/syscall/zerrors_linux_mips.go new file mode 100644 index 00000000..6f8d70a8 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_linux_mips.go @@ -0,0 +1,1639 @@ +// mkerrors.sh +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- _const.go + +package syscall + +const ( + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x29 + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VSOCK = 0x28 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + ARPHRD_6LOWPAN = 0x339 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_X25 = 0x10f + B0 = 0x0 + B1000000 = 0x1008 + B110 = 0x3 + B115200 = 0x1002 + B1152000 = 0x1009 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1500000 = 0x100a + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2000000 = 0x100b + B230400 = 0x1003 + B2400 = 0xb + B2500000 = 0x100c + B300 = 0x7 + B3000000 = 0x100d + B3500000 = 0x100e + B38400 = 0xf + B4000000 = 0x100f + B460800 = 0x1004 + B4800 = 0xc + B50 = 0x1 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B600 = 0x8 + B75 = 0x2 + B921600 = 0x1007 + B9600 = 0xd + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x800 + CREAD = 0x80 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIGNAL = 0xff + CSIZE = 0x30 + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSTOPB = 0x40 + CSUSP = 0x1a + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x80000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_80221 = 0x8917 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_LOOPBACK = 0x9000 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MVRP = 0x88f5 + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PRP = 0x88fb + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + EXTA = 0xe + EXTB = 0xf + EXTPROC = 0x10000 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x2000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0x21 + F_GETLK64 = 0x21 + F_GETOWN = 0x17 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OK = 0x0 + F_RDLCK = 0x0 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0x22 + F_SETLK64 = 0x22 + F_SETLKW = 0x23 + F_SETLKW64 = 0x23 + F_SETOWN = 0x18 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + ICMPV6_FILTER = 0x1 + ICRNL = 0x100 + IEXTEN = 0x100 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_MANAGETEMPADDR = 0x100 + IFA_F_NODAD = 0x2 + IFA_F_NOPREFIXROUTE = 0x200 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0x8 + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_ECHO = 0x40000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MASTER = 0x400 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_TAP = 0x2 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x80000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x80 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_BEETPH = 0x5e + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MH = 0x87 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_CHECKSUM = 0x7 + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_UNICAST_HOPS = 0x10 + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BLOCK_SOURCE = 0x26 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_XFRM_POLICY = 0x11 + ISIG = 0x1 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x1000 + IXON = 0x400 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_HUGE_MASK = 0x3f + MAP_HUGE_SHIFT = 0x1a + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x800 + MAP_SHARED = 0x1 + MAP_STACK = 0x40000 + MAP_TYPE = 0xf + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + NAME_MAX = 0xff + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_RX_RING = 0x6 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NOFLSH = 0x80 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x2000 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_QM = 0x5 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_KERNEL = 0x7 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_QDISC_BYPASS = 0x14 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_USER = 0x6 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARENB = 0x100 + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x4000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_THP_DISABLE = 0x2a + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_PTRACER_ANY = 0xffffffff + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_THP_DISABLE = 0x29 + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x1000ff + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT = 0x4 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_POKEUSR = 0x6 + PTRACE_SEIZE = 0x4206 + PTRACE_SETFPREGS = 0xf + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_TRACEME = 0x0 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = -0x1 + RTAX_ADVMSS = 0x8 + RTAX_CWND = 0x7 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0xf + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x11 + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELLINK = 0x11 + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_NOTIFY = 0x100 + RTM_F_PREFIX = 0x800 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_MAX = 0x57 + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWLINK = 0x10 + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x12 + RTM_NR_MSGTYPES = 0x48 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_F_DEAD = 0x1 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTN_MAX = 0xb + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_GATED = 0x8 + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPNS = 0x23 + SCM_WIFI_STATUS = 0x29 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x40047307 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCGARP = 0x8954 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGPGRP = 0x40047309 + SIOCGRARP = 0x8961 + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSPGRP = 0x80047308 + SIOCSRARP = 0x8962 + SOCK_CLOEXEC = 0x80000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x2 + SOL_AAL = 0x109 + SOL_ATM = 0x108 + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_PACKET = 0x107 + SOL_RAW = 0xff + SOL_SOCKET = 0xffff + SOL_TCP = 0x6 + SOL_X25 = 0x106 + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_FILTER = 0x1a + SO_BINDTODEVICE = 0x19 + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_DEBUG = 0x1 + SO_DETACH_FILTER = 0x1b + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_GET_FILTER = 0x1a + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_NOFCS = 0x2b + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1e + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCFLSH = 0x5407 + TCIFLUSH = 0x0 + TCIOFLUSH = 0x2 + TCOFLUSH = 0x1 + TCP_CONGESTION = 0xd + TCP_COOKIE_IN_ALWAYS = 0x1 + TCP_COOKIE_MAX = 0x10 + TCP_COOKIE_MIN = 0x8 + TCP_COOKIE_OUT_NEVER = 0x2 + TCP_COOKIE_PAIR_SIZE = 0x20 + TCP_COOKIE_TRANSACTIONS = 0xf + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_FASTOPEN = 0x17 + TCP_INFO = 0xb + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_MSS_DEFAULT = 0x218 + TCP_MSS_DESIRED = 0x4c4 + TCP_NODELAY = 0x1 + TCP_QUEUE_SEQ = 0x15 + TCP_QUICKACK = 0xc + TCP_REPAIR = 0x13 + TCP_REPAIR_OPTIONS = 0x16 + TCP_REPAIR_QUEUE = 0x14 + TCP_SYNCNT = 0x7 + TCP_S_DATA_IN = 0x4 + TCP_S_DATA_OUT = 0x8 + TCP_THIN_DUPACK = 0x11 + TCP_THIN_LINEAR_TIMEOUTS = 0x10 + TCP_TIMESTAMP = 0x18 + TCP_USER_TIMEOUT = 0x12 + TCP_WINDOW_CLAMP = 0xa + TCSAFLUSH = 0x5410 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x800854d5 + TUNDETACHFILTER = 0x800854d6 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x400854db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETHDRSZ = 0x400454d7 + TUNSETDEBUG = 0x800454c9 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETHDRSZ = 0x800454d8 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT0 = 0x0 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x20 + WSTOPPED = 0x2 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x7d) + EADDRNOTAVAIL = Errno(0x7e) + EADV = Errno(0x44) + EAFNOSUPPORT = Errno(0x7c) + EAGAIN = Errno(0xb) + EALREADY = Errno(0x95) + EBADE = Errno(0x32) + EBADF = Errno(0x9) + EBADFD = Errno(0x51) + EBADMSG = Errno(0x4d) + EBADR = Errno(0x33) + EBADRQC = Errno(0x36) + EBADSLT = Errno(0x37) + EBFONT = Errno(0x3b) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x9e) + ECHILD = Errno(0xa) + ECHRNG = Errno(0x25) + ECOMM = Errno(0x46) + ECONNABORTED = Errno(0x82) + ECONNREFUSED = Errno(0x92) + ECONNRESET = Errno(0x83) + EDEADLK = Errno(0x2d) + EDEADLOCK = Errno(0x38) + EDESTADDRREQ = Errno(0x60) + EDOM = Errno(0x21) + EDOTDOT = Errno(0x49) + EDQUOT = Errno(0x46d) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EHOSTDOWN = Errno(0x93) + EHOSTUNREACH = Errno(0x94) + EHWPOISON = Errno(0xa8) + EIDRM = Errno(0x24) + EILSEQ = Errno(0x58) + EINIT = Errno(0x8d) + EINPROGRESS = Errno(0x96) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x85) + EISDIR = Errno(0x15) + EISNAM = Errno(0x8b) + EKEYEXPIRED = Errno(0xa2) + EKEYREJECTED = Errno(0xa4) + EKEYREVOKED = Errno(0xa3) + EL2HLT = Errno(0x2c) + EL2NSYNC = Errno(0x26) + EL3HLT = Errno(0x27) + EL3RST = Errno(0x28) + ELIBACC = Errno(0x53) + ELIBBAD = Errno(0x54) + ELIBEXEC = Errno(0x57) + ELIBMAX = Errno(0x56) + ELIBSCN = Errno(0x55) + ELNRNG = Errno(0x29) + ELOOP = Errno(0x5a) + EMEDIUMTYPE = Errno(0xa0) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x61) + EMULTIHOP = Errno(0x4a) + ENAMETOOLONG = Errno(0x4e) + ENAVAIL = Errno(0x8a) + ENETDOWN = Errno(0x7f) + ENETRESET = Errno(0x81) + ENETUNREACH = Errno(0x80) + ENFILE = Errno(0x17) + ENOANO = Errno(0x35) + ENOBUFS = Errno(0x84) + ENOCSI = Errno(0x2b) + ENODATA = Errno(0x3d) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOKEY = Errno(0xa1) + ENOLCK = Errno(0x2e) + ENOLINK = Errno(0x43) + ENOMEDIUM = Errno(0x9f) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x23) + ENONET = Errno(0x40) + ENOPKG = Errno(0x41) + ENOPROTOOPT = Errno(0x63) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x3f) + ENOSTR = Errno(0x3c) + ENOSYS = Errno(0x59) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x86) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x5d) + ENOTNAM = Errno(0x89) + ENOTRECOVERABLE = Errno(0xa6) + ENOTSOCK = Errno(0x5f) + ENOTSUP = Errno(0x7a) + ENOTTY = Errno(0x19) + ENOTUNIQ = Errno(0x50) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x7a) + EOVERFLOW = Errno(0x4f) + EOWNERDEAD = Errno(0xa5) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x7b) + EPIPE = Errno(0x20) + EPROTO = Errno(0x47) + EPROTONOSUPPORT = Errno(0x78) + EPROTOTYPE = Errno(0x62) + ERANGE = Errno(0x22) + EREMCHG = Errno(0x52) + EREMDEV = Errno(0x8e) + EREMOTE = Errno(0x42) + EREMOTEIO = Errno(0x8c) + ERESTART = Errno(0x5b) + ERFKILL = Errno(0xa7) + EROFS = Errno(0x1e) + ESHUTDOWN = Errno(0x8f) + ESOCKTNOSUPPORT = Errno(0x79) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESRMNT = Errno(0x45) + ESTALE = Errno(0x97) + ESTRPIPE = Errno(0x5c) + ETIME = Errno(0x3e) + ETIMEDOUT = Errno(0x91) + ETOOMANYREFS = Errno(0x90) + ETXTBSY = Errno(0x1a) + EUCLEAN = Errno(0x87) + EUNATCH = Errno(0x2a) + EUSERS = Errno(0x5e) + EWOULDBLOCK = Errno(0xb) + EXDEV = Errno(0x12) + EXFULL = Errno(0x34) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x12) + SIGCLD = Signal(0x12) + SIGCONT = Signal(0x19) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINT = Signal(0x2) + SIGIO = Signal(0x16) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPOLL = Signal(0x16) + SIGPROF = Signal(0x1d) + SIGPWR = Signal(0x13) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x17) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x18) + SIGTTIN = Signal(0x1a) + SIGTTOU = Signal(0x1b) + SIGURG = Signal(0x15) + SIGUSR1 = Signal(0x10) + SIGUSR2 = Signal(0x11) + SIGVTALRM = Signal(0x1c) + SIGWINCH = Signal(0x14) + SIGXCPU = Signal(0x1e) + SIGXFSZ = Signal(0x1f) +) diff --git a/runtime/internal/clite/syscall/zerrors_linux_mips64.go b/runtime/internal/clite/syscall/zerrors_linux_mips64.go new file mode 100644 index 00000000..002d4dd8 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_linux_mips64.go @@ -0,0 +1,1622 @@ +// mkerrors.sh +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs _const.go + +package syscall + +const ( + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x28 + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_X25 = 0x10f + B0 = 0x0 + B1000000 = 0x1008 + B110 = 0x3 + B115200 = 0x1002 + B1152000 = 0x1009 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1500000 = 0x100a + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2000000 = 0x100b + B230400 = 0x1003 + B2400 = 0xb + B2500000 = 0x100c + B300 = 0x7 + B3000000 = 0x100d + B3500000 = 0x100e + B38400 = 0xf + B4000000 = 0x100f + B460800 = 0x1004 + B4800 = 0xc + B50 = 0x1 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B600 = 0x8 + B75 = 0x2 + B921600 = 0x1007 + B9600 = 0xd + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x800 + CREAD = 0x80 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIGNAL = 0xff + CSIZE = 0x30 + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSTOPB = 0x40 + CSUSP = 0x1a + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x80000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + EPOLL_NONBLOCK = 0x80 + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MVRP = 0x88f5 + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + EXTA = 0xe + EXTB = 0xf + EXTPROC = 0x10000 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x2000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0xe + F_GETLK64 = 0xe + F_GETOWN = 0x17 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OK = 0x0 + F_RDLCK = 0x0 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x18 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + ICMPV6_FILTER = 0x1 + ICRNL = 0x100 + IEXTEN = 0x100 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_NODAD = 0x2 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0x7 + IFF_802_1Q_VLAN = 0x1 + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BONDING = 0x20 + IFF_BRIDGE_PORT = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DISABLE_NETPOLL = 0x1000 + IFF_DONT_BRIDGE = 0x800 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_EBRIDGE = 0x2 + IFF_ECHO = 0x40000 + IFF_ISATAP = 0x80 + IFF_LIVE_ADDR_CHANGE = 0x100000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MACVLAN_PORT = 0x2000 + IFF_MASTER = 0x400 + IFF_MASTER_8023AD = 0x8 + IFF_MASTER_ALB = 0x10 + IFF_MASTER_ARPMON = 0x100 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_OVS_DATAPATH = 0x8000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_SLAVE_INACTIVE = 0x4 + IFF_SLAVE_NEEDARP = 0x40 + IFF_SUPP_NOFCS = 0x80000 + IFF_TAP = 0x2 + IFF_TEAM_PORT = 0x40000 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_TX_SKB_SHARING = 0x10000 + IFF_UNICAST_FLT = 0x20000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFF_WAN_HDLC = 0x200 + IFF_XMIT_DST_RELEASE = 0x400 + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x80000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x80 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_CHECKSUM = 0x7 + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_UNICAST_HOPS = 0x10 + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BLOCK_SOURCE = 0x26 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_XFRM_POLICY = 0x11 + ISIG = 0x1 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x1000 + IXON = 0x400 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x800 + MAP_SHARED = 0x1 + MAP_STACK = 0x40000 + MAP_TYPE = 0xf + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + NAME_MAX = 0xff + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_RX_RING = 0x6 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NOFLSH = 0x80 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x0 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARENB = 0x100 + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x4000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_PTRACER_ANY = -0x1 + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x1000ff + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT = 0x4 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_POKEUSR = 0x6 + PTRACE_SEIZE = 0x4206 + PTRACE_SETFPREGS = 0xf + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_TRACEME = 0x0 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = -0x1 + RTAX_ADVMSS = 0x8 + RTAX_CWND = 0x7 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0xf + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x11 + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELLINK = 0x11 + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_NOTIFY = 0x100 + RTM_F_PREFIX = 0x800 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_MAX = 0x57 + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWLINK = 0x10 + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x12 + RTM_NR_MSGTYPES = 0x48 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_F_DEAD = 0x1 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTN_MAX = 0xb + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_GATED = 0x8 + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPNS = 0x23 + SCM_WIFI_STATUS = 0x29 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x40047307 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCGARP = 0x8954 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGPGRP = 0x40047309 + SIOCGRARP = 0x8961 + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSPGRP = 0x80047308 + SIOCSRARP = 0x8962 + SOCK_CLOEXEC = 0x80000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x2 + SOL_AAL = 0x109 + SOL_ATM = 0x108 + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_PACKET = 0x107 + SOL_RAW = 0xff + SOL_SOCKET = 0xffff + SOL_TCP = 0x6 + SOL_X25 = 0x106 + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_FILTER = 0x1a + SO_BINDTODEVICE = 0x19 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_DEBUG = 0x1 + SO_DETACH_FILTER = 0x1b + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_GET_FILTER = 0x1a + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_NOFCS = 0x2b + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1e + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCFLSH = 0x5407 + TCIFLUSH = 0x0 + TCIOFLUSH = 0x2 + TCOFLUSH = 0x1 + TCP_CONGESTION = 0xd + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_INFO = 0xb + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_QUICKACK = 0xc + TCP_SYNCNT = 0x7 + TCP_WINDOW_CLAMP = 0xa + TCSAFLUSH = 0x5410 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETHDRSZ = 0x400454d7 + TUNSETDEBUG = 0x800454c9 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETHDRSZ = 0x800454d8 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT0 = 0x0 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x40 + WSTOPPED = 0x2 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x7d) + EADDRNOTAVAIL = Errno(0x7e) + EADV = Errno(0x44) + EAFNOSUPPORT = Errno(0x7c) + EAGAIN = Errno(0xb) + EALREADY = Errno(0x95) + EBADE = Errno(0x32) + EBADF = Errno(0x9) + EBADFD = Errno(0x51) + EBADMSG = Errno(0x4d) + EBADR = Errno(0x33) + EBADRQC = Errno(0x36) + EBADSLT = Errno(0x37) + EBFONT = Errno(0x3b) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x9e) + ECHILD = Errno(0xa) + ECHRNG = Errno(0x25) + ECOMM = Errno(0x46) + ECONNABORTED = Errno(0x82) + ECONNREFUSED = Errno(0x92) + ECONNRESET = Errno(0x83) + EDEADLK = Errno(0x2d) + EDEADLOCK = Errno(0x38) + EDESTADDRREQ = Errno(0x60) + EDOM = Errno(0x21) + EDOTDOT = Errno(0x49) + EDQUOT = Errno(0x46d) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EHOSTDOWN = Errno(0x93) + EHOSTUNREACH = Errno(0x94) + EHWPOISON = Errno(0xa8) + EIDRM = Errno(0x24) + EILSEQ = Errno(0x58) + EINIT = Errno(0x8d) + EINPROGRESS = Errno(0x96) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x85) + EISDIR = Errno(0x15) + EISNAM = Errno(0x8b) + EKEYEXPIRED = Errno(0xa2) + EKEYREJECTED = Errno(0xa4) + EKEYREVOKED = Errno(0xa3) + EL2HLT = Errno(0x2c) + EL2NSYNC = Errno(0x26) + EL3HLT = Errno(0x27) + EL3RST = Errno(0x28) + ELIBACC = Errno(0x53) + ELIBBAD = Errno(0x54) + ELIBEXEC = Errno(0x57) + ELIBMAX = Errno(0x56) + ELIBSCN = Errno(0x55) + ELNRNG = Errno(0x29) + ELOOP = Errno(0x5a) + EMEDIUMTYPE = Errno(0xa0) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x61) + EMULTIHOP = Errno(0x4a) + ENAMETOOLONG = Errno(0x4e) + ENAVAIL = Errno(0x8a) + ENETDOWN = Errno(0x7f) + ENETRESET = Errno(0x81) + ENETUNREACH = Errno(0x80) + ENFILE = Errno(0x17) + ENOANO = Errno(0x35) + ENOBUFS = Errno(0x84) + ENOCSI = Errno(0x2b) + ENODATA = Errno(0x3d) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOKEY = Errno(0xa1) + ENOLCK = Errno(0x2e) + ENOLINK = Errno(0x43) + ENOMEDIUM = Errno(0x9f) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x23) + ENONET = Errno(0x40) + ENOPKG = Errno(0x41) + ENOPROTOOPT = Errno(0x63) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x3f) + ENOSTR = Errno(0x3c) + ENOSYS = Errno(0x59) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x86) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x5d) + ENOTNAM = Errno(0x89) + ENOTRECOVERABLE = Errno(0xa6) + ENOTSOCK = Errno(0x5f) + ENOTSUP = Errno(0x7a) + ENOTTY = Errno(0x19) + ENOTUNIQ = Errno(0x50) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x7a) + EOVERFLOW = Errno(0x4f) + EOWNERDEAD = Errno(0xa5) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x7b) + EPIPE = Errno(0x20) + EPROTO = Errno(0x47) + EPROTONOSUPPORT = Errno(0x78) + EPROTOTYPE = Errno(0x62) + ERANGE = Errno(0x22) + EREMCHG = Errno(0x52) + EREMDEV = Errno(0x8e) + EREMOTE = Errno(0x42) + EREMOTEIO = Errno(0x8c) + ERESTART = Errno(0x5b) + ERFKILL = Errno(0xa7) + EROFS = Errno(0x1e) + ESHUTDOWN = Errno(0x8f) + ESOCKTNOSUPPORT = Errno(0x79) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESRMNT = Errno(0x45) + ESTALE = Errno(0x97) + ESTRPIPE = Errno(0x5c) + ETIME = Errno(0x3e) + ETIMEDOUT = Errno(0x91) + ETOOMANYREFS = Errno(0x90) + ETXTBSY = Errno(0x1a) + EUCLEAN = Errno(0x87) + EUNATCH = Errno(0x2a) + EUSERS = Errno(0x5e) + EWOULDBLOCK = Errno(0xb) + EXDEV = Errno(0x12) + EXFULL = Errno(0x34) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x12) + SIGCLD = Signal(0x12) + SIGCONT = Signal(0x19) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINT = Signal(0x2) + SIGIO = Signal(0x16) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPOLL = Signal(0x16) + SIGPROF = Signal(0x1d) + SIGPWR = Signal(0x13) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x17) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x18) + SIGTTIN = Signal(0x1a) + SIGTTOU = Signal(0x1b) + SIGURG = Signal(0x15) + SIGUSR1 = Signal(0x10) + SIGUSR2 = Signal(0x11) + SIGVTALRM = Signal(0x1c) + SIGWINCH = Signal(0x14) + SIGXCPU = Signal(0x1e) + SIGXFSZ = Signal(0x1f) +) diff --git a/runtime/internal/clite/syscall/zerrors_linux_mips64le.go b/runtime/internal/clite/syscall/zerrors_linux_mips64le.go new file mode 100644 index 00000000..002d4dd8 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_linux_mips64le.go @@ -0,0 +1,1622 @@ +// mkerrors.sh +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs _const.go + +package syscall + +const ( + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x28 + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_X25 = 0x10f + B0 = 0x0 + B1000000 = 0x1008 + B110 = 0x3 + B115200 = 0x1002 + B1152000 = 0x1009 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1500000 = 0x100a + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2000000 = 0x100b + B230400 = 0x1003 + B2400 = 0xb + B2500000 = 0x100c + B300 = 0x7 + B3000000 = 0x100d + B3500000 = 0x100e + B38400 = 0xf + B4000000 = 0x100f + B460800 = 0x1004 + B4800 = 0xc + B50 = 0x1 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B600 = 0x8 + B75 = 0x2 + B921600 = 0x1007 + B9600 = 0xd + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x800 + CREAD = 0x80 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIGNAL = 0xff + CSIZE = 0x30 + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSTOPB = 0x40 + CSUSP = 0x1a + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x80000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + EPOLL_NONBLOCK = 0x80 + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MVRP = 0x88f5 + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + EXTA = 0xe + EXTB = 0xf + EXTPROC = 0x10000 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x2000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0xe + F_GETLK64 = 0xe + F_GETOWN = 0x17 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OK = 0x0 + F_RDLCK = 0x0 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x18 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + ICMPV6_FILTER = 0x1 + ICRNL = 0x100 + IEXTEN = 0x100 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_NODAD = 0x2 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0x7 + IFF_802_1Q_VLAN = 0x1 + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BONDING = 0x20 + IFF_BRIDGE_PORT = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DISABLE_NETPOLL = 0x1000 + IFF_DONT_BRIDGE = 0x800 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_EBRIDGE = 0x2 + IFF_ECHO = 0x40000 + IFF_ISATAP = 0x80 + IFF_LIVE_ADDR_CHANGE = 0x100000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MACVLAN_PORT = 0x2000 + IFF_MASTER = 0x400 + IFF_MASTER_8023AD = 0x8 + IFF_MASTER_ALB = 0x10 + IFF_MASTER_ARPMON = 0x100 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_OVS_DATAPATH = 0x8000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_SLAVE_INACTIVE = 0x4 + IFF_SLAVE_NEEDARP = 0x40 + IFF_SUPP_NOFCS = 0x80000 + IFF_TAP = 0x2 + IFF_TEAM_PORT = 0x40000 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_TX_SKB_SHARING = 0x10000 + IFF_UNICAST_FLT = 0x20000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFF_WAN_HDLC = 0x200 + IFF_XMIT_DST_RELEASE = 0x400 + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x80000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x80 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_CHECKSUM = 0x7 + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_UNICAST_HOPS = 0x10 + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BLOCK_SOURCE = 0x26 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_XFRM_POLICY = 0x11 + ISIG = 0x1 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x1000 + IXON = 0x400 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x800 + MAP_SHARED = 0x1 + MAP_STACK = 0x40000 + MAP_TYPE = 0xf + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + NAME_MAX = 0xff + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_RX_RING = 0x6 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NOFLSH = 0x80 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x0 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARENB = 0x100 + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x4000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_PTRACER_ANY = -0x1 + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x1000ff + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT = 0x4 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_POKEUSR = 0x6 + PTRACE_SEIZE = 0x4206 + PTRACE_SETFPREGS = 0xf + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_TRACEME = 0x0 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = -0x1 + RTAX_ADVMSS = 0x8 + RTAX_CWND = 0x7 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0xf + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x11 + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELLINK = 0x11 + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_NOTIFY = 0x100 + RTM_F_PREFIX = 0x800 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_MAX = 0x57 + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWLINK = 0x10 + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x12 + RTM_NR_MSGTYPES = 0x48 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_F_DEAD = 0x1 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTN_MAX = 0xb + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_GATED = 0x8 + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPNS = 0x23 + SCM_WIFI_STATUS = 0x29 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x40047307 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCGARP = 0x8954 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGPGRP = 0x40047309 + SIOCGRARP = 0x8961 + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSPGRP = 0x80047308 + SIOCSRARP = 0x8962 + SOCK_CLOEXEC = 0x80000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x2 + SOL_AAL = 0x109 + SOL_ATM = 0x108 + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_PACKET = 0x107 + SOL_RAW = 0xff + SOL_SOCKET = 0xffff + SOL_TCP = 0x6 + SOL_X25 = 0x106 + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_FILTER = 0x1a + SO_BINDTODEVICE = 0x19 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_DEBUG = 0x1 + SO_DETACH_FILTER = 0x1b + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_GET_FILTER = 0x1a + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_NOFCS = 0x2b + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1e + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCFLSH = 0x5407 + TCIFLUSH = 0x0 + TCIOFLUSH = 0x2 + TCOFLUSH = 0x1 + TCP_CONGESTION = 0xd + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_INFO = 0xb + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_QUICKACK = 0xc + TCP_SYNCNT = 0x7 + TCP_WINDOW_CLAMP = 0xa + TCSAFLUSH = 0x5410 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETHDRSZ = 0x400454d7 + TUNSETDEBUG = 0x800454c9 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETHDRSZ = 0x800454d8 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT0 = 0x0 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x40 + WSTOPPED = 0x2 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x7d) + EADDRNOTAVAIL = Errno(0x7e) + EADV = Errno(0x44) + EAFNOSUPPORT = Errno(0x7c) + EAGAIN = Errno(0xb) + EALREADY = Errno(0x95) + EBADE = Errno(0x32) + EBADF = Errno(0x9) + EBADFD = Errno(0x51) + EBADMSG = Errno(0x4d) + EBADR = Errno(0x33) + EBADRQC = Errno(0x36) + EBADSLT = Errno(0x37) + EBFONT = Errno(0x3b) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x9e) + ECHILD = Errno(0xa) + ECHRNG = Errno(0x25) + ECOMM = Errno(0x46) + ECONNABORTED = Errno(0x82) + ECONNREFUSED = Errno(0x92) + ECONNRESET = Errno(0x83) + EDEADLK = Errno(0x2d) + EDEADLOCK = Errno(0x38) + EDESTADDRREQ = Errno(0x60) + EDOM = Errno(0x21) + EDOTDOT = Errno(0x49) + EDQUOT = Errno(0x46d) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EHOSTDOWN = Errno(0x93) + EHOSTUNREACH = Errno(0x94) + EHWPOISON = Errno(0xa8) + EIDRM = Errno(0x24) + EILSEQ = Errno(0x58) + EINIT = Errno(0x8d) + EINPROGRESS = Errno(0x96) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x85) + EISDIR = Errno(0x15) + EISNAM = Errno(0x8b) + EKEYEXPIRED = Errno(0xa2) + EKEYREJECTED = Errno(0xa4) + EKEYREVOKED = Errno(0xa3) + EL2HLT = Errno(0x2c) + EL2NSYNC = Errno(0x26) + EL3HLT = Errno(0x27) + EL3RST = Errno(0x28) + ELIBACC = Errno(0x53) + ELIBBAD = Errno(0x54) + ELIBEXEC = Errno(0x57) + ELIBMAX = Errno(0x56) + ELIBSCN = Errno(0x55) + ELNRNG = Errno(0x29) + ELOOP = Errno(0x5a) + EMEDIUMTYPE = Errno(0xa0) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x61) + EMULTIHOP = Errno(0x4a) + ENAMETOOLONG = Errno(0x4e) + ENAVAIL = Errno(0x8a) + ENETDOWN = Errno(0x7f) + ENETRESET = Errno(0x81) + ENETUNREACH = Errno(0x80) + ENFILE = Errno(0x17) + ENOANO = Errno(0x35) + ENOBUFS = Errno(0x84) + ENOCSI = Errno(0x2b) + ENODATA = Errno(0x3d) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOKEY = Errno(0xa1) + ENOLCK = Errno(0x2e) + ENOLINK = Errno(0x43) + ENOMEDIUM = Errno(0x9f) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x23) + ENONET = Errno(0x40) + ENOPKG = Errno(0x41) + ENOPROTOOPT = Errno(0x63) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x3f) + ENOSTR = Errno(0x3c) + ENOSYS = Errno(0x59) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x86) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x5d) + ENOTNAM = Errno(0x89) + ENOTRECOVERABLE = Errno(0xa6) + ENOTSOCK = Errno(0x5f) + ENOTSUP = Errno(0x7a) + ENOTTY = Errno(0x19) + ENOTUNIQ = Errno(0x50) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x7a) + EOVERFLOW = Errno(0x4f) + EOWNERDEAD = Errno(0xa5) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x7b) + EPIPE = Errno(0x20) + EPROTO = Errno(0x47) + EPROTONOSUPPORT = Errno(0x78) + EPROTOTYPE = Errno(0x62) + ERANGE = Errno(0x22) + EREMCHG = Errno(0x52) + EREMDEV = Errno(0x8e) + EREMOTE = Errno(0x42) + EREMOTEIO = Errno(0x8c) + ERESTART = Errno(0x5b) + ERFKILL = Errno(0xa7) + EROFS = Errno(0x1e) + ESHUTDOWN = Errno(0x8f) + ESOCKTNOSUPPORT = Errno(0x79) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESRMNT = Errno(0x45) + ESTALE = Errno(0x97) + ESTRPIPE = Errno(0x5c) + ETIME = Errno(0x3e) + ETIMEDOUT = Errno(0x91) + ETOOMANYREFS = Errno(0x90) + ETXTBSY = Errno(0x1a) + EUCLEAN = Errno(0x87) + EUNATCH = Errno(0x2a) + EUSERS = Errno(0x5e) + EWOULDBLOCK = Errno(0xb) + EXDEV = Errno(0x12) + EXFULL = Errno(0x34) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x12) + SIGCLD = Signal(0x12) + SIGCONT = Signal(0x19) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINT = Signal(0x2) + SIGIO = Signal(0x16) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPOLL = Signal(0x16) + SIGPROF = Signal(0x1d) + SIGPWR = Signal(0x13) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x17) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x18) + SIGTTIN = Signal(0x1a) + SIGTTOU = Signal(0x1b) + SIGURG = Signal(0x15) + SIGUSR1 = Signal(0x10) + SIGUSR2 = Signal(0x11) + SIGVTALRM = Signal(0x1c) + SIGWINCH = Signal(0x14) + SIGXCPU = Signal(0x1e) + SIGXFSZ = Signal(0x1f) +) diff --git a/runtime/internal/clite/syscall/zerrors_linux_mipsle.go b/runtime/internal/clite/syscall/zerrors_linux_mipsle.go new file mode 100644 index 00000000..6f8d70a8 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_linux_mipsle.go @@ -0,0 +1,1639 @@ +// mkerrors.sh +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- _const.go + +package syscall + +const ( + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x29 + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VSOCK = 0x28 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + ARPHRD_6LOWPAN = 0x339 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_X25 = 0x10f + B0 = 0x0 + B1000000 = 0x1008 + B110 = 0x3 + B115200 = 0x1002 + B1152000 = 0x1009 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1500000 = 0x100a + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2000000 = 0x100b + B230400 = 0x1003 + B2400 = 0xb + B2500000 = 0x100c + B300 = 0x7 + B3000000 = 0x100d + B3500000 = 0x100e + B38400 = 0xf + B4000000 = 0x100f + B460800 = 0x1004 + B4800 = 0xc + B50 = 0x1 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B600 = 0x8 + B75 = 0x2 + B921600 = 0x1007 + B9600 = 0xd + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x800 + CREAD = 0x80 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIGNAL = 0xff + CSIZE = 0x30 + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSTOPB = 0x40 + CSUSP = 0x1a + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x80000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_80221 = 0x8917 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_LOOPBACK = 0x9000 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MVRP = 0x88f5 + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PRP = 0x88fb + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + EXTA = 0xe + EXTB = 0xf + EXTPROC = 0x10000 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x2000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0x21 + F_GETLK64 = 0x21 + F_GETOWN = 0x17 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OK = 0x0 + F_RDLCK = 0x0 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0x22 + F_SETLK64 = 0x22 + F_SETLKW = 0x23 + F_SETLKW64 = 0x23 + F_SETOWN = 0x18 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + ICMPV6_FILTER = 0x1 + ICRNL = 0x100 + IEXTEN = 0x100 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_MANAGETEMPADDR = 0x100 + IFA_F_NODAD = 0x2 + IFA_F_NOPREFIXROUTE = 0x200 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0x8 + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_ECHO = 0x40000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MASTER = 0x400 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_TAP = 0x2 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x80000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x80 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_BEETPH = 0x5e + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MH = 0x87 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_CHECKSUM = 0x7 + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_UNICAST_HOPS = 0x10 + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BLOCK_SOURCE = 0x26 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_XFRM_POLICY = 0x11 + ISIG = 0x1 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x1000 + IXON = 0x400 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MAP_ANON = 0x800 + MAP_ANONYMOUS = 0x800 + MAP_DENYWRITE = 0x2000 + MAP_EXECUTABLE = 0x4000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GROWSDOWN = 0x1000 + MAP_HUGETLB = 0x80000 + MAP_HUGE_MASK = 0x3f + MAP_HUGE_SHIFT = 0x1a + MAP_LOCKED = 0x8000 + MAP_NONBLOCK = 0x20000 + MAP_NORESERVE = 0x400 + MAP_POPULATE = 0x10000 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x800 + MAP_SHARED = 0x1 + MAP_STACK = 0x40000 + MAP_TYPE = 0xf + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + NAME_MAX = 0xff + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_RX_RING = 0x6 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NOFLSH = 0x80 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x1000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x100 + O_DIRECT = 0x8000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x10 + O_EXCL = 0x400 + O_FSYNC = 0x4010 + O_LARGEFILE = 0x2000 + O_NDELAY = 0x80 + O_NOATIME = 0x40000 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x80 + O_PATH = 0x200000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x4010 + O_SYNC = 0x4010 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_QM = 0x5 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_KERNEL = 0x7 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_QDISC_BYPASS = 0x14 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_USER = 0x6 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARENB = 0x100 + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x4000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_THP_DISABLE = 0x2a + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_PTRACER_ANY = 0xffffffff + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_THP_DISABLE = 0x29 + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_GET_THREAD_AREA = 0x19 + PTRACE_GET_THREAD_AREA_3264 = 0xc4 + PTRACE_GET_WATCH_REGS = 0xd0 + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x1000ff + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKDATA_3264 = 0xc1 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKTEXT_3264 = 0xc0 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKEDATA_3264 = 0xc3 + PTRACE_POKETEXT = 0x4 + PTRACE_POKETEXT_3264 = 0xc2 + PTRACE_POKEUSR = 0x6 + PTRACE_SEIZE = 0x4206 + PTRACE_SETFPREGS = 0xf + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SET_THREAD_AREA = 0x1a + PTRACE_SET_WATCH_REGS = 0xd1 + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_TRACEME = 0x0 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = -0x1 + RTAX_ADVMSS = 0x8 + RTAX_CWND = 0x7 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0xf + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x11 + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELLINK = 0x11 + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_NOTIFY = 0x100 + RTM_F_PREFIX = 0x800 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_MAX = 0x57 + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWLINK = 0x10 + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x12 + RTM_NR_MSGTYPES = 0x48 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_F_DEAD = 0x1 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTN_MAX = 0xb + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_GATED = 0x8 + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPNS = 0x23 + SCM_WIFI_STATUS = 0x29 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x40047307 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCGARP = 0x8954 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGPGRP = 0x40047309 + SIOCGRARP = 0x8961 + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSPGRP = 0x80047308 + SIOCSRARP = 0x8962 + SOCK_CLOEXEC = 0x80000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x1 + SOCK_NONBLOCK = 0x80 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x2 + SOL_AAL = 0x109 + SOL_ATM = 0x108 + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_PACKET = 0x107 + SOL_RAW = 0xff + SOL_SOCKET = 0xffff + SOL_TCP = 0x6 + SOL_X25 = 0x106 + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x1009 + SO_ATTACH_FILTER = 0x1a + SO_BINDTODEVICE = 0x19 + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x20 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_DEBUG = 0x1 + SO_DETACH_FILTER = 0x1b + SO_DOMAIN = 0x1029 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_GET_FILTER = 0x1a + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_NOFCS = 0x2b + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0x100 + SO_PASSCRED = 0x11 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x12 + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1e + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x1028 + SO_RCVBUF = 0x1002 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x1001 + SO_SNDBUFFORCE = 0x1f + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_STYLE = 0x1008 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TYPE = 0x1008 + SO_WIFI_STATUS = 0x29 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCFLSH = 0x5407 + TCIFLUSH = 0x0 + TCIOFLUSH = 0x2 + TCOFLUSH = 0x1 + TCP_CONGESTION = 0xd + TCP_COOKIE_IN_ALWAYS = 0x1 + TCP_COOKIE_MAX = 0x10 + TCP_COOKIE_MIN = 0x8 + TCP_COOKIE_OUT_NEVER = 0x2 + TCP_COOKIE_PAIR_SIZE = 0x20 + TCP_COOKIE_TRANSACTIONS = 0xf + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_FASTOPEN = 0x17 + TCP_INFO = 0xb + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_MSS_DEFAULT = 0x218 + TCP_MSS_DESIRED = 0x4c4 + TCP_NODELAY = 0x1 + TCP_QUEUE_SEQ = 0x15 + TCP_QUICKACK = 0xc + TCP_REPAIR = 0x13 + TCP_REPAIR_OPTIONS = 0x16 + TCP_REPAIR_QUEUE = 0x14 + TCP_SYNCNT = 0x7 + TCP_S_DATA_IN = 0x4 + TCP_S_DATA_OUT = 0x8 + TCP_THIN_DUPACK = 0x11 + TCP_THIN_LINEAR_TIMEOUTS = 0x10 + TCP_TIMESTAMP = 0x18 + TCP_USER_TIMEOUT = 0x12 + TCP_WINDOW_CLAMP = 0xa + TCSAFLUSH = 0x5410 + TIOCCBRK = 0x5428 + TIOCCONS = 0x80047478 + TIOCEXCL = 0x740d + TIOCGDEV = 0x40045432 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x5492 + TIOCGLCKTRMIOS = 0x548b + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGSERIAL = 0x5484 + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5481 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x467f + TIOCLINUX = 0x5483 + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMIWAIT = 0x5491 + TIOCMSET = 0x741a + TIOCM_CAR = 0x100 + TIOCM_CD = 0x100 + TIOCM_CTS = 0x40 + TIOCM_DSR = 0x400 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x200 + TIOCM_RNG = 0x200 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x20 + TIOCM_ST = 0x10 + TIOCNOTTY = 0x5471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7472 + TIOCPKT = 0x5470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x5480 + TIOCSERCONFIG = 0x5488 + TIOCSERGETLSR = 0x548e + TIOCSERGETMULTI = 0x548f + TIOCSERGSTRUCT = 0x548d + TIOCSERGWILD = 0x5489 + TIOCSERSETMULTI = 0x5490 + TIOCSERSWILD = 0x548a + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIG = 0x80045436 + TIOCSLCKTRMIOS = 0x548c + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSSERIAL = 0x5485 + TIOCSSOFTCAR = 0x5482 + TIOCSTI = 0x5472 + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x8000 + TUNATTACHFILTER = 0x800854d5 + TUNDETACHFILTER = 0x800854d6 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x400854db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETHDRSZ = 0x400454d7 + TUNSETDEBUG = 0x800454c9 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETHDRSZ = 0x800454d8 + VDISCARD = 0xd + VEOF = 0x10 + VEOL = 0x11 + VEOL2 = 0x6 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VSWTCH = 0x7 + VT0 = 0x0 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x20 + WSTOPPED = 0x2 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x7d) + EADDRNOTAVAIL = Errno(0x7e) + EADV = Errno(0x44) + EAFNOSUPPORT = Errno(0x7c) + EAGAIN = Errno(0xb) + EALREADY = Errno(0x95) + EBADE = Errno(0x32) + EBADF = Errno(0x9) + EBADFD = Errno(0x51) + EBADMSG = Errno(0x4d) + EBADR = Errno(0x33) + EBADRQC = Errno(0x36) + EBADSLT = Errno(0x37) + EBFONT = Errno(0x3b) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x9e) + ECHILD = Errno(0xa) + ECHRNG = Errno(0x25) + ECOMM = Errno(0x46) + ECONNABORTED = Errno(0x82) + ECONNREFUSED = Errno(0x92) + ECONNRESET = Errno(0x83) + EDEADLK = Errno(0x2d) + EDEADLOCK = Errno(0x38) + EDESTADDRREQ = Errno(0x60) + EDOM = Errno(0x21) + EDOTDOT = Errno(0x49) + EDQUOT = Errno(0x46d) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EHOSTDOWN = Errno(0x93) + EHOSTUNREACH = Errno(0x94) + EHWPOISON = Errno(0xa8) + EIDRM = Errno(0x24) + EILSEQ = Errno(0x58) + EINIT = Errno(0x8d) + EINPROGRESS = Errno(0x96) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x85) + EISDIR = Errno(0x15) + EISNAM = Errno(0x8b) + EKEYEXPIRED = Errno(0xa2) + EKEYREJECTED = Errno(0xa4) + EKEYREVOKED = Errno(0xa3) + EL2HLT = Errno(0x2c) + EL2NSYNC = Errno(0x26) + EL3HLT = Errno(0x27) + EL3RST = Errno(0x28) + ELIBACC = Errno(0x53) + ELIBBAD = Errno(0x54) + ELIBEXEC = Errno(0x57) + ELIBMAX = Errno(0x56) + ELIBSCN = Errno(0x55) + ELNRNG = Errno(0x29) + ELOOP = Errno(0x5a) + EMEDIUMTYPE = Errno(0xa0) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x61) + EMULTIHOP = Errno(0x4a) + ENAMETOOLONG = Errno(0x4e) + ENAVAIL = Errno(0x8a) + ENETDOWN = Errno(0x7f) + ENETRESET = Errno(0x81) + ENETUNREACH = Errno(0x80) + ENFILE = Errno(0x17) + ENOANO = Errno(0x35) + ENOBUFS = Errno(0x84) + ENOCSI = Errno(0x2b) + ENODATA = Errno(0x3d) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOKEY = Errno(0xa1) + ENOLCK = Errno(0x2e) + ENOLINK = Errno(0x43) + ENOMEDIUM = Errno(0x9f) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x23) + ENONET = Errno(0x40) + ENOPKG = Errno(0x41) + ENOPROTOOPT = Errno(0x63) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x3f) + ENOSTR = Errno(0x3c) + ENOSYS = Errno(0x59) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x86) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x5d) + ENOTNAM = Errno(0x89) + ENOTRECOVERABLE = Errno(0xa6) + ENOTSOCK = Errno(0x5f) + ENOTSUP = Errno(0x7a) + ENOTTY = Errno(0x19) + ENOTUNIQ = Errno(0x50) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x7a) + EOVERFLOW = Errno(0x4f) + EOWNERDEAD = Errno(0xa5) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x7b) + EPIPE = Errno(0x20) + EPROTO = Errno(0x47) + EPROTONOSUPPORT = Errno(0x78) + EPROTOTYPE = Errno(0x62) + ERANGE = Errno(0x22) + EREMCHG = Errno(0x52) + EREMDEV = Errno(0x8e) + EREMOTE = Errno(0x42) + EREMOTEIO = Errno(0x8c) + ERESTART = Errno(0x5b) + ERFKILL = Errno(0xa7) + EROFS = Errno(0x1e) + ESHUTDOWN = Errno(0x8f) + ESOCKTNOSUPPORT = Errno(0x79) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESRMNT = Errno(0x45) + ESTALE = Errno(0x97) + ESTRPIPE = Errno(0x5c) + ETIME = Errno(0x3e) + ETIMEDOUT = Errno(0x91) + ETOOMANYREFS = Errno(0x90) + ETXTBSY = Errno(0x1a) + EUCLEAN = Errno(0x87) + EUNATCH = Errno(0x2a) + EUSERS = Errno(0x5e) + EWOULDBLOCK = Errno(0xb) + EXDEV = Errno(0x12) + EXFULL = Errno(0x34) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x12) + SIGCLD = Signal(0x12) + SIGCONT = Signal(0x19) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINT = Signal(0x2) + SIGIO = Signal(0x16) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPOLL = Signal(0x16) + SIGPROF = Signal(0x1d) + SIGPWR = Signal(0x13) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x17) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x18) + SIGTTIN = Signal(0x1a) + SIGTTOU = Signal(0x1b) + SIGURG = Signal(0x15) + SIGUSR1 = Signal(0x10) + SIGUSR2 = Signal(0x11) + SIGVTALRM = Signal(0x1c) + SIGWINCH = Signal(0x14) + SIGXCPU = Signal(0x1e) + SIGXFSZ = Signal(0x1f) +) diff --git a/runtime/internal/clite/syscall/zerrors_linux_ppc64.go b/runtime/internal/clite/syscall/zerrors_linux_ppc64.go new file mode 100644 index 00000000..1fe5088d --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_linux_ppc64.go @@ -0,0 +1,1687 @@ +// mkerrors.sh -m64 +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m64 _const.go + +//go:build ppc64 && linux + +package syscall + +const ( + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x28 + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_X25 = 0x10f + B0 = 0x0 + B1000000 = 0x17 + B110 = 0x3 + B115200 = 0x11 + B1152000 = 0x18 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1500000 = 0x19 + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2000000 = 0x1a + B230400 = 0x12 + B2400 = 0xb + B2500000 = 0x1b + B300 = 0x7 + B3000000 = 0x1c + B3500000 = 0x1d + B38400 = 0xf + B4000000 = 0x1e + B460800 = 0x13 + B4800 = 0xc + B50 = 0x1 + B500000 = 0x14 + B57600 = 0x10 + B576000 = 0x15 + B600 = 0x8 + B75 = 0x2 + B921600 = 0x16 + B9600 = 0xd + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIGNAL = 0xff + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x80000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + EPOLL_NONBLOCK = 0x800 + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MVRP = 0x88f5 + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PRP = 0x88fb + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + EXTA = 0xe + EXTB = 0xf + EXTPROC = 0x10000000 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0x5 + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OK = 0x0 + F_RDLCK = 0x0 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0x6 + F_SETLK64 = 0xd + F_SETLKW = 0x7 + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x4000 + ICANON = 0x100 + ICMPV6_FILTER = 0x1 + ICRNL = 0x100 + IEXTEN = 0x400 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_NODAD = 0x2 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0x7 + IFF_802_1Q_VLAN = 0x1 + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BONDING = 0x20 + IFF_BRIDGE_PORT = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DISABLE_NETPOLL = 0x1000 + IFF_DONT_BRIDGE = 0x800 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_EBRIDGE = 0x2 + IFF_ECHO = 0x40000 + IFF_ISATAP = 0x80 + IFF_LIVE_ADDR_CHANGE = 0x100000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MACVLAN = 0x200000 + IFF_MACVLAN_PORT = 0x2000 + IFF_MASTER = 0x400 + IFF_MASTER_8023AD = 0x8 + IFF_MASTER_ALB = 0x10 + IFF_MASTER_ARPMON = 0x100 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_OVS_DATAPATH = 0x8000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_SLAVE_INACTIVE = 0x4 + IFF_SLAVE_NEEDARP = 0x40 + IFF_SUPP_NOFCS = 0x80000 + IFF_TAP = 0x2 + IFF_TEAM_PORT = 0x40000 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_TX_SKB_SHARING = 0x10000 + IFF_UNICAST_FLT = 0x20000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFF_WAN_HDLC = 0x200 + IFF_XMIT_DST_RELEASE = 0x400 + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x80000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x800 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_CHECKSUM = 0x7 + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_UNICAST_HOPS = 0x10 + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BLOCK_SOURCE = 0x26 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_XFRM_POLICY = 0x11 + ISIG = 0x80 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_LOCKED = 0x80 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_STACK = 0x20000 + MAP_TYPE = 0xf + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + NAME_MAX = 0xff + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_RX_RING = 0x6 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NOFLSH = 0x80000000 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + ONLCR = 0x2 + ONLRET = 0x20 + ONOCR = 0x10 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x20000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARENB = 0x1000 + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_SAO = 0x10 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_PTRACER_ANY = -0x1 + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETEVRREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS = 0xc + PTRACE_GETREGS64 = 0x16 + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_GETVRREGS = 0x12 + PTRACE_GETVSRREGS = 0x1b + PTRACE_GET_DEBUGREG = 0x19 + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x1000ff + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKETEXT = 0x4 + PTRACE_POKEUSR = 0x6 + PTRACE_SEIZE = 0x4206 + PTRACE_SETEVRREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGS64 = 0x17 + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SETVRREGS = 0x13 + PTRACE_SETVSRREGS = 0x1c + PTRACE_SET_DEBUGREG = 0x1a + PTRACE_SINGLEBLOCK = 0x100 + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_TRACEME = 0x0 + PT_CCR = 0x26 + PT_CTR = 0x23 + PT_DAR = 0x29 + PT_DSCR = 0x2c + PT_DSISR = 0x2a + PT_FPR0 = 0x30 + PT_FPSCR = 0x50 + PT_LNK = 0x24 + PT_MSR = 0x21 + PT_NIP = 0x20 + PT_ORIG_R3 = 0x22 + PT_R0 = 0x0 + PT_R1 = 0x1 + PT_R10 = 0xa + PT_R11 = 0xb + PT_R12 = 0xc + PT_R13 = 0xd + PT_R14 = 0xe + PT_R15 = 0xf + PT_R16 = 0x10 + PT_R17 = 0x11 + PT_R18 = 0x12 + PT_R19 = 0x13 + PT_R2 = 0x2 + PT_R20 = 0x14 + PT_R21 = 0x15 + PT_R22 = 0x16 + PT_R23 = 0x17 + PT_R24 = 0x18 + PT_R25 = 0x19 + PT_R26 = 0x1a + PT_R27 = 0x1b + PT_R28 = 0x1c + PT_R29 = 0x1d + PT_R3 = 0x3 + PT_R30 = 0x1e + PT_R31 = 0x1f + PT_R4 = 0x4 + PT_R5 = 0x5 + PT_R6 = 0x6 + PT_R7 = 0x7 + PT_R8 = 0x8 + PT_R9 = 0x9 + PT_REGS_COUNT = 0x2c + PT_RESULT = 0x2b + PT_SOFTE = 0x27 + PT_TRAP = 0x28 + PT_VR0 = 0x52 + PT_VRSAVE = 0x94 + PT_VSCR = 0x93 + PT_VSR0 = 0x96 + PT_VSR31 = 0xd4 + PT_XER = 0x25 + RLIMIT_AS = 0x9 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x7 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = -0x1 + RTAX_ADVMSS = 0x8 + RTAX_CWND = 0x7 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0xf + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x11 + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELLINK = 0x11 + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_NOTIFY = 0x100 + RTM_F_PREFIX = 0x800 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_MAX = 0x57 + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWLINK = 0x10 + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x12 + RTM_NR_MSGTYPES = 0x48 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_F_DEAD = 0x1 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTN_MAX = 0xb + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_GATED = 0x8 + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPNS = 0x23 + SCM_WIFI_STATUS = 0x29 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x8905 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCGARP = 0x8954 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGPGRP = 0x8904 + SIOCGRARP = 0x8961 + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSPGRP = 0x8902 + SIOCSRARP = 0x8962 + SOCK_CLOEXEC = 0x80000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_AAL = 0x109 + SOL_ATM = 0x108 + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_PACKET = 0x107 + SOL_RAW = 0xff + SOL_SOCKET = 0x1 + SOL_TCP = 0x6 + SOL_X25 = 0x106 + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_FILTER = 0x1a + SO_BINDTODEVICE = 0x19 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_DEBUG = 0x1 + SO_DETACH_FILTER = 0x1b + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_GET_FILTER = 0x1a + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_NOFCS = 0x2b + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x14 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x15 + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1f + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x10 + SO_RCVTIMEO = 0x12 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x11 + SO_SNDTIMEO = 0x13 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCFLSH = 0x2000741f + TCIFLUSH = 0x0 + TCIOFLUSH = 0x2 + TCOFLUSH = 0x1 + TCP_CONGESTION = 0xd + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_INFO = 0xb + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_QUICKACK = 0xc + TCP_SYNCNT = 0x7 + TCP_WINDOW_CLAMP = 0xa + TCSAFLUSH = 0x2 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x40045432 + TIOCGETC = 0x40067412 + TIOCGETD = 0x5424 + TIOCGETP = 0x40067408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGLCKTRMIOS = 0x5456 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_LOOP = 0x8000 + TIOCM_OUT1 = 0x2000 + TIOCM_OUT2 = 0x4000 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x5420 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETC = 0x80067411 + TIOCSETD = 0x5423 + TIOCSETN = 0x8006740a + TIOCSETP = 0x80067409 + TIOCSIG = 0x80045436 + TIOCSLCKTRMIOS = 0x5457 + TIOCSLTC = 0x80067475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTART = 0x2000746e + TIOCSTI = 0x5412 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x400000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETHDRSZ = 0x400454d7 + TUNSETDEBUG = 0x800454c9 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETHDRSZ = 0x800454d8 + VDISCARD = 0x10 + VEOF = 0x4 + VEOL = 0x6 + VEOL2 = 0x8 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x5 + VQUIT = 0x1 + VREPRINT = 0xb + VSTART = 0xd + VSTOP = 0xe + VSUSP = 0xc + VSWTC = 0x9 + VT0 = 0x0 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x7 + VWERASE = 0xa + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x40 + WSTOPPED = 0x2 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x62) + EADDRNOTAVAIL = Errno(0x63) + EADV = Errno(0x44) + EAFNOSUPPORT = Errno(0x61) + EAGAIN = Errno(0xb) + EALREADY = Errno(0x72) + EBADE = Errno(0x34) + EBADF = Errno(0x9) + EBADFD = Errno(0x4d) + EBADMSG = Errno(0x4a) + EBADR = Errno(0x35) + EBADRQC = Errno(0x38) + EBADSLT = Errno(0x39) + EBFONT = Errno(0x3b) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x7d) + ECHILD = Errno(0xa) + ECHRNG = Errno(0x2c) + ECOMM = Errno(0x46) + ECONNABORTED = Errno(0x67) + ECONNREFUSED = Errno(0x6f) + ECONNRESET = Errno(0x68) + EDEADLK = Errno(0x23) + EDEADLOCK = Errno(0x3a) + EDESTADDRREQ = Errno(0x59) + EDOM = Errno(0x21) + EDOTDOT = Errno(0x49) + EDQUOT = Errno(0x7a) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EHOSTDOWN = Errno(0x70) + EHOSTUNREACH = Errno(0x71) + EHWPOISON = Errno(0x85) + EIDRM = Errno(0x2b) + EILSEQ = Errno(0x54) + EINPROGRESS = Errno(0x73) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x6a) + EISDIR = Errno(0x15) + EISNAM = Errno(0x78) + EKEYEXPIRED = Errno(0x7f) + EKEYREJECTED = Errno(0x81) + EKEYREVOKED = Errno(0x80) + EL2HLT = Errno(0x33) + EL2NSYNC = Errno(0x2d) + EL3HLT = Errno(0x2e) + EL3RST = Errno(0x2f) + ELIBACC = Errno(0x4f) + ELIBBAD = Errno(0x50) + ELIBEXEC = Errno(0x53) + ELIBMAX = Errno(0x52) + ELIBSCN = Errno(0x51) + ELNRNG = Errno(0x30) + ELOOP = Errno(0x28) + EMEDIUMTYPE = Errno(0x7c) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x5a) + EMULTIHOP = Errno(0x48) + ENAMETOOLONG = Errno(0x24) + ENAVAIL = Errno(0x77) + ENETDOWN = Errno(0x64) + ENETRESET = Errno(0x66) + ENETUNREACH = Errno(0x65) + ENFILE = Errno(0x17) + ENOANO = Errno(0x37) + ENOBUFS = Errno(0x69) + ENOCSI = Errno(0x32) + ENODATA = Errno(0x3d) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOKEY = Errno(0x7e) + ENOLCK = Errno(0x25) + ENOLINK = Errno(0x43) + ENOMEDIUM = Errno(0x7b) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x2a) + ENONET = Errno(0x40) + ENOPKG = Errno(0x41) + ENOPROTOOPT = Errno(0x5c) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x3f) + ENOSTR = Errno(0x3c) + ENOSYS = Errno(0x26) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x6b) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x27) + ENOTNAM = Errno(0x76) + ENOTRECOVERABLE = Errno(0x83) + ENOTSOCK = Errno(0x58) + ENOTSUP = Errno(0x5f) + ENOTTY = Errno(0x19) + ENOTUNIQ = Errno(0x4c) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x5f) + EOVERFLOW = Errno(0x4b) + EOWNERDEAD = Errno(0x82) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x60) + EPIPE = Errno(0x20) + EPROTO = Errno(0x47) + EPROTONOSUPPORT = Errno(0x5d) + EPROTOTYPE = Errno(0x5b) + ERANGE = Errno(0x22) + EREMCHG = Errno(0x4e) + EREMOTE = Errno(0x42) + EREMOTEIO = Errno(0x79) + ERESTART = Errno(0x55) + ERFKILL = Errno(0x84) + EROFS = Errno(0x1e) + ESHUTDOWN = Errno(0x6c) + ESOCKTNOSUPPORT = Errno(0x5e) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESRMNT = Errno(0x45) + ESTALE = Errno(0x74) + ESTRPIPE = Errno(0x56) + ETIME = Errno(0x3e) + ETIMEDOUT = Errno(0x6e) + ETOOMANYREFS = Errno(0x6d) + ETXTBSY = Errno(0x1a) + EUCLEAN = Errno(0x75) + EUNATCH = Errno(0x31) + EUSERS = Errno(0x57) + EWOULDBLOCK = Errno(0xb) + EXDEV = Errno(0x12) + EXFULL = Errno(0x36) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0x7) + SIGCHLD = Signal(0x11) + SIGCLD = Signal(0x11) + SIGCONT = Signal(0x12) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINT = Signal(0x2) + SIGIO = Signal(0x1d) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPOLL = Signal(0x1d) + SIGPROF = Signal(0x1b) + SIGPWR = Signal(0x1e) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTKFLT = Signal(0x10) + SIGSTOP = Signal(0x13) + SIGSYS = Signal(0x1f) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x14) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGUNUSED = Signal(0x1f) + SIGURG = Signal(0x17) + SIGUSR1 = Signal(0xa) + SIGUSR2 = Signal(0xc) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_linux_ppc64le.go b/runtime/internal/clite/syscall/zerrors_linux_ppc64le.go new file mode 100644 index 00000000..4e3f7aa7 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_linux_ppc64le.go @@ -0,0 +1,1711 @@ +// mkerrors.sh -m64 +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m64 _const.go + +//go:build ppc64le && linux + +package syscall + +const ( + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x29 + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VSOCK = 0x28 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_X25 = 0x10f + B0 = 0x0 + B1000000 = 0x17 + B110 = 0x3 + B115200 = 0x11 + B1152000 = 0x18 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1500000 = 0x19 + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2000000 = 0x1a + B230400 = 0x12 + B2400 = 0xb + B2500000 = 0x1b + B300 = 0x7 + B3000000 = 0x1c + B3500000 = 0x1d + B38400 = 0xf + B4000000 = 0x1e + B460800 = 0x13 + B4800 = 0xc + B50 = 0x1 + B500000 = 0x14 + B57600 = 0x10 + B576000 = 0x15 + B600 = 0x8 + B75 = 0x2 + B921600 = 0x16 + B9600 = 0xd + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIGNAL = 0xff + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x80000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MVRP = 0x88f5 + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PRP = 0x88fb + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + EXTA = 0xe + EXTB = 0xf + EXTPROC = 0x10000000 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0x5 + F_GETLK64 = 0xc + F_GETOWN = 0x9 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OK = 0x0 + F_RDLCK = 0x0 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0x6 + F_SETLK64 = 0xd + F_SETLKW = 0x7 + F_SETLKW64 = 0xe + F_SETOWN = 0x8 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x4000 + ICANON = 0x100 + ICMPV6_FILTER = 0x1 + ICRNL = 0x100 + IEXTEN = 0x400 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_NODAD = 0x2 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0x7 + IFF_802_1Q_VLAN = 0x1 + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BONDING = 0x20 + IFF_BRIDGE_PORT = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DISABLE_NETPOLL = 0x1000 + IFF_DONT_BRIDGE = 0x800 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_EBRIDGE = 0x2 + IFF_ECHO = 0x40000 + IFF_ISATAP = 0x80 + IFF_LIVE_ADDR_CHANGE = 0x100000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MACVLAN = 0x200000 + IFF_MACVLAN_PORT = 0x2000 + IFF_MASTER = 0x400 + IFF_MASTER_8023AD = 0x8 + IFF_MASTER_ALB = 0x10 + IFF_MASTER_ARPMON = 0x100 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_OVS_DATAPATH = 0x8000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_SLAVE_INACTIVE = 0x4 + IFF_SLAVE_NEEDARP = 0x40 + IFF_SUPP_NOFCS = 0x80000 + IFF_TAP = 0x2 + IFF_TEAM_PORT = 0x40000 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_TX_SKB_SHARING = 0x10000 + IFF_UNICAST_FLT = 0x20000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFF_WAN_HDLC = 0x200 + IFF_XMIT_DST_RELEASE = 0x400 + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x80000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x800 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_BEETPH = 0x5e + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MH = 0x87 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_CHECKSUM = 0x7 + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_UNICAST_HOPS = 0x10 + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BLOCK_SOURCE = 0x26 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_XFRM_POLICY = 0x11 + ISIG = 0x80 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_HUGE_MASK = 0x3f + MAP_HUGE_SHIFT = 0x1a + MAP_LOCKED = 0x80 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x40 + MAP_POPULATE = 0x8000 + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_STACK = 0x20000 + MAP_TYPE = 0xf + MCL_CURRENT = 0x2000 + MCL_FUTURE = 0x4000 + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + NAME_MAX = 0xff + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_RX_RING = 0x6 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NOFLSH = 0x80000000 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + ONLCR = 0x2 + ONLRET = 0x20 + ONOCR = 0x10 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x20000 + O_DIRECTORY = 0x4000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x8000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARENB = 0x1000 + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_SAO = 0x10 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_PTRACER_ANY = -0x1 + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETEVRREGS = 0x14 + PTRACE_GETFPREGS = 0xe + PTRACE_GETREGS = 0xc + PTRACE_GETREGS64 = 0x16 + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_GETVRREGS = 0x12 + PTRACE_GETVSRREGS = 0x1b + PTRACE_GET_DEBUGREG = 0x19 + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x1000ff + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKETEXT = 0x4 + PTRACE_POKEUSR = 0x6 + PTRACE_SEIZE = 0x4206 + PTRACE_SETEVRREGS = 0x15 + PTRACE_SETFPREGS = 0xf + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGS64 = 0x17 + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SETVRREGS = 0x13 + PTRACE_SETVSRREGS = 0x1c + PTRACE_SET_DEBUGREG = 0x1a + PTRACE_SINGLEBLOCK = 0x100 + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_TRACEME = 0x0 + PT_CCR = 0x26 + PT_CTR = 0x23 + PT_DAR = 0x29 + PT_DSCR = 0x2c + PT_DSISR = 0x2a + PT_FPR0 = 0x30 + PT_FPSCR = 0x50 + PT_LNK = 0x24 + PT_MSR = 0x21 + PT_NIP = 0x20 + PT_ORIG_R3 = 0x22 + PT_R0 = 0x0 + PT_R1 = 0x1 + PT_R10 = 0xa + PT_R11 = 0xb + PT_R12 = 0xc + PT_R13 = 0xd + PT_R14 = 0xe + PT_R15 = 0xf + PT_R16 = 0x10 + PT_R17 = 0x11 + PT_R18 = 0x12 + PT_R19 = 0x13 + PT_R2 = 0x2 + PT_R20 = 0x14 + PT_R21 = 0x15 + PT_R22 = 0x16 + PT_R23 = 0x17 + PT_R24 = 0x18 + PT_R25 = 0x19 + PT_R26 = 0x1a + PT_R27 = 0x1b + PT_R28 = 0x1c + PT_R29 = 0x1d + PT_R3 = 0x3 + PT_R30 = 0x1e + PT_R31 = 0x1f + PT_R4 = 0x4 + PT_R5 = 0x5 + PT_R6 = 0x6 + PT_R7 = 0x7 + PT_R8 = 0x8 + PT_R9 = 0x9 + PT_REGS_COUNT = 0x2c + PT_RESULT = 0x2b + PT_SOFTE = 0x27 + PT_TRAP = 0x28 + PT_VR0 = 0x52 + PT_VRSAVE = 0x94 + PT_VSCR = 0x93 + PT_VSR0 = 0x96 + PT_VSR31 = 0xd4 + PT_XER = 0x25 + RLIMIT_AS = 0x9 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x7 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = -0x1 + RTAX_ADVMSS = 0x8 + RTAX_CWND = 0x7 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0xf + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x11 + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELLINK = 0x11 + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_NOTIFY = 0x100 + RTM_F_PREFIX = 0x800 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_MAX = 0x57 + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWLINK = 0x10 + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x12 + RTM_NR_MSGTYPES = 0x48 + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_F_DEAD = 0x1 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTN_MAX = 0xb + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_GATED = 0x8 + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPNS = 0x23 + SCM_WIFI_STATUS = 0x29 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x8905 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCGARP = 0x8954 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGPGRP = 0x8904 + SIOCGRARP = 0x8961 + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSPGRP = 0x8902 + SIOCSRARP = 0x8962 + SOCK_CLOEXEC = 0x80000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_AAL = 0x109 + SOL_ATM = 0x108 + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_PACKET = 0x107 + SOL_RAW = 0xff + SOL_SOCKET = 0x1 + SOL_TCP = 0x6 + SOL_X25 = 0x106 + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_FILTER = 0x1a + SO_BINDTODEVICE = 0x19 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_DEBUG = 0x1 + SO_DETACH_FILTER = 0x1b + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_GET_FILTER = 0x1a + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_NOFCS = 0x2b + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x14 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x15 + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1f + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x10 + SO_RCVTIMEO = 0x12 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x11 + SO_SNDTIMEO = 0x13 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCFLSH = 0x2000741f + TCIFLUSH = 0x0 + TCIOFLUSH = 0x2 + TCOFLUSH = 0x1 + TCP_CONGESTION = 0xd + TCP_COOKIE_IN_ALWAYS = 0x1 + TCP_COOKIE_MAX = 0x10 + TCP_COOKIE_MIN = 0x8 + TCP_COOKIE_OUT_NEVER = 0x2 + TCP_COOKIE_PAIR_SIZE = 0x20 + TCP_COOKIE_TRANSACTIONS = 0xf + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_FASTOPEN = 0x17 + TCP_INFO = 0xb + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_MSS_DEFAULT = 0x218 + TCP_MSS_DESIRED = 0x4c4 + TCP_NODELAY = 0x1 + TCP_QUEUE_SEQ = 0x15 + TCP_QUICKACK = 0xc + TCP_REPAIR = 0x13 + TCP_REPAIR_OPTIONS = 0x16 + TCP_REPAIR_QUEUE = 0x14 + TCP_SYNCNT = 0x7 + TCP_S_DATA_IN = 0x4 + TCP_S_DATA_OUT = 0x8 + TCP_THIN_DUPACK = 0x11 + TCP_THIN_LINEAR_TIMEOUTS = 0x10 + TCP_TIMESTAMP = 0x18 + TCP_USER_TIMEOUT = 0x12 + TCP_WINDOW_CLAMP = 0xa + TCSAFLUSH = 0x2 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x40045432 + TIOCGETC = 0x40067412 + TIOCGETD = 0x5424 + TIOCGETP = 0x40067408 + TIOCGEXCL = 0x40045440 + TIOCGICOUNT = 0x545d + TIOCGLCKTRMIOS = 0x5456 + TIOCGLTC = 0x40067474 + TIOCGPGRP = 0x40047477 + TIOCGPKT = 0x40045438 + TIOCGPTLCK = 0x40045439 + TIOCGPTN = 0x40045430 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x40087468 + TIOCINQ = 0x4004667f + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_LOOP = 0x8000 + TIOCM_OUT1 = 0x2000 + TIOCM_OUT2 = 0x4000 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x5420 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETC = 0x80067411 + TIOCSETD = 0x5423 + TIOCSETN = 0x8006740a + TIOCSETP = 0x80067409 + TIOCSIG = 0x80045436 + TIOCSLCKTRMIOS = 0x5457 + TIOCSLTC = 0x80067475 + TIOCSPGRP = 0x80047476 + TIOCSPTLCK = 0x80045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTART = 0x2000746e + TIOCSTI = 0x5412 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x400000 + TUNATTACHFILTER = 0x801054d5 + TUNDETACHFILTER = 0x801054d6 + TUNGETFEATURES = 0x400454cf + TUNGETFILTER = 0x401054db + TUNGETIFF = 0x400454d2 + TUNGETSNDBUF = 0x400454d3 + TUNGETVNETHDRSZ = 0x400454d7 + TUNSETDEBUG = 0x800454c9 + TUNSETGROUP = 0x800454ce + TUNSETIFF = 0x800454ca + TUNSETIFINDEX = 0x800454da + TUNSETLINK = 0x800454cd + TUNSETNOCSUM = 0x800454c8 + TUNSETOFFLOAD = 0x800454d0 + TUNSETOWNER = 0x800454cc + TUNSETPERSIST = 0x800454cb + TUNSETQUEUE = 0x800454d9 + TUNSETSNDBUF = 0x800454d4 + TUNSETTXFILTER = 0x800454d1 + TUNSETVNETHDRSZ = 0x800454d8 + VDISCARD = 0x10 + VEOF = 0x4 + VEOL = 0x6 + VEOL2 = 0x8 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x5 + VQUIT = 0x1 + VREPRINT = 0xb + VSTART = 0xd + VSTOP = 0xe + VSUSP = 0xc + VSWTC = 0x9 + VT0 = 0x0 + VT1 = 0x10000 + VTDLY = 0x10000 + VTIME = 0x7 + VWERASE = 0xa + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x40 + WSTOPPED = 0x2 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x62) + EADDRNOTAVAIL = Errno(0x63) + EADV = Errno(0x44) + EAFNOSUPPORT = Errno(0x61) + EAGAIN = Errno(0xb) + EALREADY = Errno(0x72) + EBADE = Errno(0x34) + EBADF = Errno(0x9) + EBADFD = Errno(0x4d) + EBADMSG = Errno(0x4a) + EBADR = Errno(0x35) + EBADRQC = Errno(0x38) + EBADSLT = Errno(0x39) + EBFONT = Errno(0x3b) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x7d) + ECHILD = Errno(0xa) + ECHRNG = Errno(0x2c) + ECOMM = Errno(0x46) + ECONNABORTED = Errno(0x67) + ECONNREFUSED = Errno(0x6f) + ECONNRESET = Errno(0x68) + EDEADLK = Errno(0x23) + EDEADLOCK = Errno(0x3a) + EDESTADDRREQ = Errno(0x59) + EDOM = Errno(0x21) + EDOTDOT = Errno(0x49) + EDQUOT = Errno(0x7a) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EHOSTDOWN = Errno(0x70) + EHOSTUNREACH = Errno(0x71) + EHWPOISON = Errno(0x85) + EIDRM = Errno(0x2b) + EILSEQ = Errno(0x54) + EINPROGRESS = Errno(0x73) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x6a) + EISDIR = Errno(0x15) + EISNAM = Errno(0x78) + EKEYEXPIRED = Errno(0x7f) + EKEYREJECTED = Errno(0x81) + EKEYREVOKED = Errno(0x80) + EL2HLT = Errno(0x33) + EL2NSYNC = Errno(0x2d) + EL3HLT = Errno(0x2e) + EL3RST = Errno(0x2f) + ELIBACC = Errno(0x4f) + ELIBBAD = Errno(0x50) + ELIBEXEC = Errno(0x53) + ELIBMAX = Errno(0x52) + ELIBSCN = Errno(0x51) + ELNRNG = Errno(0x30) + ELOOP = Errno(0x28) + EMEDIUMTYPE = Errno(0x7c) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x5a) + EMULTIHOP = Errno(0x48) + ENAMETOOLONG = Errno(0x24) + ENAVAIL = Errno(0x77) + ENETDOWN = Errno(0x64) + ENETRESET = Errno(0x66) + ENETUNREACH = Errno(0x65) + ENFILE = Errno(0x17) + ENOANO = Errno(0x37) + ENOBUFS = Errno(0x69) + ENOCSI = Errno(0x32) + ENODATA = Errno(0x3d) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOKEY = Errno(0x7e) + ENOLCK = Errno(0x25) + ENOLINK = Errno(0x43) + ENOMEDIUM = Errno(0x7b) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x2a) + ENONET = Errno(0x40) + ENOPKG = Errno(0x41) + ENOPROTOOPT = Errno(0x5c) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x3f) + ENOSTR = Errno(0x3c) + ENOSYS = Errno(0x26) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x6b) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x27) + ENOTNAM = Errno(0x76) + ENOTRECOVERABLE = Errno(0x83) + ENOTSOCK = Errno(0x58) + ENOTSUP = Errno(0x5f) + ENOTTY = Errno(0x19) + ENOTUNIQ = Errno(0x4c) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x5f) + EOVERFLOW = Errno(0x4b) + EOWNERDEAD = Errno(0x82) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x60) + EPIPE = Errno(0x20) + EPROTO = Errno(0x47) + EPROTONOSUPPORT = Errno(0x5d) + EPROTOTYPE = Errno(0x5b) + ERANGE = Errno(0x22) + EREMCHG = Errno(0x4e) + EREMOTE = Errno(0x42) + EREMOTEIO = Errno(0x79) + ERESTART = Errno(0x55) + ERFKILL = Errno(0x84) + EROFS = Errno(0x1e) + ESHUTDOWN = Errno(0x6c) + ESOCKTNOSUPPORT = Errno(0x5e) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESRMNT = Errno(0x45) + ESTALE = Errno(0x74) + ESTRPIPE = Errno(0x56) + ETIME = Errno(0x3e) + ETIMEDOUT = Errno(0x6e) + ETOOMANYREFS = Errno(0x6d) + ETXTBSY = Errno(0x1a) + EUCLEAN = Errno(0x75) + EUNATCH = Errno(0x31) + EUSERS = Errno(0x57) + EWOULDBLOCK = Errno(0xb) + EXDEV = Errno(0x12) + EXFULL = Errno(0x36) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0x7) + SIGCHLD = Signal(0x11) + SIGCLD = Signal(0x11) + SIGCONT = Signal(0x12) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINT = Signal(0x2) + SIGIO = Signal(0x1d) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPOLL = Signal(0x1d) + SIGPROF = Signal(0x1b) + SIGPWR = Signal(0x1e) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTKFLT = Signal(0x10) + SIGSTOP = Signal(0x13) + SIGSYS = Signal(0x1f) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x14) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGUNUSED = Signal(0x1f) + SIGURG = Signal(0x17) + SIGUSR1 = Signal(0xa) + SIGUSR2 = Signal(0xc) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_linux_riscv64.go b/runtime/internal/clite/syscall/zerrors_linux_riscv64.go new file mode 100644 index 00000000..b9892a46 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_linux_riscv64.go @@ -0,0 +1,1686 @@ +// mkerrors.sh +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- _const.go + +package syscall + +const ( + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IB = 0x1b + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KCM = 0x29 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x2a + AF_MPLS = 0x1c + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VSOCK = 0x28 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + ARPHRD_6LOWPAN = 0x339 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_X25 = 0x10f + B0 = 0x0 + B1000000 = 0x1008 + B110 = 0x3 + B115200 = 0x1002 + B1152000 = 0x1009 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1500000 = 0x100a + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2000000 = 0x100b + B230400 = 0x1003 + B2400 = 0xb + B2500000 = 0x100c + B300 = 0x7 + B3000000 = 0x100d + B3500000 = 0x100e + B38400 = 0xf + B4000000 = 0x100f + B460800 = 0x1004 + B4800 = 0xc + B50 = 0x1 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B600 = 0x8 + B75 = 0x2 + B921600 = 0x1007 + B9600 = 0xd + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LL_OFF = -0x200000 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_NET_OFF = -0x100000 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x800 + CREAD = 0x80 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIGNAL = 0xff + CSIZE = 0x30 + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSTOPB = 0x40 + CSUSP = 0x1a + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLEXCLUSIVE = 0x10000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x80000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_80221 = 0x8917 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_LOOPBACK = 0x9000 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MVRP = 0x88f5 + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PRP = 0x88fb + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + ETH_P_XDSA = 0xf8 + EXTA = 0xe + EXTB = 0xf + EXTPROC = 0x10000 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x1000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OFD_GETLK = 0x24 + F_OFD_SETLK = 0x25 + F_OFD_SETLKW = 0x26 + F_OK = 0x0 + F_RDLCK = 0x0 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + ICMPV6_FILTER = 0x1 + ICRNL = 0x100 + IEXTEN = 0x8000 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_MANAGETEMPADDR = 0x100 + IFA_F_MCAUTOJOIN = 0x400 + IFA_F_NODAD = 0x2 + IFA_F_NOPREFIXROUTE = 0x200 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_STABLE_PRIVACY = 0x800 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0x8 + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_ECHO = 0x40000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MASTER = 0x400 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_TAP = 0x2 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x80000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x800 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_BEETPH = 0x5e + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MH = 0x87 + IPPROTO_MPLS = 0x89 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_CHECKSUM = 0x7 + IPV6_DONTFRAG = 0x3e + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_HDRINCL = 0x24 + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_PATHMTU = 0x3d + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_INTERFACE = 0x4 + IPV6_PMTUDISC_OMIT = 0x5 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVPATHMTU = 0x3c + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_UNICAST_HOPS = 0x10 + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BIND_ADDRESS_NO_PORT = 0x18 + IP_BLOCK_SOURCE = 0x26 + IP_CHECKSUM = 0x17 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_NODEFRAG = 0x16 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_INTERFACE = 0x4 + IP_PMTUDISC_OMIT = 0x5 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_XFRM_POLICY = 0x11 + ISIG = 0x1 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x1000 + IXON = 0x400 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_FREE = 0x8 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_HUGE_MASK = 0x3f + MAP_HUGE_SHIFT = 0x1a + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_STACK = 0x20000 + MAP_TYPE = 0xf + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MCL_ONFAULT = 0x4 + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MSG_BATCH = 0x40000 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_LAZYTIME = 0x2000000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x2800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + NAME_MAX = 0xff + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_RX_RING = 0x6 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NOFLSH = 0x80 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_QM = 0x5 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_KERNEL = 0x7 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_QDISC_BYPASS = 0x14 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_USER = 0x6 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARENB = 0x100 + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x4000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_FP_MODE_FR = 0x1 + PR_FP_MODE_FRE = 0x2 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_FP_MODE = 0x2e + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_THP_DISABLE = 0x2a + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_MPX_DISABLE_MANAGEMENT = 0x2c + PR_MPX_ENABLE_MANAGEMENT = 0x2b + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_FP_MODE = 0x2d + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_MAP = 0xe + PR_SET_MM_MAP_SIZE = 0xf + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_PTRACER_ANY = -0x1 + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_THP_DISABLE = 0x29 + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x1000ff + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKUSR = 0x3 + PTRACE_POKEDATA = 0x5 + PTRACE_POKETEXT = 0x4 + PTRACE_POKEUSR = 0x6 + PTRACE_SEIZE = 0x4206 + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_TRACEME = 0x0 + RLIMIT_AS = 0x9 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x7 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = -0x1 + RTAX_ADVMSS = 0x8 + RTAX_CC_ALGO = 0x10 + RTAX_CWND = 0x7 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0x10 + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x14 + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELLINK = 0x11 + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELNSID = 0x59 + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_NOTIFY = 0x100 + RTM_F_PREFIX = 0x800 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETNSID = 0x5a + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_MAX = 0x5b + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWLINK = 0x10 + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWNSID = 0x58 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x13 + RTM_NR_MSGTYPES = 0x4c + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_F_DEAD = 0x1 + RTNH_F_OFFLOAD = 0x8 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTN_MAX = 0xb + RTPROT_BABEL = 0x2a + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_GATED = 0x8 + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPNS = 0x23 + SCM_WIFI_STATUS = 0x29 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x8905 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCGARP = 0x8954 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGPGRP = 0x8904 + SIOCGRARP = 0x8961 + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSPGRP = 0x8902 + SIOCSRARP = 0x8962 + SOCK_CLOEXEC = 0x80000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_AAL = 0x109 + SOL_ALG = 0x117 + SOL_ATM = 0x108 + SOL_BLUETOOTH = 0x112 + SOL_CAIF = 0x116 + SOL_DCCP = 0x10d + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_IUCV = 0x115 + SOL_KCM = 0x119 + SOL_LLC = 0x10c + SOL_NETBEUI = 0x10b + SOL_NETLINK = 0x10e + SOL_NFC = 0x118 + SOL_PACKET = 0x107 + SOL_PNPIPE = 0x113 + SOL_PPPOL2TP = 0x111 + SOL_RAW = 0xff + SOL_RDS = 0x114 + SOL_RXRPC = 0x110 + SOL_SOCKET = 0x1 + SOL_TCP = 0x6 + SOL_TIPC = 0x10f + SOL_X25 = 0x106 + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_FILTER = 0x1a + SO_BINDTODEVICE = 0x19 + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_DEBUG = 0x1 + SO_DETACH_BPF = 0x1b + SO_DETACH_FILTER = 0x1b + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_GET_FILTER = 0x1a + SO_INCOMING_CPU = 0x31 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_NOFCS = 0x2b + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1f + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCFLSH = 0x540b + TCIFLUSH = 0x0 + TCIOFLUSH = 0x2 + TCOFLUSH = 0x1 + TCP_CC_INFO = 0x1a + TCP_CONGESTION = 0xd + TCP_COOKIE_IN_ALWAYS = 0x1 + TCP_COOKIE_MAX = 0x10 + TCP_COOKIE_MIN = 0x8 + TCP_COOKIE_OUT_NEVER = 0x2 + TCP_COOKIE_PAIR_SIZE = 0x20 + TCP_COOKIE_TRANSACTIONS = 0xf + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_FASTOPEN = 0x17 + TCP_INFO = 0xb + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_MSS_DEFAULT = 0x218 + TCP_MSS_DESIRED = 0x4c4 + TCP_NODELAY = 0x1 + TCP_NOTSENT_LOWAT = 0x19 + TCP_QUEUE_SEQ = 0x15 + TCP_QUICKACK = 0xc + TCP_REPAIR = 0x13 + TCP_REPAIR_OPTIONS = 0x16 + TCP_REPAIR_QUEUE = 0x14 + TCP_SAVED_SYN = 0x1c + TCP_SAVE_SYN = 0x1b + TCP_SYNCNT = 0x7 + TCP_S_DATA_IN = 0x4 + TCP_S_DATA_OUT = 0x8 + TCP_THIN_DUPACK = 0x11 + TCP_THIN_LINEAR_TIMEOUTS = 0x10 + TCP_TIMESTAMP = 0x18 + TCP_USER_TIMEOUT = 0x12 + TCP_WINDOW_CLAMP = 0xa + TCSAFLUSH = 0x2 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETDEBUG = 0x400454c9 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x6 + VQUIT = 0x1 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT0 = 0x0 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x40 + WSTOPPED = 0x2 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x62) + EADDRNOTAVAIL = Errno(0x63) + EADV = Errno(0x44) + EAFNOSUPPORT = Errno(0x61) + EAGAIN = Errno(0xb) + EALREADY = Errno(0x72) + EBADE = Errno(0x34) + EBADF = Errno(0x9) + EBADFD = Errno(0x4d) + EBADMSG = Errno(0x4a) + EBADR = Errno(0x35) + EBADRQC = Errno(0x38) + EBADSLT = Errno(0x39) + EBFONT = Errno(0x3b) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x7d) + ECHILD = Errno(0xa) + ECHRNG = Errno(0x2c) + ECOMM = Errno(0x46) + ECONNABORTED = Errno(0x67) + ECONNREFUSED = Errno(0x6f) + ECONNRESET = Errno(0x68) + EDEADLK = Errno(0x23) + EDEADLOCK = Errno(0x23) + EDESTADDRREQ = Errno(0x59) + EDOM = Errno(0x21) + EDOTDOT = Errno(0x49) + EDQUOT = Errno(0x7a) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EHOSTDOWN = Errno(0x70) + EHOSTUNREACH = Errno(0x71) + EHWPOISON = Errno(0x85) + EIDRM = Errno(0x2b) + EILSEQ = Errno(0x54) + EINPROGRESS = Errno(0x73) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x6a) + EISDIR = Errno(0x15) + EISNAM = Errno(0x78) + EKEYEXPIRED = Errno(0x7f) + EKEYREJECTED = Errno(0x81) + EKEYREVOKED = Errno(0x80) + EL2HLT = Errno(0x33) + EL2NSYNC = Errno(0x2d) + EL3HLT = Errno(0x2e) + EL3RST = Errno(0x2f) + ELIBACC = Errno(0x4f) + ELIBBAD = Errno(0x50) + ELIBEXEC = Errno(0x53) + ELIBMAX = Errno(0x52) + ELIBSCN = Errno(0x51) + ELNRNG = Errno(0x30) + ELOOP = Errno(0x28) + EMEDIUMTYPE = Errno(0x7c) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x5a) + EMULTIHOP = Errno(0x48) + ENAMETOOLONG = Errno(0x24) + ENAVAIL = Errno(0x77) + ENETDOWN = Errno(0x64) + ENETRESET = Errno(0x66) + ENETUNREACH = Errno(0x65) + ENFILE = Errno(0x17) + ENOANO = Errno(0x37) + ENOBUFS = Errno(0x69) + ENOCSI = Errno(0x32) + ENODATA = Errno(0x3d) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOKEY = Errno(0x7e) + ENOLCK = Errno(0x25) + ENOLINK = Errno(0x43) + ENOMEDIUM = Errno(0x7b) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x2a) + ENONET = Errno(0x40) + ENOPKG = Errno(0x41) + ENOPROTOOPT = Errno(0x5c) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x3f) + ENOSTR = Errno(0x3c) + ENOSYS = Errno(0x26) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x6b) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x27) + ENOTNAM = Errno(0x76) + ENOTRECOVERABLE = Errno(0x83) + ENOTSOCK = Errno(0x58) + ENOTSUP = Errno(0x5f) + ENOTTY = Errno(0x19) + ENOTUNIQ = Errno(0x4c) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x5f) + EOVERFLOW = Errno(0x4b) + EOWNERDEAD = Errno(0x82) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x60) + EPIPE = Errno(0x20) + EPROTO = Errno(0x47) + EPROTONOSUPPORT = Errno(0x5d) + EPROTOTYPE = Errno(0x5b) + ERANGE = Errno(0x22) + EREMCHG = Errno(0x4e) + EREMOTE = Errno(0x42) + EREMOTEIO = Errno(0x79) + ERESTART = Errno(0x55) + ERFKILL = Errno(0x84) + EROFS = Errno(0x1e) + ESHUTDOWN = Errno(0x6c) + ESOCKTNOSUPPORT = Errno(0x5e) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESRMNT = Errno(0x45) + ESTALE = Errno(0x74) + ESTRPIPE = Errno(0x56) + ETIME = Errno(0x3e) + ETIMEDOUT = Errno(0x6e) + ETOOMANYREFS = Errno(0x6d) + ETXTBSY = Errno(0x1a) + EUCLEAN = Errno(0x75) + EUNATCH = Errno(0x31) + EUSERS = Errno(0x57) + EWOULDBLOCK = Errno(0xb) + EXDEV = Errno(0x12) + EXFULL = Errno(0x36) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0x7) + SIGCHLD = Signal(0x11) + SIGCLD = Signal(0x11) + SIGCONT = Signal(0x12) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINT = Signal(0x2) + SIGIO = Signal(0x1d) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPOLL = Signal(0x1d) + SIGPROF = Signal(0x1b) + SIGPWR = Signal(0x1e) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTKFLT = Signal(0x10) + SIGSTOP = Signal(0x13) + SIGSYS = Signal(0x1f) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x14) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGUNUSED = Signal(0x1f) + SIGURG = Signal(0x17) + SIGUSR1 = Signal(0xa) + SIGUSR2 = Signal(0xc) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_linux_s390x.go b/runtime/internal/clite/syscall/zerrors_linux_s390x.go new file mode 100644 index 00000000..eceb9683 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_linux_s390x.go @@ -0,0 +1,1747 @@ +// mkerrors.sh -m64 +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m64 _const.go + +package syscall + +const ( + AF_ALG = 0x26 + AF_APPLETALK = 0x5 + AF_ASH = 0x12 + AF_ATMPVC = 0x8 + AF_ATMSVC = 0x14 + AF_AX25 = 0x3 + AF_BLUETOOTH = 0x1f + AF_BRIDGE = 0x7 + AF_CAIF = 0x25 + AF_CAN = 0x1d + AF_DECnet = 0xc + AF_ECONET = 0x13 + AF_FILE = 0x1 + AF_IEEE802154 = 0x24 + AF_INET = 0x2 + AF_INET6 = 0xa + AF_IPX = 0x4 + AF_IRDA = 0x17 + AF_ISDN = 0x22 + AF_IUCV = 0x20 + AF_KEY = 0xf + AF_LLC = 0x1a + AF_LOCAL = 0x1 + AF_MAX = 0x29 + AF_NETBEUI = 0xd + AF_NETLINK = 0x10 + AF_NETROM = 0x6 + AF_NFC = 0x27 + AF_PACKET = 0x11 + AF_PHONET = 0x23 + AF_PPPOX = 0x18 + AF_RDS = 0x15 + AF_ROSE = 0xb + AF_ROUTE = 0x10 + AF_RXRPC = 0x21 + AF_SECURITY = 0xe + AF_SNA = 0x16 + AF_TIPC = 0x1e + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_VSOCK = 0x28 + AF_WANPIPE = 0x19 + AF_X25 = 0x9 + ARPHRD_6LOWPAN = 0x339 + ARPHRD_ADAPT = 0x108 + ARPHRD_APPLETLK = 0x8 + ARPHRD_ARCNET = 0x7 + ARPHRD_ASH = 0x30d + ARPHRD_ATM = 0x13 + ARPHRD_AX25 = 0x3 + ARPHRD_BIF = 0x307 + ARPHRD_CAIF = 0x336 + ARPHRD_CAN = 0x118 + ARPHRD_CHAOS = 0x5 + ARPHRD_CISCO = 0x201 + ARPHRD_CSLIP = 0x101 + ARPHRD_CSLIP6 = 0x103 + ARPHRD_DDCMP = 0x205 + ARPHRD_DLCI = 0xf + ARPHRD_ECONET = 0x30e + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_EUI64 = 0x1b + ARPHRD_FCAL = 0x311 + ARPHRD_FCFABRIC = 0x313 + ARPHRD_FCPL = 0x312 + ARPHRD_FCPP = 0x310 + ARPHRD_FDDI = 0x306 + ARPHRD_FRAD = 0x302 + ARPHRD_HDLC = 0x201 + ARPHRD_HIPPI = 0x30c + ARPHRD_HWX25 = 0x110 + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IEEE80211 = 0x321 + ARPHRD_IEEE80211_PRISM = 0x322 + ARPHRD_IEEE80211_RADIOTAP = 0x323 + ARPHRD_IEEE802154 = 0x324 + ARPHRD_IEEE802154_MONITOR = 0x325 + ARPHRD_IEEE802_TR = 0x320 + ARPHRD_INFINIBAND = 0x20 + ARPHRD_IP6GRE = 0x337 + ARPHRD_IPDDP = 0x309 + ARPHRD_IPGRE = 0x30a + ARPHRD_IRDA = 0x30f + ARPHRD_LAPB = 0x204 + ARPHRD_LOCALTLK = 0x305 + ARPHRD_LOOPBACK = 0x304 + ARPHRD_METRICOM = 0x17 + ARPHRD_NETLINK = 0x338 + ARPHRD_NETROM = 0x0 + ARPHRD_NONE = 0xfffe + ARPHRD_PHONET = 0x334 + ARPHRD_PHONET_PIPE = 0x335 + ARPHRD_PIMREG = 0x30b + ARPHRD_PPP = 0x200 + ARPHRD_PRONET = 0x4 + ARPHRD_RAWHDLC = 0x206 + ARPHRD_ROSE = 0x10e + ARPHRD_RSRVD = 0x104 + ARPHRD_SIT = 0x308 + ARPHRD_SKIP = 0x303 + ARPHRD_SLIP = 0x100 + ARPHRD_SLIP6 = 0x102 + ARPHRD_TUNNEL = 0x300 + ARPHRD_TUNNEL6 = 0x301 + ARPHRD_VOID = 0xffff + ARPHRD_X25 = 0x10f + B0 = 0x0 + B1000000 = 0x1008 + B110 = 0x3 + B115200 = 0x1002 + B1152000 = 0x1009 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B1500000 = 0x100a + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B2000000 = 0x100b + B230400 = 0x1003 + B2400 = 0xb + B2500000 = 0x100c + B300 = 0x7 + B3000000 = 0x100d + B3500000 = 0x100e + B38400 = 0xf + B4000000 = 0x100f + B460800 = 0x1004 + B4800 = 0xc + B50 = 0x1 + B500000 = 0x1005 + B57600 = 0x1001 + B576000 = 0x1006 + B600 = 0x8 + B75 = 0x2 + B921600 = 0x1007 + B9600 = 0xd + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LL_OFF = -0x200000 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXINSNS = 0x1000 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MOD = 0x90 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_NET_OFF = -0x100000 + BPF_OR = 0x40 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BPF_XOR = 0xa0 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x800 + CREAD = 0x80 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIGNAL = 0xff + CSIZE = 0x30 + CSTART = 0x11 + CSTATUS = 0x0 + CSTOP = 0x13 + CSTOPB = 0x40 + CSUSP = 0x1a + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + ENCODING_DEFAULT = 0x0 + ENCODING_FM_MARK = 0x3 + ENCODING_FM_SPACE = 0x4 + ENCODING_MANCHESTER = 0x5 + ENCODING_NRZ = 0x1 + ENCODING_NRZI = 0x2 + EPOLLERR = 0x8 + EPOLLET = 0x80000000 + EPOLLHUP = 0x10 + EPOLLIN = 0x1 + EPOLLMSG = 0x400 + EPOLLONESHOT = 0x40000000 + EPOLLOUT = 0x4 + EPOLLPRI = 0x2 + EPOLLRDBAND = 0x80 + EPOLLRDHUP = 0x2000 + EPOLLRDNORM = 0x40 + EPOLLWAKEUP = 0x20000000 + EPOLLWRBAND = 0x200 + EPOLLWRNORM = 0x100 + EPOLL_CLOEXEC = 0x80000 + EPOLL_CTL_ADD = 0x1 + EPOLL_CTL_DEL = 0x2 + EPOLL_CTL_MOD = 0x3 + ETH_P_1588 = 0x88f7 + ETH_P_8021AD = 0x88a8 + ETH_P_8021AH = 0x88e7 + ETH_P_8021Q = 0x8100 + ETH_P_80221 = 0x8917 + ETH_P_802_2 = 0x4 + ETH_P_802_3 = 0x1 + ETH_P_802_3_MIN = 0x600 + ETH_P_802_EX1 = 0x88b5 + ETH_P_AARP = 0x80f3 + ETH_P_AF_IUCV = 0xfbfb + ETH_P_ALL = 0x3 + ETH_P_AOE = 0x88a2 + ETH_P_ARCNET = 0x1a + ETH_P_ARP = 0x806 + ETH_P_ATALK = 0x809b + ETH_P_ATMFATE = 0x8884 + ETH_P_ATMMPOA = 0x884c + ETH_P_AX25 = 0x2 + ETH_P_BATMAN = 0x4305 + ETH_P_BPQ = 0x8ff + ETH_P_CAIF = 0xf7 + ETH_P_CAN = 0xc + ETH_P_CANFD = 0xd + ETH_P_CONTROL = 0x16 + ETH_P_CUST = 0x6006 + ETH_P_DDCMP = 0x6 + ETH_P_DEC = 0x6000 + ETH_P_DIAG = 0x6005 + ETH_P_DNA_DL = 0x6001 + ETH_P_DNA_RC = 0x6002 + ETH_P_DNA_RT = 0x6003 + ETH_P_DSA = 0x1b + ETH_P_ECONET = 0x18 + ETH_P_EDSA = 0xdada + ETH_P_FCOE = 0x8906 + ETH_P_FIP = 0x8914 + ETH_P_HDLC = 0x19 + ETH_P_IEEE802154 = 0xf6 + ETH_P_IEEEPUP = 0xa00 + ETH_P_IEEEPUPAT = 0xa01 + ETH_P_IP = 0x800 + ETH_P_IPV6 = 0x86dd + ETH_P_IPX = 0x8137 + ETH_P_IRDA = 0x17 + ETH_P_LAT = 0x6004 + ETH_P_LINK_CTL = 0x886c + ETH_P_LOCALTALK = 0x9 + ETH_P_LOOP = 0x60 + ETH_P_LOOPBACK = 0x9000 + ETH_P_MOBITEX = 0x15 + ETH_P_MPLS_MC = 0x8848 + ETH_P_MPLS_UC = 0x8847 + ETH_P_MVRP = 0x88f5 + ETH_P_PAE = 0x888e + ETH_P_PAUSE = 0x8808 + ETH_P_PHONET = 0xf5 + ETH_P_PPPTALK = 0x10 + ETH_P_PPP_DISC = 0x8863 + ETH_P_PPP_MP = 0x8 + ETH_P_PPP_SES = 0x8864 + ETH_P_PRP = 0x88fb + ETH_P_PUP = 0x200 + ETH_P_PUPAT = 0x201 + ETH_P_QINQ1 = 0x9100 + ETH_P_QINQ2 = 0x9200 + ETH_P_QINQ3 = 0x9300 + ETH_P_RARP = 0x8035 + ETH_P_SCA = 0x6007 + ETH_P_SLOW = 0x8809 + ETH_P_SNAP = 0x5 + ETH_P_TDLS = 0x890d + ETH_P_TEB = 0x6558 + ETH_P_TIPC = 0x88ca + ETH_P_TRAILER = 0x1c + ETH_P_TR_802_2 = 0x11 + ETH_P_TSN = 0x22f0 + ETH_P_WAN_PPP = 0x7 + ETH_P_WCCP = 0x883e + ETH_P_X25 = 0x805 + ETH_P_XDSA = 0xf8 + EXTA = 0xe + EXTB = 0xf + EXTPROC = 0x10000 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x1000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x406 + F_EXLCK = 0x4 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLEASE = 0x401 + F_GETLK = 0x5 + F_GETLK64 = 0x5 + F_GETOWN = 0x9 + F_GETOWN_EX = 0x10 + F_GETPIPE_SZ = 0x408 + F_GETSIG = 0xb + F_LOCK = 0x1 + F_NOTIFY = 0x402 + F_OFD_GETLK = 0x24 + F_OFD_SETLK = 0x25 + F_OFD_SETLKW = 0x26 + F_OK = 0x0 + F_RDLCK = 0x0 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLEASE = 0x400 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETOWN = 0x8 + F_SETOWN_EX = 0xf + F_SETPIPE_SZ = 0x407 + F_SETSIG = 0xa + F_SHLCK = 0x8 + F_TEST = 0x3 + F_TLOCK = 0x2 + F_ULOCK = 0x0 + F_UNLCK = 0x2 + F_WRLCK = 0x1 + HUPCL = 0x400 + ICANON = 0x2 + ICMPV6_FILTER = 0x1 + ICRNL = 0x100 + IEXTEN = 0x8000 + IFA_F_DADFAILED = 0x8 + IFA_F_DEPRECATED = 0x20 + IFA_F_HOMEADDRESS = 0x10 + IFA_F_MANAGETEMPADDR = 0x100 + IFA_F_MCAUTOJOIN = 0x400 + IFA_F_NODAD = 0x2 + IFA_F_NOPREFIXROUTE = 0x200 + IFA_F_OPTIMISTIC = 0x4 + IFA_F_PERMANENT = 0x80 + IFA_F_SECONDARY = 0x1 + IFA_F_STABLE_PRIVACY = 0x800 + IFA_F_TEMPORARY = 0x1 + IFA_F_TENTATIVE = 0x40 + IFA_MAX = 0x8 + IFF_ALLMULTI = 0x200 + IFF_ATTACH_QUEUE = 0x200 + IFF_AUTOMEDIA = 0x4000 + IFF_BROADCAST = 0x2 + IFF_DEBUG = 0x4 + IFF_DETACH_QUEUE = 0x400 + IFF_DORMANT = 0x20000 + IFF_DYNAMIC = 0x8000 + IFF_ECHO = 0x40000 + IFF_LOOPBACK = 0x8 + IFF_LOWER_UP = 0x10000 + IFF_MASTER = 0x400 + IFF_MULTICAST = 0x1000 + IFF_MULTI_QUEUE = 0x100 + IFF_NOARP = 0x80 + IFF_NOFILTER = 0x1000 + IFF_NOTRAILERS = 0x20 + IFF_NO_PI = 0x1000 + IFF_ONE_QUEUE = 0x2000 + IFF_PERSIST = 0x800 + IFF_POINTOPOINT = 0x10 + IFF_PORTSEL = 0x2000 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SLAVE = 0x800 + IFF_TAP = 0x2 + IFF_TUN = 0x1 + IFF_TUN_EXCL = 0x8000 + IFF_UP = 0x1 + IFF_VNET_HDR = 0x4000 + IFF_VOLATILE = 0x70c5a + IFNAMSIZ = 0x10 + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_ACCESS = 0x1 + IN_ALL_EVENTS = 0xfff + IN_ATTRIB = 0x4 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLOEXEC = 0x80000 + IN_CLOSE = 0x18 + IN_CLOSE_NOWRITE = 0x10 + IN_CLOSE_WRITE = 0x8 + IN_CREATE = 0x100 + IN_DELETE = 0x200 + IN_DELETE_SELF = 0x400 + IN_DONT_FOLLOW = 0x2000000 + IN_EXCL_UNLINK = 0x4000000 + IN_IGNORED = 0x8000 + IN_ISDIR = 0x40000000 + IN_LOOPBACKNET = 0x7f + IN_MASK_ADD = 0x20000000 + IN_MODIFY = 0x2 + IN_MOVE = 0xc0 + IN_MOVED_FROM = 0x40 + IN_MOVED_TO = 0x80 + IN_MOVE_SELF = 0x800 + IN_NONBLOCK = 0x800 + IN_ONESHOT = 0x80000000 + IN_ONLYDIR = 0x1000000 + IN_OPEN = 0x20 + IN_Q_OVERFLOW = 0x4000 + IN_UNMOUNT = 0x2000 + IPPROTO_AH = 0x33 + IPPROTO_BEETPH = 0x5e + IPPROTO_COMP = 0x6c + IPPROTO_DCCP = 0x21 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPIP = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MH = 0x87 + IPPROTO_MTP = 0x5c + IPPROTO_NONE = 0x3b + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_2292DSTOPTS = 0x4 + IPV6_2292HOPLIMIT = 0x8 + IPV6_2292HOPOPTS = 0x3 + IPV6_2292PKTINFO = 0x2 + IPV6_2292PKTOPTIONS = 0x6 + IPV6_2292RTHDR = 0x5 + IPV6_ADDRFORM = 0x1 + IPV6_ADD_MEMBERSHIP = 0x14 + IPV6_AUTHHDR = 0xa + IPV6_CHECKSUM = 0x7 + IPV6_DROP_MEMBERSHIP = 0x15 + IPV6_DSTOPTS = 0x3b + IPV6_HOPLIMIT = 0x34 + IPV6_HOPOPTS = 0x36 + IPV6_IPSEC_POLICY = 0x22 + IPV6_JOIN_ANYCAST = 0x1b + IPV6_JOIN_GROUP = 0x14 + IPV6_LEAVE_ANYCAST = 0x1c + IPV6_LEAVE_GROUP = 0x15 + IPV6_MTU = 0x18 + IPV6_MTU_DISCOVER = 0x17 + IPV6_MULTICAST_HOPS = 0x12 + IPV6_MULTICAST_IF = 0x11 + IPV6_MULTICAST_LOOP = 0x13 + IPV6_NEXTHOP = 0x9 + IPV6_PKTINFO = 0x32 + IPV6_PMTUDISC_DO = 0x2 + IPV6_PMTUDISC_DONT = 0x0 + IPV6_PMTUDISC_INTERFACE = 0x4 + IPV6_PMTUDISC_OMIT = 0x5 + IPV6_PMTUDISC_PROBE = 0x3 + IPV6_PMTUDISC_WANT = 0x1 + IPV6_RECVDSTOPTS = 0x3a + IPV6_RECVERR = 0x19 + IPV6_RECVHOPLIMIT = 0x33 + IPV6_RECVHOPOPTS = 0x35 + IPV6_RECVPKTINFO = 0x31 + IPV6_RECVRTHDR = 0x38 + IPV6_RECVTCLASS = 0x42 + IPV6_ROUTER_ALERT = 0x16 + IPV6_RTHDR = 0x39 + IPV6_RTHDRDSTOPTS = 0x37 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_RXDSTOPTS = 0x3b + IPV6_RXHOPOPTS = 0x36 + IPV6_TCLASS = 0x43 + IPV6_UNICAST_HOPS = 0x10 + IPV6_V6ONLY = 0x1a + IPV6_XFRM_POLICY = 0x23 + IP_ADD_MEMBERSHIP = 0x23 + IP_ADD_SOURCE_MEMBERSHIP = 0x27 + IP_BLOCK_SOURCE = 0x26 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0x24 + IP_DROP_SOURCE_MEMBERSHIP = 0x28 + IP_FREEBIND = 0xf + IP_HDRINCL = 0x3 + IP_IPSEC_POLICY = 0x10 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINTTL = 0x15 + IP_MSFILTER = 0x29 + IP_MSS = 0x240 + IP_MTU = 0xe + IP_MTU_DISCOVER = 0xa + IP_MULTICAST_ALL = 0x31 + IP_MULTICAST_IF = 0x20 + IP_MULTICAST_LOOP = 0x22 + IP_MULTICAST_TTL = 0x21 + IP_NODEFRAG = 0x16 + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x4 + IP_ORIGDSTADDR = 0x14 + IP_PASSSEC = 0x12 + IP_PKTINFO = 0x8 + IP_PKTOPTIONS = 0x9 + IP_PMTUDISC = 0xa + IP_PMTUDISC_DO = 0x2 + IP_PMTUDISC_DONT = 0x0 + IP_PMTUDISC_INTERFACE = 0x4 + IP_PMTUDISC_OMIT = 0x5 + IP_PMTUDISC_PROBE = 0x3 + IP_PMTUDISC_WANT = 0x1 + IP_RECVERR = 0xb + IP_RECVOPTS = 0x6 + IP_RECVORIGDSTADDR = 0x14 + IP_RECVRETOPTS = 0x7 + IP_RECVTOS = 0xd + IP_RECVTTL = 0xc + IP_RETOPTS = 0x7 + IP_RF = 0x8000 + IP_ROUTER_ALERT = 0x5 + IP_TOS = 0x1 + IP_TRANSPARENT = 0x13 + IP_TTL = 0x2 + IP_UNBLOCK_SOURCE = 0x25 + IP_UNICAST_IF = 0x32 + IP_XFRM_POLICY = 0x11 + ISIG = 0x1 + ISTRIP = 0x20 + IUTF8 = 0x4000 + IXANY = 0x800 + IXOFF = 0x1000 + IXON = 0x400 + LINUX_REBOOT_CMD_CAD_OFF = 0x0 + LINUX_REBOOT_CMD_CAD_ON = 0x89abcdef + LINUX_REBOOT_CMD_HALT = 0xcdef0123 + LINUX_REBOOT_CMD_KEXEC = 0x45584543 + LINUX_REBOOT_CMD_POWER_OFF = 0x4321fedc + LINUX_REBOOT_CMD_RESTART = 0x1234567 + LINUX_REBOOT_CMD_RESTART2 = 0xa1b2c3d4 + LINUX_REBOOT_CMD_SW_SUSPEND = 0xd000fce2 + LINUX_REBOOT_MAGIC1 = 0xfee1dead + LINUX_REBOOT_MAGIC2 = 0x28121969 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DODUMP = 0x11 + MADV_DOFORK = 0xb + MADV_DONTDUMP = 0x10 + MADV_DONTFORK = 0xa + MADV_DONTNEED = 0x4 + MADV_HUGEPAGE = 0xe + MADV_HWPOISON = 0x64 + MADV_MERGEABLE = 0xc + MADV_NOHUGEPAGE = 0xf + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_REMOVE = 0x9 + MADV_SEQUENTIAL = 0x2 + MADV_UNMERGEABLE = 0xd + MADV_WILLNEED = 0x3 + MAP_ANON = 0x20 + MAP_ANONYMOUS = 0x20 + MAP_DENYWRITE = 0x800 + MAP_EXECUTABLE = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_GROWSDOWN = 0x100 + MAP_HUGETLB = 0x40000 + MAP_HUGE_MASK = 0x3f + MAP_HUGE_SHIFT = 0x1a + MAP_LOCKED = 0x2000 + MAP_NONBLOCK = 0x10000 + MAP_NORESERVE = 0x4000 + MAP_POPULATE = 0x8000 + MAP_PRIVATE = 0x2 + MAP_SHARED = 0x1 + MAP_STACK = 0x20000 + MAP_TYPE = 0xf + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MNT_DETACH = 0x2 + MNT_EXPIRE = 0x4 + MNT_FORCE = 0x1 + MSG_CMSG_CLOEXEC = 0x40000000 + MSG_CONFIRM = 0x800 + MSG_CTRUNC = 0x8 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x40 + MSG_EOR = 0x80 + MSG_ERRQUEUE = 0x2000 + MSG_FASTOPEN = 0x20000000 + MSG_FIN = 0x200 + MSG_MORE = 0x8000 + MSG_NOSIGNAL = 0x4000 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_PROXY = 0x10 + MSG_RST = 0x1000 + MSG_SYN = 0x400 + MSG_TRUNC = 0x20 + MSG_TRYHARD = 0x4 + MSG_WAITALL = 0x100 + MSG_WAITFORONE = 0x10000 + MS_ACTIVE = 0x40000000 + MS_ASYNC = 0x1 + MS_BIND = 0x1000 + MS_DIRSYNC = 0x80 + MS_INVALIDATE = 0x2 + MS_I_VERSION = 0x800000 + MS_KERNMOUNT = 0x400000 + MS_MANDLOCK = 0x40 + MS_MGC_MSK = 0xffff0000 + MS_MGC_VAL = 0xc0ed0000 + MS_MOVE = 0x2000 + MS_NOATIME = 0x400 + MS_NODEV = 0x4 + MS_NODIRATIME = 0x800 + MS_NOEXEC = 0x8 + MS_NOSUID = 0x2 + MS_NOUSER = -0x80000000 + MS_POSIXACL = 0x10000 + MS_PRIVATE = 0x40000 + MS_RDONLY = 0x1 + MS_REC = 0x4000 + MS_RELATIME = 0x200000 + MS_REMOUNT = 0x20 + MS_RMT_MASK = 0x800051 + MS_SHARED = 0x100000 + MS_SILENT = 0x8000 + MS_SLAVE = 0x80000 + MS_STRICTATIME = 0x1000000 + MS_SYNC = 0x4 + MS_SYNCHRONOUS = 0x10 + MS_UNBINDABLE = 0x20000 + NAME_MAX = 0xff + NETLINK_ADD_MEMBERSHIP = 0x1 + NETLINK_AUDIT = 0x9 + NETLINK_BROADCAST_ERROR = 0x4 + NETLINK_CAP_ACK = 0xa + NETLINK_CONNECTOR = 0xb + NETLINK_CRYPTO = 0x15 + NETLINK_DNRTMSG = 0xe + NETLINK_DROP_MEMBERSHIP = 0x2 + NETLINK_ECRYPTFS = 0x13 + NETLINK_FIB_LOOKUP = 0xa + NETLINK_FIREWALL = 0x3 + NETLINK_GENERIC = 0x10 + NETLINK_INET_DIAG = 0x4 + NETLINK_IP6_FW = 0xd + NETLINK_ISCSI = 0x8 + NETLINK_KOBJECT_UEVENT = 0xf + NETLINK_LISTEN_ALL_NSID = 0x8 + NETLINK_LIST_MEMBERSHIPS = 0x9 + NETLINK_NETFILTER = 0xc + NETLINK_NFLOG = 0x5 + NETLINK_NO_ENOBUFS = 0x5 + NETLINK_PKTINFO = 0x3 + NETLINK_RDMA = 0x14 + NETLINK_ROUTE = 0x0 + NETLINK_RX_RING = 0x6 + NETLINK_SCSITRANSPORT = 0x12 + NETLINK_SELINUX = 0x7 + NETLINK_SOCK_DIAG = 0x4 + NETLINK_TX_RING = 0x7 + NETLINK_UNUSED = 0x1 + NETLINK_USERSOCK = 0x2 + NETLINK_XFRM = 0x6 + NLA_ALIGNTO = 0x4 + NLA_F_NESTED = 0x8000 + NLA_F_NET_BYTEORDER = 0x4000 + NLA_HDRLEN = 0x4 + NLMSG_ALIGNTO = 0x4 + NLMSG_DONE = 0x3 + NLMSG_ERROR = 0x2 + NLMSG_HDRLEN = 0x10 + NLMSG_MIN_TYPE = 0x10 + NLMSG_NOOP = 0x1 + NLMSG_OVERRUN = 0x4 + NLM_F_ACK = 0x4 + NLM_F_APPEND = 0x800 + NLM_F_ATOMIC = 0x400 + NLM_F_CREATE = 0x400 + NLM_F_DUMP = 0x300 + NLM_F_DUMP_FILTERED = 0x20 + NLM_F_DUMP_INTR = 0x10 + NLM_F_ECHO = 0x8 + NLM_F_EXCL = 0x200 + NLM_F_MATCH = 0x200 + NLM_F_MULTI = 0x2 + NLM_F_REPLACE = 0x100 + NLM_F_REQUEST = 0x1 + NLM_F_ROOT = 0x100 + NOFLSH = 0x80 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x400 + O_ASYNC = 0x2000 + O_CLOEXEC = 0x80000 + O_CREAT = 0x40 + O_DIRECT = 0x4000 + O_DIRECTORY = 0x10000 + O_DSYNC = 0x1000 + O_EXCL = 0x80 + O_FSYNC = 0x101000 + O_LARGEFILE = 0x0 + O_NDELAY = 0x800 + O_NOATIME = 0x40000 + O_NOCTTY = 0x100 + O_NOFOLLOW = 0x20000 + O_NONBLOCK = 0x800 + O_PATH = 0x200000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x101000 + O_SYNC = 0x101000 + O_TMPFILE = 0x410000 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + PACKET_ADD_MEMBERSHIP = 0x1 + PACKET_AUXDATA = 0x8 + PACKET_BROADCAST = 0x1 + PACKET_COPY_THRESH = 0x7 + PACKET_DROP_MEMBERSHIP = 0x2 + PACKET_FANOUT = 0x12 + PACKET_FANOUT_CBPF = 0x6 + PACKET_FANOUT_CPU = 0x2 + PACKET_FANOUT_DATA = 0x16 + PACKET_FANOUT_EBPF = 0x7 + PACKET_FANOUT_FLAG_DEFRAG = 0x8000 + PACKET_FANOUT_FLAG_ROLLOVER = 0x1000 + PACKET_FANOUT_HASH = 0x0 + PACKET_FANOUT_LB = 0x1 + PACKET_FANOUT_QM = 0x5 + PACKET_FANOUT_RND = 0x4 + PACKET_FANOUT_ROLLOVER = 0x3 + PACKET_FASTROUTE = 0x6 + PACKET_HDRLEN = 0xb + PACKET_HOST = 0x0 + PACKET_KERNEL = 0x7 + PACKET_LOOPBACK = 0x5 + PACKET_LOSS = 0xe + PACKET_MR_ALLMULTI = 0x2 + PACKET_MR_MULTICAST = 0x0 + PACKET_MR_PROMISC = 0x1 + PACKET_MR_UNICAST = 0x3 + PACKET_MULTICAST = 0x2 + PACKET_ORIGDEV = 0x9 + PACKET_OTHERHOST = 0x3 + PACKET_OUTGOING = 0x4 + PACKET_QDISC_BYPASS = 0x14 + PACKET_RECV_OUTPUT = 0x3 + PACKET_RESERVE = 0xc + PACKET_ROLLOVER_STATS = 0x15 + PACKET_RX_RING = 0x5 + PACKET_STATISTICS = 0x6 + PACKET_TIMESTAMP = 0x11 + PACKET_TX_HAS_OFF = 0x13 + PACKET_TX_RING = 0xd + PACKET_TX_TIMESTAMP = 0x10 + PACKET_USER = 0x6 + PACKET_VERSION = 0xa + PACKET_VNET_HDR = 0xf + PARENB = 0x100 + PARITY_CRC16_PR0 = 0x2 + PARITY_CRC16_PR0_CCITT = 0x4 + PARITY_CRC16_PR1 = 0x3 + PARITY_CRC16_PR1_CCITT = 0x5 + PARITY_CRC32_PR0_CCITT = 0x6 + PARITY_CRC32_PR1_CCITT = 0x7 + PARITY_DEFAULT = 0x0 + PARITY_NONE = 0x1 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x4000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_GROWSDOWN = 0x1000000 + PROT_GROWSUP = 0x2000000 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PR_CAPBSET_DROP = 0x18 + PR_CAPBSET_READ = 0x17 + PR_CAP_AMBIENT = 0x2f + PR_CAP_AMBIENT_CLEAR_ALL = 0x4 + PR_CAP_AMBIENT_IS_SET = 0x1 + PR_CAP_AMBIENT_LOWER = 0x3 + PR_CAP_AMBIENT_RAISE = 0x2 + PR_ENDIAN_BIG = 0x0 + PR_ENDIAN_LITTLE = 0x1 + PR_ENDIAN_PPC_LITTLE = 0x2 + PR_FPEMU_NOPRINT = 0x1 + PR_FPEMU_SIGFPE = 0x2 + PR_FP_EXC_ASYNC = 0x2 + PR_FP_EXC_DISABLED = 0x0 + PR_FP_EXC_DIV = 0x10000 + PR_FP_EXC_INV = 0x100000 + PR_FP_EXC_NONRECOV = 0x1 + PR_FP_EXC_OVF = 0x20000 + PR_FP_EXC_PRECISE = 0x3 + PR_FP_EXC_RES = 0x80000 + PR_FP_EXC_SW_ENABLE = 0x80 + PR_FP_EXC_UND = 0x40000 + PR_FP_MODE_FR = 0x1 + PR_FP_MODE_FRE = 0x2 + PR_GET_CHILD_SUBREAPER = 0x25 + PR_GET_DUMPABLE = 0x3 + PR_GET_ENDIAN = 0x13 + PR_GET_FPEMU = 0x9 + PR_GET_FPEXC = 0xb + PR_GET_FP_MODE = 0x2e + PR_GET_KEEPCAPS = 0x7 + PR_GET_NAME = 0x10 + PR_GET_NO_NEW_PRIVS = 0x27 + PR_GET_PDEATHSIG = 0x2 + PR_GET_SECCOMP = 0x15 + PR_GET_SECUREBITS = 0x1b + PR_GET_THP_DISABLE = 0x2a + PR_GET_TID_ADDRESS = 0x28 + PR_GET_TIMERSLACK = 0x1e + PR_GET_TIMING = 0xd + PR_GET_TSC = 0x19 + PR_GET_UNALIGN = 0x5 + PR_MCE_KILL = 0x21 + PR_MCE_KILL_CLEAR = 0x0 + PR_MCE_KILL_DEFAULT = 0x2 + PR_MCE_KILL_EARLY = 0x1 + PR_MCE_KILL_GET = 0x22 + PR_MCE_KILL_LATE = 0x0 + PR_MCE_KILL_SET = 0x1 + PR_MPX_DISABLE_MANAGEMENT = 0x2c + PR_MPX_ENABLE_MANAGEMENT = 0x2b + PR_SET_CHILD_SUBREAPER = 0x24 + PR_SET_DUMPABLE = 0x4 + PR_SET_ENDIAN = 0x14 + PR_SET_FPEMU = 0xa + PR_SET_FPEXC = 0xc + PR_SET_FP_MODE = 0x2d + PR_SET_KEEPCAPS = 0x8 + PR_SET_MM = 0x23 + PR_SET_MM_ARG_END = 0x9 + PR_SET_MM_ARG_START = 0x8 + PR_SET_MM_AUXV = 0xc + PR_SET_MM_BRK = 0x7 + PR_SET_MM_END_CODE = 0x2 + PR_SET_MM_END_DATA = 0x4 + PR_SET_MM_ENV_END = 0xb + PR_SET_MM_ENV_START = 0xa + PR_SET_MM_EXE_FILE = 0xd + PR_SET_MM_MAP = 0xe + PR_SET_MM_MAP_SIZE = 0xf + PR_SET_MM_START_BRK = 0x6 + PR_SET_MM_START_CODE = 0x1 + PR_SET_MM_START_DATA = 0x3 + PR_SET_MM_START_STACK = 0x5 + PR_SET_NAME = 0xf + PR_SET_NO_NEW_PRIVS = 0x26 + PR_SET_PDEATHSIG = 0x1 + PR_SET_PTRACER = 0x59616d61 + PR_SET_PTRACER_ANY = -0x1 + PR_SET_SECCOMP = 0x16 + PR_SET_SECUREBITS = 0x1c + PR_SET_THP_DISABLE = 0x29 + PR_SET_TIMERSLACK = 0x1d + PR_SET_TIMING = 0xe + PR_SET_TSC = 0x1a + PR_SET_UNALIGN = 0x6 + PR_TASK_PERF_EVENTS_DISABLE = 0x1f + PR_TASK_PERF_EVENTS_ENABLE = 0x20 + PR_TIMING_STATISTICAL = 0x0 + PR_TIMING_TIMESTAMP = 0x1 + PR_TSC_ENABLE = 0x1 + PR_TSC_SIGSEGV = 0x2 + PR_UNALIGN_NOPRINT = 0x1 + PR_UNALIGN_SIGBUS = 0x2 + PTRACE_ATTACH = 0x10 + PTRACE_CONT = 0x7 + PTRACE_DETACH = 0x11 + PTRACE_DISABLE_TE = 0x5010 + PTRACE_ENABLE_TE = 0x5009 + PTRACE_EVENT_CLONE = 0x3 + PTRACE_EVENT_EXEC = 0x4 + PTRACE_EVENT_EXIT = 0x6 + PTRACE_EVENT_FORK = 0x1 + PTRACE_EVENT_SECCOMP = 0x7 + PTRACE_EVENT_STOP = 0x80 + PTRACE_EVENT_VFORK = 0x2 + PTRACE_EVENT_VFORK_DONE = 0x5 + PTRACE_GETEVENTMSG = 0x4201 + PTRACE_GETREGS = 0xc + PTRACE_GETREGSET = 0x4204 + PTRACE_GETSIGINFO = 0x4202 + PTRACE_GETSIGMASK = 0x420a + PTRACE_GET_LAST_BREAK = 0x5006 + PTRACE_INTERRUPT = 0x4207 + PTRACE_KILL = 0x8 + PTRACE_LISTEN = 0x4208 + PTRACE_OLDSETOPTIONS = 0x15 + PTRACE_O_EXITKILL = 0x100000 + PTRACE_O_MASK = 0x3000ff + PTRACE_O_SUSPEND_SECCOMP = 0x200000 + PTRACE_O_TRACECLONE = 0x8 + PTRACE_O_TRACEEXEC = 0x10 + PTRACE_O_TRACEEXIT = 0x40 + PTRACE_O_TRACEFORK = 0x2 + PTRACE_O_TRACESECCOMP = 0x80 + PTRACE_O_TRACESYSGOOD = 0x1 + PTRACE_O_TRACEVFORK = 0x4 + PTRACE_O_TRACEVFORKDONE = 0x20 + PTRACE_PEEKDATA = 0x2 + PTRACE_PEEKDATA_AREA = 0x5003 + PTRACE_PEEKSIGINFO = 0x4209 + PTRACE_PEEKSIGINFO_SHARED = 0x1 + PTRACE_PEEKTEXT = 0x1 + PTRACE_PEEKTEXT_AREA = 0x5002 + PTRACE_PEEKUSR = 0x3 + PTRACE_PEEKUSR_AREA = 0x5000 + PTRACE_PEEK_SYSTEM_CALL = 0x5007 + PTRACE_POKEDATA = 0x5 + PTRACE_POKEDATA_AREA = 0x5005 + PTRACE_POKETEXT = 0x4 + PTRACE_POKETEXT_AREA = 0x5004 + PTRACE_POKEUSR = 0x6 + PTRACE_POKEUSR_AREA = 0x5001 + PTRACE_POKE_SYSTEM_CALL = 0x5008 + PTRACE_PROT = 0x15 + PTRACE_SECCOMP_GET_FILTER = 0x420c + PTRACE_SEIZE = 0x4206 + PTRACE_SETOPTIONS = 0x4200 + PTRACE_SETREGS = 0xd + PTRACE_SETREGSET = 0x4205 + PTRACE_SETSIGINFO = 0x4203 + PTRACE_SETSIGMASK = 0x420b + PTRACE_SINGLEBLOCK = 0xc + PTRACE_SINGLESTEP = 0x9 + PTRACE_SYSCALL = 0x18 + PTRACE_TE_ABORT_RAND = 0x5011 + PTRACE_TRACEME = 0x0 + PT_ACR0 = 0x90 + PT_ACR1 = 0x94 + PT_ACR10 = 0xb8 + PT_ACR11 = 0xbc + PT_ACR12 = 0xc0 + PT_ACR13 = 0xc4 + PT_ACR14 = 0xc8 + PT_ACR15 = 0xcc + PT_ACR2 = 0x98 + PT_ACR3 = 0x9c + PT_ACR4 = 0xa0 + PT_ACR5 = 0xa4 + PT_ACR6 = 0xa8 + PT_ACR7 = 0xac + PT_ACR8 = 0xb0 + PT_ACR9 = 0xb4 + PT_CR_10 = 0x168 + PT_CR_11 = 0x170 + PT_CR_9 = 0x160 + PT_ENDREGS = 0x1af + PT_FPC = 0xd8 + PT_FPR0 = 0xe0 + PT_FPR1 = 0xe8 + PT_FPR10 = 0x130 + PT_FPR11 = 0x138 + PT_FPR12 = 0x140 + PT_FPR13 = 0x148 + PT_FPR14 = 0x150 + PT_FPR15 = 0x158 + PT_FPR2 = 0xf0 + PT_FPR3 = 0xf8 + PT_FPR4 = 0x100 + PT_FPR5 = 0x108 + PT_FPR6 = 0x110 + PT_FPR7 = 0x118 + PT_FPR8 = 0x120 + PT_FPR9 = 0x128 + PT_GPR0 = 0x10 + PT_GPR1 = 0x18 + PT_GPR10 = 0x60 + PT_GPR11 = 0x68 + PT_GPR12 = 0x70 + PT_GPR13 = 0x78 + PT_GPR14 = 0x80 + PT_GPR15 = 0x88 + PT_GPR2 = 0x20 + PT_GPR3 = 0x28 + PT_GPR4 = 0x30 + PT_GPR5 = 0x38 + PT_GPR6 = 0x40 + PT_GPR7 = 0x48 + PT_GPR8 = 0x50 + PT_GPR9 = 0x58 + PT_IEEE_IP = 0x1a8 + PT_LASTOFF = 0x1a8 + PT_ORIGGPR2 = 0xd0 + PT_PSWADDR = 0x8 + PT_PSWMASK = 0x0 + RLIMIT_AS = 0x9 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x7 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = -0x1 + RTAX_ADVMSS = 0x8 + RTAX_CC_ALGO = 0x10 + RTAX_CWND = 0x7 + RTAX_FEATURES = 0xc + RTAX_FEATURE_ALLFRAG = 0x8 + RTAX_FEATURE_ECN = 0x1 + RTAX_FEATURE_MASK = 0xf + RTAX_FEATURE_SACK = 0x2 + RTAX_FEATURE_TIMESTAMP = 0x4 + RTAX_HOPLIMIT = 0xa + RTAX_INITCWND = 0xb + RTAX_INITRWND = 0xe + RTAX_LOCK = 0x1 + RTAX_MAX = 0x10 + RTAX_MTU = 0x2 + RTAX_QUICKACK = 0xf + RTAX_REORDERING = 0x9 + RTAX_RTO_MIN = 0xd + RTAX_RTT = 0x4 + RTAX_RTTVAR = 0x5 + RTAX_SSTHRESH = 0x6 + RTAX_UNSPEC = 0x0 + RTAX_WINDOW = 0x3 + RTA_ALIGNTO = 0x4 + RTA_MAX = 0x16 + RTCF_DIRECTSRC = 0x4000000 + RTCF_DOREDIRECT = 0x1000000 + RTCF_LOG = 0x2000000 + RTCF_MASQ = 0x400000 + RTCF_NAT = 0x800000 + RTCF_VALVE = 0x200000 + RTF_ADDRCLASSMASK = 0xf8000000 + RTF_ADDRCONF = 0x40000 + RTF_ALLONLINK = 0x20000 + RTF_BROADCAST = 0x10000000 + RTF_CACHE = 0x1000000 + RTF_DEFAULT = 0x10000 + RTF_DYNAMIC = 0x10 + RTF_FLOW = 0x2000000 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INTERFACE = 0x40000000 + RTF_IRTT = 0x100 + RTF_LINKRT = 0x100000 + RTF_LOCAL = 0x80000000 + RTF_MODIFIED = 0x20 + RTF_MSS = 0x40 + RTF_MTU = 0x40 + RTF_MULTICAST = 0x20000000 + RTF_NAT = 0x8000000 + RTF_NOFORWARD = 0x1000 + RTF_NONEXTHOP = 0x200000 + RTF_NOPMTUDISC = 0x4000 + RTF_POLICY = 0x4000000 + RTF_REINSTATE = 0x8 + RTF_REJECT = 0x200 + RTF_STATIC = 0x400 + RTF_THROW = 0x2000 + RTF_UP = 0x1 + RTF_WINDOW = 0x80 + RTF_XRESOLVE = 0x800 + RTM_BASE = 0x10 + RTM_DELACTION = 0x31 + RTM_DELADDR = 0x15 + RTM_DELADDRLABEL = 0x49 + RTM_DELLINK = 0x11 + RTM_DELMDB = 0x55 + RTM_DELNEIGH = 0x1d + RTM_DELNSID = 0x59 + RTM_DELQDISC = 0x25 + RTM_DELROUTE = 0x19 + RTM_DELRULE = 0x21 + RTM_DELTCLASS = 0x29 + RTM_DELTFILTER = 0x2d + RTM_F_CLONED = 0x200 + RTM_F_EQUALIZE = 0x400 + RTM_F_LOOKUP_TABLE = 0x1000 + RTM_F_NOTIFY = 0x100 + RTM_F_PREFIX = 0x800 + RTM_GETACTION = 0x32 + RTM_GETADDR = 0x16 + RTM_GETADDRLABEL = 0x4a + RTM_GETANYCAST = 0x3e + RTM_GETDCB = 0x4e + RTM_GETLINK = 0x12 + RTM_GETMDB = 0x56 + RTM_GETMULTICAST = 0x3a + RTM_GETNEIGH = 0x1e + RTM_GETNEIGHTBL = 0x42 + RTM_GETNETCONF = 0x52 + RTM_GETNSID = 0x5a + RTM_GETQDISC = 0x26 + RTM_GETROUTE = 0x1a + RTM_GETRULE = 0x22 + RTM_GETTCLASS = 0x2a + RTM_GETTFILTER = 0x2e + RTM_MAX = 0x5b + RTM_NEWACTION = 0x30 + RTM_NEWADDR = 0x14 + RTM_NEWADDRLABEL = 0x48 + RTM_NEWLINK = 0x10 + RTM_NEWMDB = 0x54 + RTM_NEWNDUSEROPT = 0x44 + RTM_NEWNEIGH = 0x1c + RTM_NEWNEIGHTBL = 0x40 + RTM_NEWNETCONF = 0x50 + RTM_NEWNSID = 0x58 + RTM_NEWPREFIX = 0x34 + RTM_NEWQDISC = 0x24 + RTM_NEWROUTE = 0x18 + RTM_NEWRULE = 0x20 + RTM_NEWTCLASS = 0x28 + RTM_NEWTFILTER = 0x2c + RTM_NR_FAMILIES = 0x13 + RTM_NR_MSGTYPES = 0x4c + RTM_SETDCB = 0x4f + RTM_SETLINK = 0x13 + RTM_SETNEIGHTBL = 0x43 + RTNH_ALIGNTO = 0x4 + RTNH_COMPARE_MASK = 0x11 + RTNH_F_DEAD = 0x1 + RTNH_F_LINKDOWN = 0x10 + RTNH_F_OFFLOAD = 0x8 + RTNH_F_ONLINK = 0x4 + RTNH_F_PERVASIVE = 0x2 + RTN_MAX = 0xb + RTPROT_BABEL = 0x2a + RTPROT_BIRD = 0xc + RTPROT_BOOT = 0x3 + RTPROT_DHCP = 0x10 + RTPROT_DNROUTED = 0xd + RTPROT_GATED = 0x8 + RTPROT_KERNEL = 0x2 + RTPROT_MROUTED = 0x11 + RTPROT_MRT = 0xa + RTPROT_NTK = 0xf + RTPROT_RA = 0x9 + RTPROT_REDIRECT = 0x1 + RTPROT_STATIC = 0x4 + RTPROT_UNSPEC = 0x0 + RTPROT_XORP = 0xe + RTPROT_ZEBRA = 0xb + RT_CLASS_DEFAULT = 0xfd + RT_CLASS_LOCAL = 0xff + RT_CLASS_MAIN = 0xfe + RT_CLASS_MAX = 0xff + RT_CLASS_UNSPEC = 0x0 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_CREDENTIALS = 0x2 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x1d + SCM_TIMESTAMPING = 0x25 + SCM_TIMESTAMPNS = 0x23 + SCM_WIFI_STATUS = 0x29 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDDLCI = 0x8980 + SIOCADDMULTI = 0x8931 + SIOCADDRT = 0x890b + SIOCATMARK = 0x8905 + SIOCDARP = 0x8953 + SIOCDELDLCI = 0x8981 + SIOCDELMULTI = 0x8932 + SIOCDELRT = 0x890c + SIOCDEVPRIVATE = 0x89f0 + SIOCDIFADDR = 0x8936 + SIOCDRARP = 0x8960 + SIOCGARP = 0x8954 + SIOCGIFADDR = 0x8915 + SIOCGIFBR = 0x8940 + SIOCGIFBRDADDR = 0x8919 + SIOCGIFCONF = 0x8912 + SIOCGIFCOUNT = 0x8938 + SIOCGIFDSTADDR = 0x8917 + SIOCGIFENCAP = 0x8925 + SIOCGIFFLAGS = 0x8913 + SIOCGIFHWADDR = 0x8927 + SIOCGIFINDEX = 0x8933 + SIOCGIFMAP = 0x8970 + SIOCGIFMEM = 0x891f + SIOCGIFMETRIC = 0x891d + SIOCGIFMTU = 0x8921 + SIOCGIFNAME = 0x8910 + SIOCGIFNETMASK = 0x891b + SIOCGIFPFLAGS = 0x8935 + SIOCGIFSLAVE = 0x8929 + SIOCGIFTXQLEN = 0x8942 + SIOCGPGRP = 0x8904 + SIOCGRARP = 0x8961 + SIOCGSTAMP = 0x8906 + SIOCGSTAMPNS = 0x8907 + SIOCPROTOPRIVATE = 0x89e0 + SIOCRTMSG = 0x890d + SIOCSARP = 0x8955 + SIOCSIFADDR = 0x8916 + SIOCSIFBR = 0x8941 + SIOCSIFBRDADDR = 0x891a + SIOCSIFDSTADDR = 0x8918 + SIOCSIFENCAP = 0x8926 + SIOCSIFFLAGS = 0x8914 + SIOCSIFHWADDR = 0x8924 + SIOCSIFHWBROADCAST = 0x8937 + SIOCSIFLINK = 0x8911 + SIOCSIFMAP = 0x8971 + SIOCSIFMEM = 0x8920 + SIOCSIFMETRIC = 0x891e + SIOCSIFMTU = 0x8922 + SIOCSIFNAME = 0x8923 + SIOCSIFNETMASK = 0x891c + SIOCSIFPFLAGS = 0x8934 + SIOCSIFSLAVE = 0x8930 + SIOCSIFTXQLEN = 0x8943 + SIOCSPGRP = 0x8902 + SIOCSRARP = 0x8962 + SOCK_CLOEXEC = 0x80000 + SOCK_DCCP = 0x6 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x800 + SOCK_PACKET = 0xa + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_AAL = 0x109 + SOL_ATM = 0x108 + SOL_DECNET = 0x105 + SOL_ICMPV6 = 0x3a + SOL_IP = 0x0 + SOL_IPV6 = 0x29 + SOL_IRDA = 0x10a + SOL_PACKET = 0x107 + SOL_RAW = 0xff + SOL_SOCKET = 0x1 + SOL_TCP = 0x6 + SOL_X25 = 0x106 + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x1e + SO_ATTACH_BPF = 0x32 + SO_ATTACH_FILTER = 0x1a + SO_BINDTODEVICE = 0x19 + SO_BPF_EXTENSIONS = 0x30 + SO_BROADCAST = 0x6 + SO_BSDCOMPAT = 0xe + SO_BUSY_POLL = 0x2e + SO_DEBUG = 0x1 + SO_DETACH_BPF = 0x1b + SO_DETACH_FILTER = 0x1b + SO_DOMAIN = 0x27 + SO_DONTROUTE = 0x5 + SO_ERROR = 0x4 + SO_GET_FILTER = 0x1a + SO_INCOMING_CPU = 0x31 + SO_KEEPALIVE = 0x9 + SO_LINGER = 0xd + SO_LOCK_FILTER = 0x2c + SO_MARK = 0x24 + SO_MAX_PACING_RATE = 0x2f + SO_NOFCS = 0x2b + SO_NO_CHECK = 0xb + SO_OOBINLINE = 0xa + SO_PASSCRED = 0x10 + SO_PASSSEC = 0x22 + SO_PEEK_OFF = 0x2a + SO_PEERCRED = 0x11 + SO_PEERNAME = 0x1c + SO_PEERSEC = 0x1f + SO_PRIORITY = 0xc + SO_PROTOCOL = 0x26 + SO_RCVBUF = 0x8 + SO_RCVBUFFORCE = 0x21 + SO_RCVLOWAT = 0x12 + SO_RCVTIMEO = 0x14 + SO_REUSEADDR = 0x2 + SO_REUSEPORT = 0xf + SO_RXQ_OVFL = 0x28 + SO_SECURITY_AUTHENTICATION = 0x16 + SO_SECURITY_ENCRYPTION_NETWORK = 0x18 + SO_SECURITY_ENCRYPTION_TRANSPORT = 0x17 + SO_SELECT_ERR_QUEUE = 0x2d + SO_SNDBUF = 0x7 + SO_SNDBUFFORCE = 0x20 + SO_SNDLOWAT = 0x13 + SO_SNDTIMEO = 0x15 + SO_TIMESTAMP = 0x1d + SO_TIMESTAMPING = 0x25 + SO_TIMESTAMPNS = 0x23 + SO_TYPE = 0x3 + SO_WIFI_STATUS = 0x29 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCFLSH = 0x540b + TCIFLUSH = 0x0 + TCIOFLUSH = 0x2 + TCOFLUSH = 0x1 + TCP_CONGESTION = 0xd + TCP_COOKIE_IN_ALWAYS = 0x1 + TCP_COOKIE_MAX = 0x10 + TCP_COOKIE_MIN = 0x8 + TCP_COOKIE_OUT_NEVER = 0x2 + TCP_COOKIE_PAIR_SIZE = 0x20 + TCP_COOKIE_TRANSACTIONS = 0xf + TCP_CORK = 0x3 + TCP_DEFER_ACCEPT = 0x9 + TCP_FASTOPEN = 0x17 + TCP_INFO = 0xb + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x4 + TCP_KEEPINTVL = 0x5 + TCP_LINGER2 = 0x8 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0xe + TCP_MD5SIG_MAXKEYLEN = 0x50 + TCP_MSS = 0x200 + TCP_MSS_DEFAULT = 0x218 + TCP_MSS_DESIRED = 0x4c4 + TCP_NODELAY = 0x1 + TCP_QUEUE_SEQ = 0x15 + TCP_QUICKACK = 0xc + TCP_REPAIR = 0x13 + TCP_REPAIR_OPTIONS = 0x16 + TCP_REPAIR_QUEUE = 0x14 + TCP_SYNCNT = 0x7 + TCP_S_DATA_IN = 0x4 + TCP_S_DATA_OUT = 0x8 + TCP_THIN_DUPACK = 0x11 + TCP_THIN_LINEAR_TIMEOUTS = 0x10 + TCP_TIMESTAMP = 0x18 + TCP_USER_TIMEOUT = 0x12 + TCP_WINDOW_CLAMP = 0xa + TCSAFLUSH = 0x2 + TIOCCBRK = 0x5428 + TIOCCONS = 0x541d + TIOCEXCL = 0x540c + TIOCGDEV = 0x80045432 + TIOCGETD = 0x5424 + TIOCGEXCL = 0x80045440 + TIOCGICOUNT = 0x545d + TIOCGLCKTRMIOS = 0x5456 + TIOCGPGRP = 0x540f + TIOCGPKT = 0x80045438 + TIOCGPTLCK = 0x80045439 + TIOCGPTN = 0x80045430 + TIOCGRS485 = 0x542e + TIOCGSERIAL = 0x541e + TIOCGSID = 0x5429 + TIOCGSOFTCAR = 0x5419 + TIOCGWINSZ = 0x5413 + TIOCINQ = 0x541b + TIOCLINUX = 0x541c + TIOCMBIC = 0x5417 + TIOCMBIS = 0x5416 + TIOCMGET = 0x5415 + TIOCMIWAIT = 0x545c + TIOCMSET = 0x5418 + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x5422 + TIOCNXCL = 0x540d + TIOCOUTQ = 0x5411 + TIOCPKT = 0x5420 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCSBRK = 0x5427 + TIOCSCTTY = 0x540e + TIOCSERCONFIG = 0x5453 + TIOCSERGETLSR = 0x5459 + TIOCSERGETMULTI = 0x545a + TIOCSERGSTRUCT = 0x5458 + TIOCSERGWILD = 0x5454 + TIOCSERSETMULTI = 0x545b + TIOCSERSWILD = 0x5455 + TIOCSER_TEMT = 0x1 + TIOCSETD = 0x5423 + TIOCSIG = 0x40045436 + TIOCSLCKTRMIOS = 0x5457 + TIOCSPGRP = 0x5410 + TIOCSPTLCK = 0x40045431 + TIOCSRS485 = 0x542f + TIOCSSERIAL = 0x541f + TIOCSSOFTCAR = 0x541a + TIOCSTI = 0x5412 + TIOCSWINSZ = 0x5414 + TIOCVHANGUP = 0x5437 + TOSTOP = 0x100 + TUNATTACHFILTER = 0x401054d5 + TUNDETACHFILTER = 0x401054d6 + TUNGETFEATURES = 0x800454cf + TUNGETFILTER = 0x801054db + TUNGETIFF = 0x800454d2 + TUNGETSNDBUF = 0x800454d3 + TUNGETVNETBE = 0x800454df + TUNGETVNETHDRSZ = 0x800454d7 + TUNGETVNETLE = 0x800454dd + TUNSETDEBUG = 0x400454c9 + TUNSETGROUP = 0x400454ce + TUNSETIFF = 0x400454ca + TUNSETIFINDEX = 0x400454da + TUNSETLINK = 0x400454cd + TUNSETNOCSUM = 0x400454c8 + TUNSETOFFLOAD = 0x400454d0 + TUNSETOWNER = 0x400454cc + TUNSETPERSIST = 0x400454cb + TUNSETQUEUE = 0x400454d9 + TUNSETSNDBUF = 0x400454d4 + TUNSETTXFILTER = 0x400454d1 + TUNSETVNETBE = 0x400454de + TUNSETVNETHDRSZ = 0x400454d8 + TUNSETVNETLE = 0x400454dc + VDISCARD = 0xd + VEOF = 0x4 + VEOL = 0xb + VEOL2 = 0x10 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x6 + VQUIT = 0x1 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTC = 0x7 + VT0 = 0x0 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WALL = 0x40000000 + WCLONE = 0x80000000 + WCONTINUED = 0x8 + WEXITED = 0x4 + WNOHANG = 0x1 + WNOTHREAD = 0x20000000 + WNOWAIT = 0x1000000 + WORDSIZE = 0x40 + WSTOPPED = 0x2 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x62) + EADDRNOTAVAIL = Errno(0x63) + EADV = Errno(0x44) + EAFNOSUPPORT = Errno(0x61) + EAGAIN = Errno(0xb) + EALREADY = Errno(0x72) + EBADE = Errno(0x34) + EBADF = Errno(0x9) + EBADFD = Errno(0x4d) + EBADMSG = Errno(0x4a) + EBADR = Errno(0x35) + EBADRQC = Errno(0x38) + EBADSLT = Errno(0x39) + EBFONT = Errno(0x3b) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x7d) + ECHILD = Errno(0xa) + ECHRNG = Errno(0x2c) + ECOMM = Errno(0x46) + ECONNABORTED = Errno(0x67) + ECONNREFUSED = Errno(0x6f) + ECONNRESET = Errno(0x68) + EDEADLK = Errno(0x23) + EDEADLOCK = Errno(0x23) + EDESTADDRREQ = Errno(0x59) + EDOM = Errno(0x21) + EDOTDOT = Errno(0x49) + EDQUOT = Errno(0x7a) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EHOSTDOWN = Errno(0x70) + EHOSTUNREACH = Errno(0x71) + EHWPOISON = Errno(0x85) + EIDRM = Errno(0x2b) + EILSEQ = Errno(0x54) + EINPROGRESS = Errno(0x73) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x6a) + EISDIR = Errno(0x15) + EISNAM = Errno(0x78) + EKEYEXPIRED = Errno(0x7f) + EKEYREJECTED = Errno(0x81) + EKEYREVOKED = Errno(0x80) + EL2HLT = Errno(0x33) + EL2NSYNC = Errno(0x2d) + EL3HLT = Errno(0x2e) + EL3RST = Errno(0x2f) + ELIBACC = Errno(0x4f) + ELIBBAD = Errno(0x50) + ELIBEXEC = Errno(0x53) + ELIBMAX = Errno(0x52) + ELIBSCN = Errno(0x51) + ELNRNG = Errno(0x30) + ELOOP = Errno(0x28) + EMEDIUMTYPE = Errno(0x7c) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x5a) + EMULTIHOP = Errno(0x48) + ENAMETOOLONG = Errno(0x24) + ENAVAIL = Errno(0x77) + ENETDOWN = Errno(0x64) + ENETRESET = Errno(0x66) + ENETUNREACH = Errno(0x65) + ENFILE = Errno(0x17) + ENOANO = Errno(0x37) + ENOBUFS = Errno(0x69) + ENOCSI = Errno(0x32) + ENODATA = Errno(0x3d) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOKEY = Errno(0x7e) + ENOLCK = Errno(0x25) + ENOLINK = Errno(0x43) + ENOMEDIUM = Errno(0x7b) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x2a) + ENONET = Errno(0x40) + ENOPKG = Errno(0x41) + ENOPROTOOPT = Errno(0x5c) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x3f) + ENOSTR = Errno(0x3c) + ENOSYS = Errno(0x26) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x6b) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x27) + ENOTNAM = Errno(0x76) + ENOTRECOVERABLE = Errno(0x83) + ENOTSOCK = Errno(0x58) + ENOTSUP = Errno(0x5f) + ENOTTY = Errno(0x19) + ENOTUNIQ = Errno(0x4c) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x5f) + EOVERFLOW = Errno(0x4b) + EOWNERDEAD = Errno(0x82) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x60) + EPIPE = Errno(0x20) + EPROTO = Errno(0x47) + EPROTONOSUPPORT = Errno(0x5d) + EPROTOTYPE = Errno(0x5b) + ERANGE = Errno(0x22) + EREMCHG = Errno(0x4e) + EREMOTE = Errno(0x42) + EREMOTEIO = Errno(0x79) + ERESTART = Errno(0x55) + ERFKILL = Errno(0x84) + EROFS = Errno(0x1e) + ESHUTDOWN = Errno(0x6c) + ESOCKTNOSUPPORT = Errno(0x5e) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESRMNT = Errno(0x45) + ESTALE = Errno(0x74) + ESTRPIPE = Errno(0x56) + ETIME = Errno(0x3e) + ETIMEDOUT = Errno(0x6e) + ETOOMANYREFS = Errno(0x6d) + ETXTBSY = Errno(0x1a) + EUCLEAN = Errno(0x75) + EUNATCH = Errno(0x31) + EUSERS = Errno(0x57) + EWOULDBLOCK = Errno(0xb) + EXDEV = Errno(0x12) + EXFULL = Errno(0x36) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0x7) + SIGCHLD = Signal(0x11) + SIGCLD = Signal(0x11) + SIGCONT = Signal(0x12) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINT = Signal(0x2) + SIGIO = Signal(0x1d) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPOLL = Signal(0x1d) + SIGPROF = Signal(0x1b) + SIGPWR = Signal(0x1e) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTKFLT = Signal(0x10) + SIGSTOP = Signal(0x13) + SIGSYS = Signal(0x1f) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x14) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGUNUSED = Signal(0x1f) + SIGURG = Signal(0x17) + SIGUSR1 = Signal(0xa) + SIGUSR2 = Signal(0xc) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_netbsd_386.go b/runtime/internal/clite/syscall/zerrors_netbsd_386.go new file mode 100644 index 00000000..56866699 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_netbsd_386.go @@ -0,0 +1,1575 @@ +// mkerrors.sh -m32 +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m32 _const.go + +//go:build 386 && netbsd + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x1c + AF_BLUETOOTH = 0x1f + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x20 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x23 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OROUTE = 0x11 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x22 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ARCNET = 0x7 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_STRIP = 0x17 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0084277 + BIOCGETIF = 0x4090426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x400c427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044276 + BIOCSETF = 0x80084267 + BIOCSETIF = 0x8090426c + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRTIMEOUT = 0x800c427a + BIOCSSEESENT = 0x80044279 + BIOCSTCPF = 0x80084272 + BIOCSUDPF = 0x80084273 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALIGNMENT32 = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x1000000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLONE_CSIGNAL = 0xff + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_PID = 0x1000 + CLONE_PTRACE = 0x2000 + CLONE_SIGHAND = 0x800 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + CTL_QUERY = -0x2 + DIOCBSFLUSH = 0x20006478 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMUL_LINUX = 0x1 + EMUL_LINUX32 = 0x5 + EMUL_MAXID = 0x6 + EN_SW_CTL_INF = 0x1000 + EN_SW_CTL_PREC = 0x300 + EN_SW_CTL_ROUND = 0xc00 + EN_SW_DATACHAIN = 0x80 + EN_SW_DENORM = 0x2 + EN_SW_INVOP = 0x1 + EN_SW_OVERFLOW = 0x8 + EN_SW_PRECLOSS = 0x20 + EN_SW_UNDERFLOW = 0x10 + EN_SW_ZERODIV = 0x4 + ETHERCAP_JUMBO_MTU = 0x4 + ETHERCAP_VLAN_HWTAGGING = 0x2 + ETHERCAP_VLAN_MTU = 0x1 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERMTU_JUMBO = 0x2328 + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOWPROTOCOLS = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_LEN = 0x5ee + ETHER_MAX_LEN_JUMBO = 0x233a + ETHER_MIN_LEN = 0x40 + ETHER_PPPOE_ENCAP_LEN = 0x8 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = 0x2 + EVFILT_PROC = 0x4 + EVFILT_READ = 0x0 + EVFILT_SIGNAL = 0x5 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = 0x6 + EVFILT_VNODE = 0x3 + EVFILT_WRITE = 0x1 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x100 + FLUSHO = 0x800000 + F_CLOSEM = 0xa + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xc + F_FSCTL = -0x80000000 + F_FSDIRMASK = 0x70000000 + F_FSIN = 0x10000000 + F_FSINOUT = 0x30000000 + F_FSOUT = 0x20000000 + F_FSPRIV = 0x8000 + F_FSVOID = 0x40000000 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETNOSIGPIPE = 0xd + F_GETOWN = 0x5 + F_MAXFD = 0xb + F_OK = 0x0 + F_PARAM_MASK = 0xfff + F_PARAM_MAX = 0xfff + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8f52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IPV6_ICMP = 0x3a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MOBILE = 0x37 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_VRRP = 0x70 + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_EF = 0x8000 + IP_ERRORMTU = 0x15 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x16 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINFRAGSIZE = 0x45 + IP_MINTTL = 0x18 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x17 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ALIGNMENT_16MB = 0x18000000 + MAP_ALIGNMENT_1TB = 0x28000000 + MAP_ALIGNMENT_256TB = 0x30000000 + MAP_ALIGNMENT_4GB = 0x20000000 + MAP_ALIGNMENT_64KB = 0x10000000 + MAP_ALIGNMENT_64PB = 0x38000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DEFAULT = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x2000 + MAP_TRYFIXED = 0x400 + MAP_WIRED = 0x800 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CONTROLMBUF = 0x2000000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_IOVUSRSPACE = 0x4000000 + MSG_LENUSRSPACE = 0x8000000 + MSG_MCAST = 0x200 + MSG_NAMEMBUF = 0x1000000 + MSG_NBIO = 0x1000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_USERFLAGS = 0xffffff + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x4 + NAME_MAX = 0x1ff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x5 + NET_RT_MAXID = 0x6 + NET_RT_OIFLIST = 0x4 + NET_RT_OOIFLIST = 0x3 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFIOGETBMAP = 0xc004667a + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALT_IO = 0x40000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x80000 + O_DIRECTORY = 0x200000 + O_DSYNC = 0x10000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_NOSIGPIPE = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x20000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PRI_IOFLUSH = 0x7c + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_TAG = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_TAG = 0x100 + RTF_ANNOUNCE = 0x20000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x2000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SRC = 0x10000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0x15 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x11 + RTM_IFANNOUNCE = 0x10 + RTM_IFINFO = 0x14 + RTM_LLINFO_UPD = 0x13 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OIFINFO = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_OOIFINFO = 0xe + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_SETGATE = 0x12 + RTM_VERSION = 0x4 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x4 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x8 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80906931 + SIOCADDRT = 0x8030720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691c + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80906932 + SIOCDELRT = 0x8030720b + SIOCDIFADDR = 0x80906919 + SIOCDIFPHYADDR = 0x80906949 + SIOCDLIFADDR = 0x8118691e + SIOCGDRVSPEC = 0xc01c697b + SIOCGETPFSYNC = 0xc09069f8 + SIOCGETSGCNT = 0xc0147534 + SIOCGETVIFCNT = 0xc0147533 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0906921 + SIOCGIFADDRPREF = 0xc0946920 + SIOCGIFALIAS = 0xc040691b + SIOCGIFBRDADDR = 0xc0906923 + SIOCGIFCAP = 0xc0206976 + SIOCGIFCONF = 0xc0086926 + SIOCGIFDATA = 0xc0946985 + SIOCGIFDLT = 0xc0906977 + SIOCGIFDSTADDR = 0xc0906922 + SIOCGIFFLAGS = 0xc0906911 + SIOCGIFGENERIC = 0xc090693a + SIOCGIFMEDIA = 0xc0286936 + SIOCGIFMETRIC = 0xc0906917 + SIOCGIFMTU = 0xc090697e + SIOCGIFNETMASK = 0xc0906925 + SIOCGIFPDSTADDR = 0xc0906948 + SIOCGIFPSRCADDR = 0xc0906947 + SIOCGLIFADDR = 0xc118691d + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLINKSTR = 0xc01c6987 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGVH = 0xc0906983 + SIOCIFCREATE = 0x8090697a + SIOCIFDESTROY = 0x80906979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCINITIFADDR = 0xc0446984 + SIOCSDRVSPEC = 0x801c697b + SIOCSETPFSYNC = 0x809069f7 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8090690c + SIOCSIFADDRPREF = 0x8094691f + SIOCSIFBRDADDR = 0x80906913 + SIOCSIFCAP = 0x80206975 + SIOCSIFDSTADDR = 0x8090690e + SIOCSIFFLAGS = 0x80906910 + SIOCSIFGENERIC = 0x80906939 + SIOCSIFMEDIA = 0xc0906935 + SIOCSIFMETRIC = 0x80906918 + SIOCSIFMTU = 0x8090697f + SIOCSIFNETMASK = 0x80906916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLINKSTR = 0x801c6988 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSVH = 0xc0906982 + SIOCZIFDATA = 0xc0946986 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_FLAGS_MASK = 0xf0000000 + SOCK_NONBLOCK = 0x20000000 + SOCK_NOSIGPIPE = 0x40000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOHEADER = 0x100a + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_OVERFLOWED = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x100c + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x100b + SO_TIMESTAMP = 0x2000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SYSCTL_VERSION = 0x1000000 + SYSCTL_VERS_0 = 0x0 + SYSCTL_VERS_1 = 0x1000000 + SYSCTL_VERS_MASK = 0xff000000 + S_ARCH1 = 0x10000 + S_ARCH2 = 0x20000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + S_LOGIN_SET = 0x1 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONGCTL = 0x20 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x3 + TCP_KEEPINIT = 0x7 + TCP_KEEPINTVL = 0x5 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x400c7458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CDTRCTS = 0x10 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGLINED = 0x40207442 + TIOCGPGRP = 0x40047477 + TIOCGQSIZE = 0x40047481 + TIOCGRANTPT = 0x20007447 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMGET = 0x40287446 + TIOCPTSNAME = 0x40287448 + TIOCRCVFRAME = 0x80047445 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x2000745f + TIOCSLINED = 0x80207443 + TIOCSPGRP = 0x80047476 + TIOCSQSIZE = 0x80047480 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCXMTFRAME = 0x80047444 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALL = 0x8 + WALLSIG = 0x8 + WALTSIG = 0x4 + WCLONE = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x20 + WNOHANG = 0x1 + WNOWAIT = 0x10000 + WNOZOMBIE = 0x20000 + WOPTSCHECKED = 0x40000 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EAUTH = Errno(0x50) + EBADF = Errno(0x9) + EBADMSG = Errno(0x58) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x57) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDOM = Errno(0x21) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x52) + EILSEQ = Errno(0x55) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x60) + ELOOP = Errno(0x3e) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + EMULTIHOP = Errno(0x5e) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x5d) + ENOBUFS = Errno(0x37) + ENODATA = Errno(0x59) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOLINK = Errno(0x5f) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x53) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x5a) + ENOSTR = Errno(0x5b) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x56) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x2d) + EOVERFLOW = Errno(0x54) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTO = Errno(0x60) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIME = Errno(0x5c) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGPWR = Signal(0x20) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_netbsd_amd64.go b/runtime/internal/clite/syscall/zerrors_netbsd_amd64.go new file mode 100644 index 00000000..86c70c17 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_netbsd_amd64.go @@ -0,0 +1,1565 @@ +// mkerrors.sh -m64 +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m64 _const.go + +//go:build amd64 && netbsd + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x1c + AF_BLUETOOTH = 0x1f + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x20 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x23 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OROUTE = 0x11 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x22 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ARCNET = 0x7 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_STRIP = 0x17 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104277 + BIOCGETIF = 0x4090426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x4010427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044276 + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8090426c + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRTIMEOUT = 0x8010427a + BIOCSSEESENT = 0x80044279 + BIOCSTCPF = 0x80104272 + BIOCSUDPF = 0x80104273 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALIGNMENT32 = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x1000000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLONE_CSIGNAL = 0xff + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_PID = 0x1000 + CLONE_PTRACE = 0x2000 + CLONE_SIGHAND = 0x800 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + CTL_QUERY = -0x2 + DIOCBSFLUSH = 0x20006478 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMUL_LINUX = 0x1 + EMUL_LINUX32 = 0x5 + EMUL_MAXID = 0x6 + ETHERCAP_JUMBO_MTU = 0x4 + ETHERCAP_VLAN_HWTAGGING = 0x2 + ETHERCAP_VLAN_MTU = 0x1 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERMTU_JUMBO = 0x2328 + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOWPROTOCOLS = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_LEN = 0x5ee + ETHER_MAX_LEN_JUMBO = 0x233a + ETHER_MIN_LEN = 0x40 + ETHER_PPPOE_ENCAP_LEN = 0x8 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = 0x2 + EVFILT_PROC = 0x4 + EVFILT_READ = 0x0 + EVFILT_SIGNAL = 0x5 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = 0x6 + EVFILT_VNODE = 0x3 + EVFILT_WRITE = 0x1 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x100 + FLUSHO = 0x800000 + F_CLOSEM = 0xa + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xc + F_FSCTL = -0x80000000 + F_FSDIRMASK = 0x70000000 + F_FSIN = 0x10000000 + F_FSINOUT = 0x30000000 + F_FSOUT = 0x20000000 + F_FSPRIV = 0x8000 + F_FSVOID = 0x40000000 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETNOSIGPIPE = 0xd + F_GETOWN = 0x5 + F_MAXFD = 0xb + F_OK = 0x0 + F_PARAM_MASK = 0xfff + F_PARAM_MAX = 0xfff + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8f52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IPV6_ICMP = 0x3a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MOBILE = 0x37 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_VRRP = 0x70 + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_EF = 0x8000 + IP_ERRORMTU = 0x15 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x16 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINFRAGSIZE = 0x45 + IP_MINTTL = 0x18 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x17 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ALIGNMENT_16MB = 0x18000000 + MAP_ALIGNMENT_1TB = 0x28000000 + MAP_ALIGNMENT_256TB = 0x30000000 + MAP_ALIGNMENT_4GB = 0x20000000 + MAP_ALIGNMENT_64KB = 0x10000000 + MAP_ALIGNMENT_64PB = 0x38000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DEFAULT = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x2000 + MAP_TRYFIXED = 0x400 + MAP_WIRED = 0x800 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CONTROLMBUF = 0x2000000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_IOVUSRSPACE = 0x4000000 + MSG_LENUSRSPACE = 0x8000000 + MSG_MCAST = 0x200 + MSG_NAMEMBUF = 0x1000000 + MSG_NBIO = 0x1000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_USERFLAGS = 0xffffff + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x4 + NAME_MAX = 0x1ff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x5 + NET_RT_MAXID = 0x6 + NET_RT_OIFLIST = 0x4 + NET_RT_OOIFLIST = 0x3 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFIOGETBMAP = 0xc004667a + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALT_IO = 0x40000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x80000 + O_DIRECTORY = 0x200000 + O_DSYNC = 0x10000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_NOSIGPIPE = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x20000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PRI_IOFLUSH = 0x7c + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_TAG = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_TAG = 0x100 + RTF_ANNOUNCE = 0x20000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x2000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SRC = 0x10000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0x15 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x11 + RTM_IFANNOUNCE = 0x10 + RTM_IFINFO = 0x14 + RTM_LLINFO_UPD = 0x13 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OIFINFO = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_OOIFINFO = 0xe + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_SETGATE = 0x12 + RTM_VERSION = 0x4 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x4 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x8 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80906931 + SIOCADDRT = 0x8038720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691c + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80906932 + SIOCDELRT = 0x8038720b + SIOCDIFADDR = 0x80906919 + SIOCDIFPHYADDR = 0x80906949 + SIOCDLIFADDR = 0x8118691e + SIOCGDRVSPEC = 0xc028697b + SIOCGETPFSYNC = 0xc09069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0906921 + SIOCGIFADDRPREF = 0xc0986920 + SIOCGIFALIAS = 0xc040691b + SIOCGIFBRDADDR = 0xc0906923 + SIOCGIFCAP = 0xc0206976 + SIOCGIFCONF = 0xc0106926 + SIOCGIFDATA = 0xc0986985 + SIOCGIFDLT = 0xc0906977 + SIOCGIFDSTADDR = 0xc0906922 + SIOCGIFFLAGS = 0xc0906911 + SIOCGIFGENERIC = 0xc090693a + SIOCGIFMEDIA = 0xc0306936 + SIOCGIFMETRIC = 0xc0906917 + SIOCGIFMTU = 0xc090697e + SIOCGIFNETMASK = 0xc0906925 + SIOCGIFPDSTADDR = 0xc0906948 + SIOCGIFPSRCADDR = 0xc0906947 + SIOCGLIFADDR = 0xc118691d + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLINKSTR = 0xc0286987 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGVH = 0xc0906983 + SIOCIFCREATE = 0x8090697a + SIOCIFDESTROY = 0x80906979 + SIOCIFGCLONERS = 0xc0106978 + SIOCINITIFADDR = 0xc0706984 + SIOCSDRVSPEC = 0x8028697b + SIOCSETPFSYNC = 0x809069f7 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8090690c + SIOCSIFADDRPREF = 0x8098691f + SIOCSIFBRDADDR = 0x80906913 + SIOCSIFCAP = 0x80206975 + SIOCSIFDSTADDR = 0x8090690e + SIOCSIFFLAGS = 0x80906910 + SIOCSIFGENERIC = 0x80906939 + SIOCSIFMEDIA = 0xc0906935 + SIOCSIFMETRIC = 0x80906918 + SIOCSIFMTU = 0x8090697f + SIOCSIFNETMASK = 0x80906916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLINKSTR = 0x80286988 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSVH = 0xc0906982 + SIOCZIFDATA = 0xc0986986 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_FLAGS_MASK = 0xf0000000 + SOCK_NONBLOCK = 0x20000000 + SOCK_NOSIGPIPE = 0x40000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOHEADER = 0x100a + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_OVERFLOWED = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x100c + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x100b + SO_TIMESTAMP = 0x2000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SYSCTL_VERSION = 0x1000000 + SYSCTL_VERS_0 = 0x0 + SYSCTL_VERS_1 = 0x1000000 + SYSCTL_VERS_MASK = 0xff000000 + S_ARCH1 = 0x10000 + S_ARCH2 = 0x20000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + S_LOGIN_SET = 0x1 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONGCTL = 0x20 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x3 + TCP_KEEPINIT = 0x7 + TCP_KEEPINTVL = 0x5 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CDTRCTS = 0x10 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGLINED = 0x40207442 + TIOCGPGRP = 0x40047477 + TIOCGQSIZE = 0x40047481 + TIOCGRANTPT = 0x20007447 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMGET = 0x40287446 + TIOCPTSNAME = 0x40287448 + TIOCRCVFRAME = 0x80087445 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x2000745f + TIOCSLINED = 0x80207443 + TIOCSPGRP = 0x80047476 + TIOCSQSIZE = 0x80047480 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCXMTFRAME = 0x80087444 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALL = 0x8 + WALLSIG = 0x8 + WALTSIG = 0x4 + WCLONE = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x20 + WNOHANG = 0x1 + WNOWAIT = 0x10000 + WNOZOMBIE = 0x20000 + WOPTSCHECKED = 0x40000 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EAUTH = Errno(0x50) + EBADF = Errno(0x9) + EBADMSG = Errno(0x58) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x57) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDOM = Errno(0x21) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x52) + EILSEQ = Errno(0x55) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x60) + ELOOP = Errno(0x3e) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + EMULTIHOP = Errno(0x5e) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x5d) + ENOBUFS = Errno(0x37) + ENODATA = Errno(0x59) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOLINK = Errno(0x5f) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x53) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x5a) + ENOSTR = Errno(0x5b) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x56) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x2d) + EOVERFLOW = Errno(0x54) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTO = Errno(0x60) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIME = Errno(0x5c) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGPWR = Signal(0x20) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_netbsd_arm.go b/runtime/internal/clite/syscall/zerrors_netbsd_arm.go new file mode 100644 index 00000000..b50b54a0 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_netbsd_arm.go @@ -0,0 +1,1551 @@ +// mkerrors.sh -marm +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -marm _const.go + +//go:build arm && netbsd + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x1c + AF_BLUETOOTH = 0x1f + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x20 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x23 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OROUTE = 0x11 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x22 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ARCNET = 0x7 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_STRIP = 0x17 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0084277 + BIOCGETIF = 0x4090426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x400c427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044276 + BIOCSETF = 0x80084267 + BIOCSETIF = 0x8090426c + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRTIMEOUT = 0x800c427a + BIOCSSEESENT = 0x80044279 + BIOCSTCPF = 0x80084272 + BIOCSUDPF = 0x80084273 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALIGNMENT32 = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x1000000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + CTL_QUERY = -0x2 + DIOCBSFLUSH = 0x20006478 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMUL_LINUX = 0x1 + EMUL_LINUX32 = 0x5 + EMUL_MAXID = 0x6 + ETHERCAP_JUMBO_MTU = 0x4 + ETHERCAP_VLAN_HWTAGGING = 0x2 + ETHERCAP_VLAN_MTU = 0x1 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERMTU_JUMBO = 0x2328 + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOWPROTOCOLS = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_LEN = 0x5ee + ETHER_MAX_LEN_JUMBO = 0x233a + ETHER_MIN_LEN = 0x40 + ETHER_PPPOE_ENCAP_LEN = 0x8 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = 0x2 + EVFILT_PROC = 0x4 + EVFILT_READ = 0x0 + EVFILT_SIGNAL = 0x5 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = 0x6 + EVFILT_VNODE = 0x3 + EVFILT_WRITE = 0x1 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x100 + FLUSHO = 0x800000 + F_CLOSEM = 0xa + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xc + F_FSCTL = -0x80000000 + F_FSDIRMASK = 0x70000000 + F_FSIN = 0x10000000 + F_FSINOUT = 0x30000000 + F_FSOUT = 0x20000000 + F_FSPRIV = 0x8000 + F_FSVOID = 0x40000000 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETNOSIGPIPE = 0xd + F_GETOWN = 0x5 + F_MAXFD = 0xb + F_OK = 0x0 + F_PARAM_MASK = 0xfff + F_PARAM_MAX = 0xfff + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8f52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IPV6_ICMP = 0x3a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MOBILE = 0x37 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_VRRP = 0x70 + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_EF = 0x8000 + IP_ERRORMTU = 0x15 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x16 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINFRAGSIZE = 0x45 + IP_MINTTL = 0x18 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x17 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ALIGNMENT_16MB = 0x18000000 + MAP_ALIGNMENT_1TB = 0x28000000 + MAP_ALIGNMENT_256TB = 0x30000000 + MAP_ALIGNMENT_4GB = 0x20000000 + MAP_ALIGNMENT_64KB = 0x10000000 + MAP_ALIGNMENT_64PB = 0x38000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DEFAULT = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x2000 + MAP_TRYFIXED = 0x400 + MAP_WIRED = 0x800 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CONTROLMBUF = 0x2000000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_IOVUSRSPACE = 0x4000000 + MSG_LENUSRSPACE = 0x8000000 + MSG_MCAST = 0x200 + MSG_NAMEMBUF = 0x1000000 + MSG_NBIO = 0x1000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_USERFLAGS = 0xffffff + MSG_WAITALL = 0x40 + NAME_MAX = 0x1ff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x5 + NET_RT_MAXID = 0x6 + NET_RT_OIFLIST = 0x4 + NET_RT_OOIFLIST = 0x3 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFIOGETBMAP = 0xc004667a + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALT_IO = 0x40000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x80000 + O_DIRECTORY = 0x200000 + O_DSYNC = 0x10000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_NOSIGPIPE = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x20000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PRI_IOFLUSH = 0x7c + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_TAG = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_TAG = 0x100 + RTF_ANNOUNCE = 0x20000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x2000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SRC = 0x10000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0x15 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x11 + RTM_IFANNOUNCE = 0x10 + RTM_IFINFO = 0x14 + RTM_LLINFO_UPD = 0x13 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OIFINFO = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_OOIFINFO = 0xe + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_SETGATE = 0x12 + RTM_VERSION = 0x4 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x4 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x8 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80906931 + SIOCADDRT = 0x8030720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691c + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80906932 + SIOCDELRT = 0x8030720b + SIOCDIFADDR = 0x80906919 + SIOCDIFPHYADDR = 0x80906949 + SIOCDLIFADDR = 0x8118691e + SIOCGDRVSPEC = 0xc01c697b + SIOCGETPFSYNC = 0xc09069f8 + SIOCGETSGCNT = 0xc0147534 + SIOCGETVIFCNT = 0xc0147533 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0906921 + SIOCGIFADDRPREF = 0xc0946920 + SIOCGIFALIAS = 0xc040691b + SIOCGIFBRDADDR = 0xc0906923 + SIOCGIFCAP = 0xc0206976 + SIOCGIFCONF = 0xc0086926 + SIOCGIFDATA = 0xc0946985 + SIOCGIFDLT = 0xc0906977 + SIOCGIFDSTADDR = 0xc0906922 + SIOCGIFFLAGS = 0xc0906911 + SIOCGIFGENERIC = 0xc090693a + SIOCGIFMEDIA = 0xc0286936 + SIOCGIFMETRIC = 0xc0906917 + SIOCGIFMTU = 0xc090697e + SIOCGIFNETMASK = 0xc0906925 + SIOCGIFPDSTADDR = 0xc0906948 + SIOCGIFPSRCADDR = 0xc0906947 + SIOCGLIFADDR = 0xc118691d + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLINKSTR = 0xc01c6987 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGVH = 0xc0906983 + SIOCIFCREATE = 0x8090697a + SIOCIFDESTROY = 0x80906979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCINITIFADDR = 0xc0446984 + SIOCSDRVSPEC = 0x801c697b + SIOCSETPFSYNC = 0x809069f7 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8090690c + SIOCSIFADDRPREF = 0x8094691f + SIOCSIFBRDADDR = 0x80906913 + SIOCSIFCAP = 0x80206975 + SIOCSIFDSTADDR = 0x8090690e + SIOCSIFFLAGS = 0x80906910 + SIOCSIFGENERIC = 0x80906939 + SIOCSIFMEDIA = 0xc0906935 + SIOCSIFMETRIC = 0x80906918 + SIOCSIFMTU = 0x8090697f + SIOCSIFNETMASK = 0x80906916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLINKSTR = 0x801c6988 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSVH = 0xc0906982 + SIOCZIFDATA = 0xc0946986 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_FLAGS_MASK = 0xf0000000 + SOCK_NONBLOCK = 0x20000000 + SOCK_NOSIGPIPE = 0x40000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOHEADER = 0x100a + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_OVERFLOWED = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x100c + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x100b + SO_TIMESTAMP = 0x2000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SYSCTL_VERSION = 0x1000000 + SYSCTL_VERS_0 = 0x0 + SYSCTL_VERS_1 = 0x1000000 + SYSCTL_VERS_MASK = 0xff000000 + S_ARCH1 = 0x10000 + S_ARCH2 = 0x20000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONGCTL = 0x20 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x3 + TCP_KEEPINIT = 0x7 + TCP_KEEPINTVL = 0x5 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x400c7458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CDTRCTS = 0x10 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGLINED = 0x40207442 + TIOCGPGRP = 0x40047477 + TIOCGQSIZE = 0x40047481 + TIOCGRANTPT = 0x20007447 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMGET = 0x48087446 + TIOCPTSNAME = 0x48087448 + TIOCRCVFRAME = 0x80047445 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x2000745f + TIOCSLINED = 0x80207443 + TIOCSPGRP = 0x80047476 + TIOCSQSIZE = 0x80047480 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCXMTFRAME = 0x80047444 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALL = 0x8 + WALLSIG = 0x8 + WALTSIG = 0x4 + WCLONE = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x20 + WNOHANG = 0x1 + WNOWAIT = 0x10000 + WNOZOMBIE = 0x20000 + WOPTSCHECKED = 0x40000 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EAUTH = Errno(0x50) + EBADF = Errno(0x9) + EBADMSG = Errno(0x58) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x57) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDOM = Errno(0x21) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x52) + EILSEQ = Errno(0x55) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x60) + ELOOP = Errno(0x3e) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + EMULTIHOP = Errno(0x5e) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x5d) + ENOBUFS = Errno(0x37) + ENODATA = Errno(0x59) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOLINK = Errno(0x5f) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x53) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x5a) + ENOSTR = Errno(0x5b) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x56) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x2d) + EOVERFLOW = Errno(0x54) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTO = Errno(0x60) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIME = Errno(0x5c) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGPWR = Signal(0x20) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_netbsd_arm64.go b/runtime/internal/clite/syscall/zerrors_netbsd_arm64.go new file mode 100644 index 00000000..82695d63 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_netbsd_arm64.go @@ -0,0 +1,1565 @@ +// mkerrors.sh -m64 +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m64 _const.go + +//go:build arm64 && netbsd + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_ARP = 0x1c + AF_BLUETOOTH = 0x1f + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_HYLINK = 0xf + AF_IEEE80211 = 0x20 + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x23 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OROUTE = 0x11 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x22 + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ARCNET = 0x7 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + ARPHRD_STRIP = 0x17 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B460800 = 0x70800 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B921600 = 0xe1000 + B9600 = 0x2580 + BIOCFEEDBACK = 0x8004427d + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc0104277 + BIOCGETIF = 0x4090426b + BIOCGFEEDBACK = 0x4004427c + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x4010427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDLT = 0x80044276 + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8090426c + BIOCSFEEDBACK = 0x8004427d + BIOCSHDRCMPLT = 0x80044275 + BIOCSRTIMEOUT = 0x8010427a + BIOCSSEESENT = 0x80044279 + BIOCSTCPF = 0x80104272 + BIOCSUDPF = 0x80104273 + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x8 + BPF_ALIGNMENT32 = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x1000000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CLONE_CSIGNAL = 0xff + CLONE_FILES = 0x400 + CLONE_FS = 0x200 + CLONE_PID = 0x1000 + CLONE_PTRACE = 0x2000 + CLONE_SIGHAND = 0x800 + CLONE_VFORK = 0x4000 + CLONE_VM = 0x100 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0x14 + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + CTL_QUERY = -0x2 + DIOCBSFLUSH = 0x20006478 + DLT_A429 = 0xb8 + DLT_A653_ICM = 0xb9 + DLT_AIRONET_HEADER = 0x78 + DLT_AOS = 0xde + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_AX25_KISS = 0xca + DLT_BACNET_MS_TP = 0xa5 + DLT_BLUETOOTH_HCI_H4 = 0xbb + DLT_BLUETOOTH_HCI_H4_WITH_PHDR = 0xc9 + DLT_CAN20B = 0xbe + DLT_CAN_SOCKETCAN = 0xe3 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_C_HDLC_WITH_DIR = 0xcd + DLT_DECT = 0xdd + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF = 0xc5 + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FC_2 = 0xe0 + DLT_FC_2_WITH_FRAME_DELIMS = 0xe1 + DLT_FDDI = 0xa + DLT_FLEXRAY = 0xd2 + DLT_FRELAY = 0x6b + DLT_FRELAY_WITH_DIR = 0xce + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_GSMTAP_ABIS = 0xda + DLT_GSMTAP_UM = 0xd9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IEEE802_15_4 = 0xc3 + DLT_IEEE802_15_4_LINUX = 0xbf + DLT_IEEE802_15_4_NONASK_PHY = 0xd7 + DLT_IEEE802_16_MAC_CPS = 0xbc + DLT_IEEE802_16_MAC_CPS_RADIO = 0xc1 + DLT_IPMB = 0xc7 + DLT_IPMB_LINUX = 0xd1 + DLT_IPNET = 0xe2 + DLT_IPV4 = 0xe4 + DLT_IPV6 = 0xe5 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_ISM = 0xc2 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_JUNIPER_ST = 0xc8 + DLT_JUNIPER_VP = 0xb7 + DLT_LAPB_WITH_DIR = 0xcf + DLT_LAPD = 0xcb + DLT_LIN = 0xd4 + DLT_LINUX_EVDEV = 0xd8 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MFR = 0xb6 + DLT_MOST = 0xd3 + DLT_MPLS = 0xdb + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPI = 0xc0 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_ETHER = 0x33 + DLT_PPP_PPPD = 0xa6 + DLT_PPP_SERIAL = 0x32 + DLT_PPP_WITH_DIR = 0xcc + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAIF1 = 0xc6 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SITA = 0xc4 + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + DLT_USB = 0xba + DLT_USB_LINUX = 0xbd + DLT_USB_LINUX_MMAPPED = 0xdc + DLT_WIHART = 0xdf + DLT_X2E_SERIAL = 0xd5 + DLT_X2E_XORAYA = 0xd6 + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + DT_WHT = 0xe + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMUL_LINUX = 0x1 + EMUL_LINUX32 = 0x5 + EMUL_MAXID = 0x6 + ETHERCAP_JUMBO_MTU = 0x4 + ETHERCAP_VLAN_HWTAGGING = 0x2 + ETHERCAP_VLAN_MTU = 0x1 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERMTU_JUMBO = 0x2328 + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOWPROTOCOLS = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_LEN = 0x5ee + ETHER_MAX_LEN_JUMBO = 0x233a + ETHER_MIN_LEN = 0x40 + ETHER_PPPOE_ENCAP_LEN = 0x8 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = 0x2 + EVFILT_PROC = 0x4 + EVFILT_READ = 0x0 + EVFILT_SIGNAL = 0x5 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = 0x6 + EVFILT_VNODE = 0x3 + EVFILT_WRITE = 0x1 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x100 + FLUSHO = 0x800000 + F_CLOSEM = 0xa + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xc + F_FSCTL = -0x80000000 + F_FSDIRMASK = 0x70000000 + F_FSIN = 0x10000000 + F_FSINOUT = 0x30000000 + F_FSOUT = 0x20000000 + F_FSPRIV = 0x8000 + F_FSVOID = 0x40000000 + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETNOSIGPIPE = 0xd + F_GETOWN = 0x5 + F_MAXFD = 0xb + F_OK = 0x0 + F_PARAM_MASK = 0xfff + F_PARAM_MAX = 0xfff + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETNOSIGPIPE = 0xe + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8f52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf8 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf2 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf1 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_STF = 0xd7 + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_IPV6_ICMP = 0x3a + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x34 + IPPROTO_MOBILE = 0x37 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_VRRP = 0x70 + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPSEC_POLICY = 0x1c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_PATHMTU = 0x2c + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_EF = 0x8000 + IP_ERRORMTU = 0x15 + IP_HDRINCL = 0x2 + IP_IPSEC_POLICY = 0x16 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0x14 + IP_MF = 0x2000 + IP_MINFRAGSIZE = 0x45 + IP_MINTTL = 0x18 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x14 + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVTTL = 0x17 + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ALIGNMENT_16MB = 0x18000000 + MAP_ALIGNMENT_1TB = 0x28000000 + MAP_ALIGNMENT_256TB = 0x30000000 + MAP_ALIGNMENT_4GB = 0x20000000 + MAP_ALIGNMENT_64KB = 0x10000000 + MAP_ALIGNMENT_64PB = 0x38000000 + MAP_ALIGNMENT_MASK = -0x1000000 + MAP_ALIGNMENT_SHIFT = 0x18 + MAP_ANON = 0x1000 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DEFAULT = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_STACK = 0x2000 + MAP_TRYFIXED = 0x400 + MAP_WIRED = 0x800 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CONTROLMBUF = 0x2000000 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_IOVUSRSPACE = 0x4000000 + MSG_LENUSRSPACE = 0x8000000 + MSG_MCAST = 0x200 + MSG_NAMEMBUF = 0x1000000 + MSG_NBIO = 0x1000 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_USERFLAGS = 0xffffff + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_SYNC = 0x4 + NAME_MAX = 0x1ff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x5 + NET_RT_MAXID = 0x6 + NET_RT_OIFLIST = 0x4 + NET_RT_OOIFLIST = 0x3 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + OFIOGETBMAP = 0xc004667a + ONLCR = 0x2 + ONLRET = 0x40 + ONOCR = 0x20 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_ALT_IO = 0x40000 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x400000 + O_CREAT = 0x200 + O_DIRECT = 0x80000 + O_DIRECTORY = 0x200000 + O_DSYNC = 0x10000 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_NOSIGPIPE = 0x1000000 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x20000 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PRI_IOFLUSH = 0x7c + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0xa + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_TAG = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_TAG = 0x100 + RTF_ANNOUNCE = 0x20000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x2000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SRC = 0x10000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0x15 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_GET = 0x4 + RTM_IEEE80211 = 0x11 + RTM_IFANNOUNCE = 0x10 + RTM_IFINFO = 0x14 + RTM_LLINFO_UPD = 0x13 + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OIFINFO = 0xf + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_OOIFINFO = 0xe + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_SETGATE = 0x12 + RTM_VERSION = 0x4 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_CREDS = 0x4 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x8 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80906931 + SIOCADDRT = 0x8038720a + SIOCAIFADDR = 0x8040691a + SIOCALIFADDR = 0x8118691c + SIOCATMARK = 0x40047307 + SIOCDELMULTI = 0x80906932 + SIOCDELRT = 0x8038720b + SIOCDIFADDR = 0x80906919 + SIOCDIFPHYADDR = 0x80906949 + SIOCDLIFADDR = 0x8118691e + SIOCGDRVSPEC = 0xc028697b + SIOCGETPFSYNC = 0xc09069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0906921 + SIOCGIFADDRPREF = 0xc0986920 + SIOCGIFALIAS = 0xc040691b + SIOCGIFBRDADDR = 0xc0906923 + SIOCGIFCAP = 0xc0206976 + SIOCGIFCONF = 0xc0106926 + SIOCGIFDATA = 0xc0986985 + SIOCGIFDLT = 0xc0906977 + SIOCGIFDSTADDR = 0xc0906922 + SIOCGIFFLAGS = 0xc0906911 + SIOCGIFGENERIC = 0xc090693a + SIOCGIFMEDIA = 0xc0306936 + SIOCGIFMETRIC = 0xc0906917 + SIOCGIFMTU = 0xc090697e + SIOCGIFNETMASK = 0xc0906925 + SIOCGIFPDSTADDR = 0xc0906948 + SIOCGIFPSRCADDR = 0xc0906947 + SIOCGLIFADDR = 0xc118691d + SIOCGLIFPHYADDR = 0xc118694b + SIOCGLINKSTR = 0xc0286987 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGVH = 0xc0906983 + SIOCIFCREATE = 0x8090697a + SIOCIFDESTROY = 0x80906979 + SIOCIFGCLONERS = 0xc0106978 + SIOCINITIFADDR = 0xc0706984 + SIOCSDRVSPEC = 0x8028697b + SIOCSETPFSYNC = 0x809069f7 + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8090690c + SIOCSIFADDRPREF = 0x8098691f + SIOCSIFBRDADDR = 0x80906913 + SIOCSIFCAP = 0x80206975 + SIOCSIFDSTADDR = 0x8090690e + SIOCSIFFLAGS = 0x80906910 + SIOCSIFGENERIC = 0x80906939 + SIOCSIFMEDIA = 0xc0906935 + SIOCSIFMETRIC = 0x80906918 + SIOCSIFMTU = 0x8090697f + SIOCSIFNETMASK = 0x80906916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSLIFPHYADDR = 0x8118694a + SIOCSLINKSTR = 0x80286988 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSVH = 0xc0906982 + SIOCZIFDATA = 0xc0986986 + SOCK_CLOEXEC = 0x10000000 + SOCK_DGRAM = 0x2 + SOCK_FLAGS_MASK = 0xf0000000 + SOCK_NONBLOCK = 0x20000000 + SOCK_NOSIGPIPE = 0x40000000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ACCEPTFILTER = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NOHEADER = 0x100a + SO_NOSIGPIPE = 0x800 + SO_OOBINLINE = 0x100 + SO_OVERFLOWED = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x100c + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x100b + SO_TIMESTAMP = 0x2000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SYSCTL_VERSION = 0x1000000 + SYSCTL_VERS_0 = 0x0 + SYSCTL_VERS_1 = 0x1000000 + SYSCTL_VERS_MASK = 0xff000000 + S_ARCH1 = 0x10000 + S_ARCH2 = 0x20000 + S_BLKSIZE = 0x200 + S_IEXEC = 0x40 + S_IFBLK = 0x6000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFIFO = 0x1000 + S_IFLNK = 0xa000 + S_IFMT = 0xf000 + S_IFREG = 0x8000 + S_IFSOCK = 0xc000 + S_IFWHT = 0xe000 + S_IREAD = 0x100 + S_IRGRP = 0x20 + S_IROTH = 0x4 + S_IRUSR = 0x100 + S_IRWXG = 0x38 + S_IRWXO = 0x7 + S_IRWXU = 0x1c0 + S_ISGID = 0x400 + S_ISTXT = 0x200 + S_ISUID = 0x800 + S_ISVTX = 0x200 + S_IWGRP = 0x10 + S_IWOTH = 0x2 + S_IWRITE = 0x80 + S_IWUSR = 0x80 + S_IXGRP = 0x8 + S_IXOTH = 0x1 + S_IXUSR = 0x40 + S_LOGIN_SET = 0x1 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_CONGCTL = 0x20 + TCP_KEEPCNT = 0x6 + TCP_KEEPIDLE = 0x3 + TCP_KEEPINIT = 0x7 + TCP_KEEPINTVL = 0x5 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x10 + TCP_MINMSS = 0xd8 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDCDTIMESTAMP = 0x40107458 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CDTRCTS = 0x10 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGLINED = 0x40207442 + TIOCGPGRP = 0x40047477 + TIOCGQSIZE = 0x40047481 + TIOCGRANTPT = 0x20007447 + TIOCGSID = 0x40047463 + TIOCGSIZE = 0x40087468 + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCPTMGET = 0x40287446 + TIOCPTSNAME = 0x40287448 + TIOCRCVFRAME = 0x80087445 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x2000745f + TIOCSLINED = 0x80207443 + TIOCSPGRP = 0x80047476 + TIOCSQSIZE = 0x80047480 + TIOCSSIZE = 0x80087467 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCXMTFRAME = 0x80087444 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALL = 0x8 + WALLSIG = 0x8 + WALTSIG = 0x4 + WCLONE = 0x4 + WCOREFLAG = 0x80 + WEXITED = 0x20 + WNOHANG = 0x1 + WNOWAIT = 0x10000 + WNOZOMBIE = 0x20000 + WOPTSCHECKED = 0x40000 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EAUTH = Errno(0x50) + EBADF = Errno(0x9) + EBADMSG = Errno(0x58) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x57) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDOM = Errno(0x21) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x52) + EILSEQ = Errno(0x55) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x60) + ELOOP = Errno(0x3e) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + EMULTIHOP = Errno(0x5e) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x5d) + ENOBUFS = Errno(0x37) + ENODATA = Errno(0x59) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOLINK = Errno(0x5f) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x53) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x5a) + ENOSTR = Errno(0x5b) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x56) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x2d) + EOVERFLOW = Errno(0x54) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTO = Errno(0x60) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIME = Errno(0x5c) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGPWR = Signal(0x20) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_openbsd_386.go b/runtime/internal/clite/syscall/zerrors_openbsd_386.go new file mode 100644 index 00000000..bdf23738 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_openbsd_386.go @@ -0,0 +1,1454 @@ +// mkerrors.sh -m32 +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m32 _const.go + +//go:build 386 && openbsd + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc008427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x400c426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80084267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80084277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x800c426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCOSFPFLUSH = 0x2000444e + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DIVERT_INIT = 0x2 + IPPROTO_DIVERT_RESP = 0x1 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DIVERTFL = 0x1022 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_COPY = 0x4 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0x1ff7 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_TRYFIXED = 0x400 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_MAXID = 0x6 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + PT_MASK = 0x3ff000 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xb + RTAX_NETMASK = 0x2 + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTF_ANNOUNCE = 0x4000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x10f808 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_SOURCE = 0x20000 + RTF_STATIC = 0x800 + RTF_TUNNEL = 0x100000 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80246987 + SIOCALIFADDR = 0x8218691c + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8054693c + SIOCBRDGADDS = 0x80546941 + SIOCBRDGARL = 0x806e694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8054693d + SIOCBRDGDELS = 0x80546942 + SIOCBRDGFLUSH = 0x80546948 + SIOCBRDGFRL = 0x806e694e + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc054693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc03c6958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc028694f + SIOCBRDGGSIFS = 0xc054693c + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0546942 + SIOCBRDGRTS = 0xc0186943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80546955 + SIOCBRDGSIFFLGS = 0x8054693f + SIOCBRDGSIFPRIO = 0x80546954 + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80246989 + SIOCDIFPHYADDR = 0x80206949 + SIOCDLIFADDR = 0x8218691e + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0147534 + SIOCGETVIFCNT = 0xc0147533 + SIOCGETVLAN = 0xc0206990 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFASYNCMAP = 0xc020697c + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0086924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc024698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc024698a + SIOCGIFGROUP = 0xc0246988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFMEDIA = 0xc0286936 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFTIMESLOT = 0xc0206986 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFADDR = 0xc218691d + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGVH = 0xc02069f6 + SIOCGVNETID = 0xc02069a7 + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFASYNCMAP = 0x8020697d + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8024698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFMEDIA = 0xc0206935 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFTIMESLOT = 0x80206985 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSSPPPPARAMS = 0x80206993 + SIOCSVH = 0xc02069f5 + SIOCSVNETID = 0x802069a6 + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_NSTATES = 0xb + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x400c745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EAUTH = Errno(0x50) + EBADF = Errno(0x9) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x58) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDOM = Errno(0x21) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x59) + EILSEQ = Errno(0x54) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EIPSEC = Errno(0x52) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x5b) + ELOOP = Errno(0x3e) + EMEDIUMTYPE = Errno(0x56) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x53) + ENOBUFS = Errno(0x37) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOMEDIUM = Errno(0x55) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x5a) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x5b) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x2d) + EOVERFLOW = Errno(0x57) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTHR = Signal(0x20) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_openbsd_amd64.go b/runtime/internal/clite/syscall/zerrors_openbsd_amd64.go new file mode 100644 index 00000000..d2ad3424 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_openbsd_amd64.go @@ -0,0 +1,1453 @@ +// mkerrors.sh -m64 +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m64 _const.go + +//go:build amd64 && openbsd + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc010427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80104277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x8010426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCOSFPFLUSH = 0x2000444e + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_OK = 0x0 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DIVERT_INIT = 0x2 + IPPROTO_DIVERT_RESP = 0x1 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DIVERTFL = 0x1022 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_COPY = 0x4 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0x1ff7 + MAP_HASSEMAPHORE = 0x200 + MAP_INHERIT = 0x80 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_DONATE_COPY = 0x3 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_NOEXTEND = 0x100 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_TRYFIXED = 0x400 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_MAXID = 0x6 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xb + RTAX_NETMASK = 0x2 + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTF_ANNOUNCE = 0x4000 + RTF_BLACKHOLE = 0x1000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x10f808 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_SOURCE = 0x20000 + RTF_STATIC = 0x800 + RTF_TUNNEL = 0x100000 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCALIFADDR = 0x8218691c + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8058693c + SIOCBRDGADDS = 0x80586941 + SIOCBRDGARL = 0x806e694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8058693d + SIOCBRDGDELS = 0x80586942 + SIOCBRDGFLUSH = 0x80586948 + SIOCBRDGFRL = 0x806e694e + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc058693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGSIFS = 0xc058693c + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0586942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80586955 + SIOCBRDGSIFFLGS = 0x8058693f + SIOCBRDGSIFPRIO = 0x80586954 + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPHYADDR = 0x80206949 + SIOCDLIFADDR = 0x8218691e + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGETVLAN = 0xc0206990 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFASYNCMAP = 0xc020697c + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc028698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFMEDIA = 0xc0306936 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFTIMESLOT = 0xc0206986 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFADDR = 0xc218691d + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGVH = 0xc02069f6 + SIOCGVNETID = 0xc02069a7 + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFASYNCMAP = 0x8020697d + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8028698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFMEDIA = 0xc0206935 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFTIMESLOT = 0x80206985 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSSPPPPARAMS = 0x80206993 + SIOCSVH = 0xc02069f5 + SIOCSVNETID = 0x802069a6 + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_NSTATES = 0xb + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x4010745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WSTOPPED = 0x7f + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EAUTH = Errno(0x50) + EBADF = Errno(0x9) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x58) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDOM = Errno(0x21) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x59) + EILSEQ = Errno(0x54) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EIPSEC = Errno(0x52) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x5b) + ELOOP = Errno(0x3e) + EMEDIUMTYPE = Errno(0x56) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x53) + ENOBUFS = Errno(0x37) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOMEDIUM = Errno(0x55) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x5a) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x5b) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x2d) + EOVERFLOW = Errno(0x57) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTHR = Signal(0x20) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_openbsd_arm.go b/runtime/internal/clite/syscall/zerrors_openbsd_arm.go new file mode 100644 index 00000000..30a1c9da --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_openbsd_arm.go @@ -0,0 +1,1453 @@ +// mkerrors.sh +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- _const.go + +//go:build arm && openbsd + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc008427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x400c426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80084267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80084277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x800c426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCOSFPFLUSH = 0x2000444e + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x7 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFA_ROUTE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_NOTRAILERS = 0x20 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DIVERT_INIT = 0x2 + IPPROTO_DIVERT_RESP = 0x1 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DIVERTFL = 0x1022 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0x3ff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_MAXID = 0x6 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xb + RTAX_NETMASK = 0x2 + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTF_ANNOUNCE = 0x4000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x70f808 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTF_XRESOLVE = 0x200 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80246987 + SIOCALIFADDR = 0x8218691c + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8054693c + SIOCBRDGADDS = 0x80546941 + SIOCBRDGARL = 0x806e694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8054693d + SIOCBRDGDELS = 0x80546942 + SIOCBRDGFLUSH = 0x80546948 + SIOCBRDGFRL = 0x806e694e + SIOCBRDGGCACHE = 0xc0146941 + SIOCBRDGGFD = 0xc0146952 + SIOCBRDGGHT = 0xc0146951 + SIOCBRDGGIFFLGS = 0xc054693e + SIOCBRDGGMA = 0xc0146953 + SIOCBRDGGPARAM = 0xc03c6958 + SIOCBRDGGPRI = 0xc0146950 + SIOCBRDGGRL = 0xc028694f + SIOCBRDGGSIFS = 0xc054693c + SIOCBRDGGTO = 0xc0146946 + SIOCBRDGIFS = 0xc0546942 + SIOCBRDGRTS = 0xc0186943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80146940 + SIOCBRDGSFD = 0x80146952 + SIOCBRDGSHT = 0x80146951 + SIOCBRDGSIFCOST = 0x80546955 + SIOCBRDGSIFFLGS = 0x8054693f + SIOCBRDGSIFPRIO = 0x80546954 + SIOCBRDGSMA = 0x80146953 + SIOCBRDGSPRI = 0x80146950 + SIOCBRDGSPROTO = 0x8014695a + SIOCBRDGSTO = 0x80146945 + SIOCBRDGSTXHC = 0x80146959 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80246989 + SIOCDIFPHYADDR = 0x80206949 + SIOCDLIFADDR = 0x8218691e + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0147534 + SIOCGETVIFCNT = 0xc0147533 + SIOCGETVLAN = 0xc0206990 + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = 0xc0206921 + SIOCGIFASYNCMAP = 0xc020697c + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0086924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc024698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGMEMB = 0xc024698a + SIOCGIFGROUP = 0xc0246988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFMEDIA = 0xc0286936 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPDSTADDR = 0xc0206948 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFPSRCADDR = 0xc0206947 + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFTIMESLOT = 0xc0206986 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFADDR = 0xc218691d + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGLOWAT = 0x40047303 + SIOCGPGRP = 0x40047309 + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGVH = 0xc02069f6 + SIOCGVNETID = 0xc02069a7 + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc00c6978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSHIWAT = 0x80047300 + SIOCSIFADDR = 0x8020690c + SIOCSIFASYNCMAP = 0x8020697d + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8024698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFMEDIA = 0xc0206935 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPHYADDR = 0x80406946 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFTIMESLOT = 0x80206985 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSLOWAT = 0x80047302 + SIOCSPGRP = 0x80047308 + SIOCSSPPPPARAMS = 0x80206993 + SIOCSVH = 0xc02069f5 + SIOCSVNETID = 0x802069a6 + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_NSTATES = 0xb + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x400c745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x80047465 + TIOCSTI = 0x80017472 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EAUTH = Errno(0x50) + EBADF = Errno(0x9) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x58) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDOM = Errno(0x21) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x59) + EILSEQ = Errno(0x54) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EIPSEC = Errno(0x52) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x5b) + ELOOP = Errno(0x3e) + EMEDIUMTYPE = Errno(0x56) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x53) + ENOBUFS = Errno(0x37) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOMEDIUM = Errno(0x55) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x5a) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x5b) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x2d) + EOVERFLOW = Errno(0x57) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTHR = Signal(0x20) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_openbsd_arm64.go b/runtime/internal/clite/syscall/zerrors_openbsd_arm64.go new file mode 100644 index 00000000..72a93f7e --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_openbsd_arm64.go @@ -0,0 +1,1540 @@ +// mkerrors.sh -m64 +// Code generated by the command above; DO NOT EDIT. + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc010427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80104277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x8010426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCOSFPFLUSH = 0x2000444e + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PBB = 0x88e7 + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x8 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_ISATTY = 0xb + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MBIM = 0xfa + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xffffff0f + IPV6_FLOWLABEL_MASK = 0xffff0f00 + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x7 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb + RTAX_BRD = 0x7 + RTAX_DNS = 0xc + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xf + RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd + RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 + RTA_BRD = 0x80 + RTA_DNS = 0x1000 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 + RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x110fc08 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 + RTM_ADD = 0x1 + RTM_BFD = 0x12 + RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_INVALIDATE = 0x11 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0186941 + SIOCBRDGGFD = 0xc0186952 + SIOCBRDGGHT = 0xc0186951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0186953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0186950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0186946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80186940 + SIOCBRDGSFD = 0x80186952 + SIOCBRDGSHT = 0x80186951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80186953 + SIOCBRDGSPRI = 0x80186950 + SIOCBRDGSPROTO = 0x8018695a + SIOCBRDGSTO = 0x80186945 + SIOCBRDGSTXHC = 0x80186959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc028698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc028698d + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0406938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 + SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 + SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8028698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf + SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 + SIOCSVNETID = 0x802069a6 + SIOCSWGDPID = 0xc018695b + SIOCSWGMAXFLOW = 0xc0186960 + SIOCSWGMAXGROUP = 0xc018695d + SIOCSWSDPID = 0x8018695c + SIOCSWSPORTNO = 0xc060695f + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x4010745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EAUTH = Errno(0x50) + EBADF = Errno(0x9) + EBADMSG = Errno(0x5c) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x58) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDOM = Errno(0x21) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x59) + EILSEQ = Errno(0x54) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EIPSEC = Errno(0x52) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x5f) + ELOOP = Errno(0x3e) + EMEDIUMTYPE = Errno(0x56) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x53) + ENOBUFS = Errno(0x37) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOMEDIUM = Errno(0x55) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x5a) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTRECOVERABLE = Errno(0x5d) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x5b) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x2d) + EOVERFLOW = Errno(0x57) + EOWNERDEAD = Errno(0x5e) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTO = Errno(0x5f) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTHR = Signal(0x20) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_openbsd_mips64.go b/runtime/internal/clite/syscall/zerrors_openbsd_mips64.go new file mode 100644 index 00000000..061bce24 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_openbsd_mips64.go @@ -0,0 +1,1547 @@ +// mkerrors.sh -m64 +// Code generated by the command above; DO NOT EDIT. + +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -m64 _const.go + +package syscall + +const ( + AF_APPLETALK = 0x10 + AF_BLUETOOTH = 0x20 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_CNT = 0x15 + AF_COIP = 0x14 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_E164 = 0x1a + AF_ECMA = 0x8 + AF_ENCAP = 0x1c + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x18 + AF_IPX = 0x17 + AF_ISDN = 0x1a + AF_ISO = 0x7 + AF_KEY = 0x1e + AF_LAT = 0xe + AF_LINK = 0x12 + AF_LOCAL = 0x1 + AF_MAX = 0x24 + AF_MPLS = 0x21 + AF_NATM = 0x1b + AF_NS = 0x6 + AF_OSI = 0x7 + AF_PUP = 0x4 + AF_ROUTE = 0x11 + AF_SIP = 0x1d + AF_SNA = 0xb + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + ARPHRD_ETHER = 0x1 + ARPHRD_FRELAY = 0xf + ARPHRD_IEEE1394 = 0x18 + ARPHRD_IEEE802 = 0x6 + B0 = 0x0 + B110 = 0x6e + B115200 = 0x1c200 + B1200 = 0x4b0 + B134 = 0x86 + B14400 = 0x3840 + B150 = 0x96 + B1800 = 0x708 + B19200 = 0x4b00 + B200 = 0xc8 + B230400 = 0x38400 + B2400 = 0x960 + B28800 = 0x7080 + B300 = 0x12c + B38400 = 0x9600 + B4800 = 0x12c0 + B50 = 0x32 + B57600 = 0xe100 + B600 = 0x258 + B7200 = 0x1c20 + B75 = 0x4b + B76800 = 0x12c00 + B9600 = 0x2580 + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDIRFILT = 0x4004427c + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = 0xc010427b + BIOCGETIF = 0x4020426b + BIOCGFILDROP = 0x40044278 + BIOCGHDRCMPLT = 0x40044274 + BIOCGRSIG = 0x40044273 + BIOCGRTIMEOUT = 0x4010426e + BIOCGSTATS = 0x4008426f + BIOCIMMEDIATE = 0x80044270 + BIOCLOCK = 0x20004276 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = 0xc0044266 + BIOCSDIRFILT = 0x8004427d + BIOCSDLT = 0x8004427a + BIOCSETF = 0x80104267 + BIOCSETIF = 0x8020426c + BIOCSETWF = 0x80104277 + BIOCSFILDROP = 0x80044279 + BIOCSHDRCMPLT = 0x80044275 + BIOCSRSIG = 0x80044272 + BIOCSRTIMEOUT = 0x8010426d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DIRECTION_IN = 0x1 + BPF_DIRECTION_OUT = 0x2 + BPF_DIV = 0x30 + BPF_FILDROP_CAPTURE = 0x1 + BPF_FILDROP_DROP = 0x2 + BPF_FILDROP_PASS = 0x0 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x200000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x8000 + CREAD = 0x800 + CS5 = 0x0 + CS6 = 0x100 + CS7 = 0x200 + CS8 = 0x300 + CSIZE = 0x300 + CSTART = 0x11 + CSTATUS = 0xff + CSTOP = 0x13 + CSTOPB = 0x400 + CSUSP = 0x1a + CTL_MAXNAME = 0xc + CTL_NET = 0x4 + DIOCOSFPFLUSH = 0x2000444e + DLT_ARCNET = 0x7 + DLT_ATM_RFC1483 = 0xb + DLT_AX25 = 0x3 + DLT_CHAOS = 0x5 + DLT_C_HDLC = 0x68 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0xd + DLT_FDDI = 0xa + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_LOOP = 0xc + DLT_MPLS = 0xdb + DLT_NULL = 0x0 + DLT_OPENFLOW = 0x10b + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0x10 + DLT_PPP_ETHER = 0x33 + DLT_PPP_SERIAL = 0x32 + DLT_PRONET = 0x4 + DLT_RAW = 0xe + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xf + DLT_USBPCAP = 0xf9 + DLT_USER0 = 0x93 + DLT_USER1 = 0x94 + DLT_USER10 = 0x9d + DLT_USER11 = 0x9e + DLT_USER12 = 0x9f + DLT_USER13 = 0xa0 + DLT_USER14 = 0xa1 + DLT_USER15 = 0xa2 + DLT_USER2 = 0x95 + DLT_USER3 = 0x96 + DLT_USER4 = 0x97 + DLT_USER5 = 0x98 + DLT_USER6 = 0x99 + DLT_USER7 = 0x9a + DLT_USER8 = 0x9b + DLT_USER9 = 0x9c + DT_BLK = 0x6 + DT_CHR = 0x2 + DT_DIR = 0x4 + DT_FIFO = 0x1 + DT_LNK = 0xa + DT_REG = 0x8 + DT_SOCK = 0xc + DT_UNKNOWN = 0x0 + ECHO = 0x8 + ECHOCTL = 0x40 + ECHOE = 0x2 + ECHOK = 0x4 + ECHOKE = 0x1 + ECHONL = 0x10 + ECHOPRT = 0x20 + EMT_TAGOVF = 0x1 + EMUL_ENABLED = 0x1 + EMUL_NATIVE = 0x2 + ENDRUNDISC = 0x9 + ETHERMIN = 0x2e + ETHERMTU = 0x5dc + ETHERTYPE_8023 = 0x4 + ETHERTYPE_AARP = 0x80f3 + ETHERTYPE_ACCTON = 0x8390 + ETHERTYPE_AEONIC = 0x8036 + ETHERTYPE_ALPHA = 0x814a + ETHERTYPE_AMBER = 0x6008 + ETHERTYPE_AMOEBA = 0x8145 + ETHERTYPE_AOE = 0x88a2 + ETHERTYPE_APOLLO = 0x80f7 + ETHERTYPE_APOLLODOMAIN = 0x8019 + ETHERTYPE_APPLETALK = 0x809b + ETHERTYPE_APPLITEK = 0x80c7 + ETHERTYPE_ARGONAUT = 0x803a + ETHERTYPE_ARP = 0x806 + ETHERTYPE_AT = 0x809b + ETHERTYPE_ATALK = 0x809b + ETHERTYPE_ATOMIC = 0x86df + ETHERTYPE_ATT = 0x8069 + ETHERTYPE_ATTSTANFORD = 0x8008 + ETHERTYPE_AUTOPHON = 0x806a + ETHERTYPE_AXIS = 0x8856 + ETHERTYPE_BCLOOP = 0x9003 + ETHERTYPE_BOFL = 0x8102 + ETHERTYPE_CABLETRON = 0x7034 + ETHERTYPE_CHAOS = 0x804 + ETHERTYPE_COMDESIGN = 0x806c + ETHERTYPE_COMPUGRAPHIC = 0x806d + ETHERTYPE_COUNTERPOINT = 0x8062 + ETHERTYPE_CRONUS = 0x8004 + ETHERTYPE_CRONUSVLN = 0x8003 + ETHERTYPE_DCA = 0x1234 + ETHERTYPE_DDE = 0x807b + ETHERTYPE_DEBNI = 0xaaaa + ETHERTYPE_DECAM = 0x8048 + ETHERTYPE_DECCUST = 0x6006 + ETHERTYPE_DECDIAG = 0x6005 + ETHERTYPE_DECDNS = 0x803c + ETHERTYPE_DECDTS = 0x803e + ETHERTYPE_DECEXPER = 0x6000 + ETHERTYPE_DECLAST = 0x8041 + ETHERTYPE_DECLTM = 0x803f + ETHERTYPE_DECMUMPS = 0x6009 + ETHERTYPE_DECNETBIOS = 0x8040 + ETHERTYPE_DELTACON = 0x86de + ETHERTYPE_DIDDLE = 0x4321 + ETHERTYPE_DLOG1 = 0x660 + ETHERTYPE_DLOG2 = 0x661 + ETHERTYPE_DN = 0x6003 + ETHERTYPE_DOGFIGHT = 0x1989 + ETHERTYPE_DSMD = 0x8039 + ETHERTYPE_ECMA = 0x803 + ETHERTYPE_ENCRYPT = 0x803d + ETHERTYPE_ES = 0x805d + ETHERTYPE_EXCELAN = 0x8010 + ETHERTYPE_EXPERDATA = 0x8049 + ETHERTYPE_FLIP = 0x8146 + ETHERTYPE_FLOWCONTROL = 0x8808 + ETHERTYPE_FRARP = 0x808 + ETHERTYPE_GENDYN = 0x8068 + ETHERTYPE_HAYES = 0x8130 + ETHERTYPE_HIPPI_FP = 0x8180 + ETHERTYPE_HITACHI = 0x8820 + ETHERTYPE_HP = 0x8005 + ETHERTYPE_IEEEPUP = 0xa00 + ETHERTYPE_IEEEPUPAT = 0xa01 + ETHERTYPE_IMLBL = 0x4c42 + ETHERTYPE_IMLBLDIAG = 0x424c + ETHERTYPE_IP = 0x800 + ETHERTYPE_IPAS = 0x876c + ETHERTYPE_IPV6 = 0x86dd + ETHERTYPE_IPX = 0x8137 + ETHERTYPE_IPXNEW = 0x8037 + ETHERTYPE_KALPANA = 0x8582 + ETHERTYPE_LANBRIDGE = 0x8038 + ETHERTYPE_LANPROBE = 0x8888 + ETHERTYPE_LAT = 0x6004 + ETHERTYPE_LBACK = 0x9000 + ETHERTYPE_LITTLE = 0x8060 + ETHERTYPE_LLDP = 0x88cc + ETHERTYPE_LOGICRAFT = 0x8148 + ETHERTYPE_LOOPBACK = 0x9000 + ETHERTYPE_MACSEC = 0x88e5 + ETHERTYPE_MATRA = 0x807a + ETHERTYPE_MAX = 0xffff + ETHERTYPE_MERIT = 0x807c + ETHERTYPE_MICP = 0x873a + ETHERTYPE_MOPDL = 0x6001 + ETHERTYPE_MOPRC = 0x6002 + ETHERTYPE_MOTOROLA = 0x818d + ETHERTYPE_MPLS = 0x8847 + ETHERTYPE_MPLS_MCAST = 0x8848 + ETHERTYPE_MUMPS = 0x813f + ETHERTYPE_NBPCC = 0x3c04 + ETHERTYPE_NBPCLAIM = 0x3c09 + ETHERTYPE_NBPCLREQ = 0x3c05 + ETHERTYPE_NBPCLRSP = 0x3c06 + ETHERTYPE_NBPCREQ = 0x3c02 + ETHERTYPE_NBPCRSP = 0x3c03 + ETHERTYPE_NBPDG = 0x3c07 + ETHERTYPE_NBPDGB = 0x3c08 + ETHERTYPE_NBPDLTE = 0x3c0a + ETHERTYPE_NBPRAR = 0x3c0c + ETHERTYPE_NBPRAS = 0x3c0b + ETHERTYPE_NBPRST = 0x3c0d + ETHERTYPE_NBPSCD = 0x3c01 + ETHERTYPE_NBPVCD = 0x3c00 + ETHERTYPE_NBS = 0x802 + ETHERTYPE_NCD = 0x8149 + ETHERTYPE_NESTAR = 0x8006 + ETHERTYPE_NETBEUI = 0x8191 + ETHERTYPE_NOVELL = 0x8138 + ETHERTYPE_NS = 0x600 + ETHERTYPE_NSAT = 0x601 + ETHERTYPE_NSCOMPAT = 0x807 + ETHERTYPE_NTRAILER = 0x10 + ETHERTYPE_OS9 = 0x7007 + ETHERTYPE_OS9NET = 0x7009 + ETHERTYPE_PACER = 0x80c6 + ETHERTYPE_PAE = 0x888e + ETHERTYPE_PBB = 0x88e7 + ETHERTYPE_PCS = 0x4242 + ETHERTYPE_PLANNING = 0x8044 + ETHERTYPE_PPP = 0x880b + ETHERTYPE_PPPOE = 0x8864 + ETHERTYPE_PPPOEDISC = 0x8863 + ETHERTYPE_PRIMENTS = 0x7031 + ETHERTYPE_PUP = 0x200 + ETHERTYPE_PUPAT = 0x200 + ETHERTYPE_QINQ = 0x88a8 + ETHERTYPE_RACAL = 0x7030 + ETHERTYPE_RATIONAL = 0x8150 + ETHERTYPE_RAWFR = 0x6559 + ETHERTYPE_RCL = 0x1995 + ETHERTYPE_RDP = 0x8739 + ETHERTYPE_RETIX = 0x80f2 + ETHERTYPE_REVARP = 0x8035 + ETHERTYPE_SCA = 0x6007 + ETHERTYPE_SECTRA = 0x86db + ETHERTYPE_SECUREDATA = 0x876d + ETHERTYPE_SGITW = 0x817e + ETHERTYPE_SG_BOUNCE = 0x8016 + ETHERTYPE_SG_DIAG = 0x8013 + ETHERTYPE_SG_NETGAMES = 0x8014 + ETHERTYPE_SG_RESV = 0x8015 + ETHERTYPE_SIMNET = 0x5208 + ETHERTYPE_SLOW = 0x8809 + ETHERTYPE_SNA = 0x80d5 + ETHERTYPE_SNMP = 0x814c + ETHERTYPE_SONIX = 0xfaf5 + ETHERTYPE_SPIDER = 0x809f + ETHERTYPE_SPRITE = 0x500 + ETHERTYPE_STP = 0x8181 + ETHERTYPE_TALARIS = 0x812b + ETHERTYPE_TALARISMC = 0x852b + ETHERTYPE_TCPCOMP = 0x876b + ETHERTYPE_TCPSM = 0x9002 + ETHERTYPE_TEC = 0x814f + ETHERTYPE_TIGAN = 0x802f + ETHERTYPE_TRAIL = 0x1000 + ETHERTYPE_TRANSETHER = 0x6558 + ETHERTYPE_TYMSHARE = 0x802e + ETHERTYPE_UBBST = 0x7005 + ETHERTYPE_UBDEBUG = 0x900 + ETHERTYPE_UBDIAGLOOP = 0x7002 + ETHERTYPE_UBDL = 0x7000 + ETHERTYPE_UBNIU = 0x7001 + ETHERTYPE_UBNMC = 0x7003 + ETHERTYPE_VALID = 0x1600 + ETHERTYPE_VARIAN = 0x80dd + ETHERTYPE_VAXELN = 0x803b + ETHERTYPE_VEECO = 0x8067 + ETHERTYPE_VEXP = 0x805b + ETHERTYPE_VGLAB = 0x8131 + ETHERTYPE_VINES = 0xbad + ETHERTYPE_VINESECHO = 0xbaf + ETHERTYPE_VINESLOOP = 0xbae + ETHERTYPE_VITAL = 0xff00 + ETHERTYPE_VLAN = 0x8100 + ETHERTYPE_VLTLMAN = 0x8080 + ETHERTYPE_VPROD = 0x805c + ETHERTYPE_VURESERVED = 0x8147 + ETHERTYPE_WATERLOO = 0x8130 + ETHERTYPE_WELLFLEET = 0x8103 + ETHERTYPE_X25 = 0x805 + ETHERTYPE_X75 = 0x801 + ETHERTYPE_XNSSM = 0x9001 + ETHERTYPE_XTP = 0x817d + ETHER_ADDR_LEN = 0x6 + ETHER_ALIGN = 0x2 + ETHER_CRC_LEN = 0x4 + ETHER_CRC_POLY_BE = 0x4c11db6 + ETHER_CRC_POLY_LE = 0xedb88320 + ETHER_HDR_LEN = 0xe + ETHER_MAX_DIX_LEN = 0x600 + ETHER_MAX_HARDMTU_LEN = 0xff9b + ETHER_MAX_LEN = 0x5ee + ETHER_MIN_LEN = 0x40 + ETHER_TYPE_LEN = 0x2 + ETHER_VLAN_ENCAP_LEN = 0x4 + EVFILT_AIO = -0x3 + EVFILT_DEVICE = -0x8 + EVFILT_PROC = -0x5 + EVFILT_READ = -0x1 + EVFILT_SIGNAL = -0x6 + EVFILT_SYSCOUNT = 0x8 + EVFILT_TIMER = -0x7 + EVFILT_VNODE = -0x4 + EVFILT_WRITE = -0x2 + EVL_ENCAPLEN = 0x4 + EVL_PRIO_BITS = 0xd + EVL_PRIO_MAX = 0x7 + EVL_VLID_MASK = 0xfff + EVL_VLID_MAX = 0xffe + EVL_VLID_MIN = 0x1 + EVL_VLID_NULL = 0x0 + EV_ADD = 0x1 + EV_CLEAR = 0x20 + EV_DELETE = 0x2 + EV_DISABLE = 0x8 + EV_DISPATCH = 0x80 + EV_ENABLE = 0x4 + EV_EOF = 0x8000 + EV_ERROR = 0x4000 + EV_FLAG1 = 0x2000 + EV_ONESHOT = 0x10 + EV_RECEIPT = 0x40 + EV_SYSFLAGS = 0xf000 + EXTA = 0x4b00 + EXTB = 0x9600 + EXTPROC = 0x800 + FD_CLOEXEC = 0x1 + FD_SETSIZE = 0x400 + FLUSHO = 0x800000 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0xa + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0x7 + F_GETOWN = 0x5 + F_ISATTY = 0xb + F_RDLCK = 0x1 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x8 + F_SETLKW = 0x9 + F_SETOWN = 0x6 + F_UNLCK = 0x2 + F_WRLCK = 0x3 + HUPCL = 0x4000 + ICANON = 0x100 + ICMP6_FILTER = 0x12 + ICRNL = 0x100 + IEXTEN = 0x400 + IFAN_ARRIVAL = 0x0 + IFAN_DEPARTURE = 0x1 + IFF_ALLMULTI = 0x200 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x8e52 + IFF_DEBUG = 0x4 + IFF_LINK0 = 0x1000 + IFF_LINK1 = 0x2000 + IFF_LINK2 = 0x4000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x8000 + IFF_NOARP = 0x80 + IFF_OACTIVE = 0x400 + IFF_POINTOPOINT = 0x10 + IFF_PROMISC = 0x100 + IFF_RUNNING = 0x40 + IFF_SIMPLEX = 0x800 + IFF_STATICARP = 0x20 + IFF_UP = 0x1 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_A12MPPSWITCH = 0x82 + IFT_AAL2 = 0xbb + IFT_AAL5 = 0x31 + IFT_ADSL = 0x5e + IFT_AFLANE8023 = 0x3b + IFT_AFLANE8025 = 0x3c + IFT_ARAP = 0x58 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ASYNC = 0x54 + IFT_ATM = 0x25 + IFT_ATMDXI = 0x69 + IFT_ATMFUNI = 0x6a + IFT_ATMIMA = 0x6b + IFT_ATMLOGICAL = 0x50 + IFT_ATMRADIO = 0xbd + IFT_ATMSUBINTERFACE = 0x86 + IFT_ATMVCIENDPT = 0xc2 + IFT_ATMVIRTUAL = 0x95 + IFT_BGPPOLICYACCOUNTING = 0xa2 + IFT_BLUETOOTH = 0xf8 + IFT_BRIDGE = 0xd1 + IFT_BSC = 0x53 + IFT_CARP = 0xf7 + IFT_CCTEMUL = 0x3d + IFT_CEPT = 0x13 + IFT_CES = 0x85 + IFT_CHANNEL = 0x46 + IFT_CNR = 0x55 + IFT_COFFEE = 0x84 + IFT_COMPOSITELINK = 0x9b + IFT_DCN = 0x8d + IFT_DIGITALPOWERLINE = 0x8a + IFT_DIGITALWRAPPEROVERHEADCHANNEL = 0xba + IFT_DLSW = 0x4a + IFT_DOCSCABLEDOWNSTREAM = 0x80 + IFT_DOCSCABLEMACLAYER = 0x7f + IFT_DOCSCABLEUPSTREAM = 0x81 + IFT_DOCSCABLEUPSTREAMCHANNEL = 0xcd + IFT_DS0 = 0x51 + IFT_DS0BUNDLE = 0x52 + IFT_DS1FDL = 0xaa + IFT_DS3 = 0x1e + IFT_DTM = 0x8c + IFT_DUMMY = 0xf1 + IFT_DVBASILN = 0xac + IFT_DVBASIOUT = 0xad + IFT_DVBRCCDOWNSTREAM = 0x93 + IFT_DVBRCCMACLAYER = 0x92 + IFT_DVBRCCUPSTREAM = 0x94 + IFT_ECONET = 0xce + IFT_ENC = 0xf4 + IFT_EON = 0x19 + IFT_EPLRS = 0x57 + IFT_ESCON = 0x49 + IFT_ETHER = 0x6 + IFT_FAITH = 0xf3 + IFT_FAST = 0x7d + IFT_FASTETHER = 0x3e + IFT_FASTETHERFX = 0x45 + IFT_FDDI = 0xf + IFT_FIBRECHANNEL = 0x38 + IFT_FRAMERELAYINTERCONNECT = 0x3a + IFT_FRAMERELAYMPI = 0x5c + IFT_FRDLCIENDPT = 0xc1 + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_FRF16MFRBUNDLE = 0xa3 + IFT_FRFORWARD = 0x9e + IFT_G703AT2MB = 0x43 + IFT_G703AT64K = 0x42 + IFT_GIF = 0xf0 + IFT_GIGABITETHERNET = 0x75 + IFT_GR303IDT = 0xb2 + IFT_GR303RDT = 0xb1 + IFT_H323GATEKEEPER = 0xa4 + IFT_H323PROXY = 0xa5 + IFT_HDH1822 = 0x3 + IFT_HDLC = 0x76 + IFT_HDSL2 = 0xa8 + IFT_HIPERLAN2 = 0xb7 + IFT_HIPPI = 0x2f + IFT_HIPPIINTERFACE = 0x39 + IFT_HOSTPAD = 0x5a + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IBM370PARCHAN = 0x48 + IFT_IDSL = 0x9a + IFT_IEEE1394 = 0x90 + IFT_IEEE80211 = 0x47 + IFT_IEEE80212 = 0x37 + IFT_IEEE8023ADLAG = 0xa1 + IFT_IFGSN = 0x91 + IFT_IMT = 0xbe + IFT_INFINIBAND = 0xc7 + IFT_INTERLEAVE = 0x7c + IFT_IP = 0x7e + IFT_IPFORWARD = 0x8e + IFT_IPOVERATM = 0x72 + IFT_IPOVERCDLC = 0x6d + IFT_IPOVERCLAW = 0x6e + IFT_IPSWITCH = 0x4e + IFT_ISDN = 0x3f + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISDNS = 0x4b + IFT_ISDNU = 0x4c + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88025CRFPINT = 0x62 + IFT_ISO88025DTR = 0x56 + IFT_ISO88025FIBER = 0x73 + IFT_ISO88026 = 0xa + IFT_ISUP = 0xb3 + IFT_L2VLAN = 0x87 + IFT_L3IPVLAN = 0x88 + IFT_L3IPXVLAN = 0x89 + IFT_LAPB = 0x10 + IFT_LAPD = 0x4d + IFT_LAPF = 0x77 + IFT_LINEGROUP = 0xd2 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MBIM = 0xfa + IFT_MEDIAMAILOVERIP = 0x8b + IFT_MFSIGLINK = 0xa7 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_MPC = 0x71 + IFT_MPLS = 0xa6 + IFT_MPLSTUNNEL = 0x96 + IFT_MSDSL = 0x8f + IFT_MVL = 0xbf + IFT_MYRINET = 0x63 + IFT_NFAS = 0xaf + IFT_NSIP = 0x1b + IFT_OPTICALCHANNEL = 0xc3 + IFT_OPTICALTRANSPORT = 0xc4 + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PFLOG = 0xf5 + IFT_PFLOW = 0xf9 + IFT_PFSYNC = 0xf6 + IFT_PLC = 0xae + IFT_PON155 = 0xcf + IFT_PON622 = 0xd0 + IFT_POS = 0xab + IFT_PPP = 0x17 + IFT_PPPMULTILINKBUNDLE = 0x6c + IFT_PROPATM = 0xc5 + IFT_PROPBWAP2MP = 0xb8 + IFT_PROPCNLS = 0x59 + IFT_PROPDOCSWIRELESSDOWNSTREAM = 0xb5 + IFT_PROPDOCSWIRELESSMACLAYER = 0xb4 + IFT_PROPDOCSWIRELESSUPSTREAM = 0xb6 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PROPWIRELESSP2P = 0x9d + IFT_PTPSERIAL = 0x16 + IFT_PVC = 0xf2 + IFT_Q2931 = 0xc9 + IFT_QLLC = 0x44 + IFT_RADIOMAC = 0xbc + IFT_RADSL = 0x5f + IFT_REACHDSL = 0xc0 + IFT_RFC1483 = 0x9f + IFT_RS232 = 0x21 + IFT_RSRB = 0x4f + IFT_SDLC = 0x11 + IFT_SDSL = 0x60 + IFT_SHDSL = 0xa9 + IFT_SIP = 0x1f + IFT_SIPSIG = 0xcc + IFT_SIPTG = 0xcb + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETOVERHEADCHANNEL = 0xb9 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_SRP = 0x97 + IFT_SS7SIGLINK = 0x9c + IFT_STACKTOSTACK = 0x6f + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_TDLC = 0x74 + IFT_TELINK = 0xc8 + IFT_TERMPAD = 0x5b + IFT_TR008 = 0xb0 + IFT_TRANSPHDLC = 0x7b + IFT_TUNNEL = 0x83 + IFT_ULTRA = 0x1d + IFT_USB = 0xa0 + IFT_V11 = 0x40 + IFT_V35 = 0x2d + IFT_V36 = 0x41 + IFT_V37 = 0x78 + IFT_VDSL = 0x61 + IFT_VIRTUALIPADDRESS = 0x70 + IFT_VIRTUALTG = 0xca + IFT_VOICEDID = 0xd5 + IFT_VOICEEM = 0x64 + IFT_VOICEEMFGD = 0xd3 + IFT_VOICEENCAP = 0x67 + IFT_VOICEFGDEANA = 0xd4 + IFT_VOICEFXO = 0x65 + IFT_VOICEFXS = 0x66 + IFT_VOICEOVERATM = 0x98 + IFT_VOICEOVERCABLE = 0xc6 + IFT_VOICEOVERFRAMERELAY = 0x99 + IFT_VOICEOVERIP = 0x68 + IFT_X213 = 0x5d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25HUNTGROUP = 0x7a + IFT_X25MLP = 0x79 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_LOOPBACKNET = 0x7f + IN_RFC3021_HOST = 0x1 + IN_RFC3021_NET = 0xfffffffe + IN_RFC3021_NSHIFT = 0x1f + IPPROTO_AH = 0x33 + IPPROTO_CARP = 0x70 + IPPROTO_DIVERT = 0x102 + IPPROTO_DONE = 0x101 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x62 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_ETHERIP = 0x61 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_GRE = 0x2f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPCOMP = 0x6c + IPPROTO_IPIP = 0x4 + IPPROTO_IPV4 = 0x4 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_MAXID = 0x103 + IPPROTO_MOBILE = 0x37 + IPPROTO_MPLS = 0x89 + IPPROTO_NONE = 0x3b + IPPROTO_PFSYNC = 0xf0 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_TCP = 0x6 + IPPROTO_TP = 0x1d + IPPROTO_UDP = 0x11 + IPPROTO_UDPLITE = 0x88 + IPV6_AUTH_LEVEL = 0x35 + IPV6_AUTOFLOWLABEL = 0x3b + IPV6_CHECKSUM = 0x1a + IPV6_DEFAULT_MULTICAST_HOPS = 0x1 + IPV6_DEFAULT_MULTICAST_LOOP = 0x1 + IPV6_DEFHLIM = 0x40 + IPV6_DONTFRAG = 0x3e + IPV6_DSTOPTS = 0x32 + IPV6_ESP_NETWORK_LEVEL = 0x37 + IPV6_ESP_TRANS_LEVEL = 0x36 + IPV6_FAITH = 0x1d + IPV6_FLOWINFO_MASK = 0xfffffff + IPV6_FLOWLABEL_MASK = 0xfffff + IPV6_FRAGTTL = 0x78 + IPV6_HLIMDEC = 0x1 + IPV6_HOPLIMIT = 0x2f + IPV6_HOPOPTS = 0x31 + IPV6_IPCOMP_LEVEL = 0x3c + IPV6_JOIN_GROUP = 0xc + IPV6_LEAVE_GROUP = 0xd + IPV6_MAXHLIM = 0xff + IPV6_MAXPACKET = 0xffff + IPV6_MINHOPCOUNT = 0x41 + IPV6_MMTU = 0x500 + IPV6_MULTICAST_HOPS = 0xa + IPV6_MULTICAST_IF = 0x9 + IPV6_MULTICAST_LOOP = 0xb + IPV6_NEXTHOP = 0x30 + IPV6_OPTIONS = 0x1 + IPV6_PATHMTU = 0x2c + IPV6_PIPEX = 0x3f + IPV6_PKTINFO = 0x2e + IPV6_PORTRANGE = 0xe + IPV6_PORTRANGE_DEFAULT = 0x0 + IPV6_PORTRANGE_HIGH = 0x1 + IPV6_PORTRANGE_LOW = 0x2 + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVDSTPORT = 0x40 + IPV6_RECVHOPLIMIT = 0x25 + IPV6_RECVHOPOPTS = 0x27 + IPV6_RECVPATHMTU = 0x2b + IPV6_RECVPKTINFO = 0x24 + IPV6_RECVRTHDR = 0x26 + IPV6_RECVTCLASS = 0x39 + IPV6_RTABLE = 0x1021 + IPV6_RTHDR = 0x33 + IPV6_RTHDRDSTOPTS = 0x23 + IPV6_RTHDR_LOOSE = 0x0 + IPV6_RTHDR_STRICT = 0x1 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SOCKOPT_RESERVED1 = 0x3 + IPV6_TCLASS = 0x3d + IPV6_UNICAST_HOPS = 0x4 + IPV6_USE_MIN_MTU = 0x2a + IPV6_V6ONLY = 0x1b + IPV6_VERSION = 0x60 + IPV6_VERSION_MASK = 0xf0 + IP_ADD_MEMBERSHIP = 0xc + IP_AUTH_LEVEL = 0x14 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DROP_MEMBERSHIP = 0xd + IP_ESP_NETWORK_LEVEL = 0x16 + IP_ESP_TRANS_LEVEL = 0x15 + IP_HDRINCL = 0x2 + IP_IPCOMP_LEVEL = 0x1d + IP_IPDEFTTL = 0x25 + IP_IPSECFLOWINFO = 0x24 + IP_IPSEC_LOCAL_AUTH = 0x1b + IP_IPSEC_LOCAL_CRED = 0x19 + IP_IPSEC_LOCAL_ID = 0x17 + IP_IPSEC_REMOTE_AUTH = 0x1c + IP_IPSEC_REMOTE_CRED = 0x1a + IP_IPSEC_REMOTE_ID = 0x18 + IP_MAXPACKET = 0xffff + IP_MAX_MEMBERSHIPS = 0xfff + IP_MF = 0x2000 + IP_MINTTL = 0x20 + IP_MIN_MEMBERSHIPS = 0xf + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x9 + IP_MULTICAST_LOOP = 0xb + IP_MULTICAST_TTL = 0xa + IP_OFFMASK = 0x1fff + IP_OPTIONS = 0x1 + IP_PIPEX = 0x22 + IP_PORTRANGE = 0x13 + IP_PORTRANGE_DEFAULT = 0x0 + IP_PORTRANGE_HIGH = 0x1 + IP_PORTRANGE_LOW = 0x2 + IP_RECVDSTADDR = 0x7 + IP_RECVDSTPORT = 0x21 + IP_RECVIF = 0x1e + IP_RECVOPTS = 0x5 + IP_RECVRETOPTS = 0x6 + IP_RECVRTABLE = 0x23 + IP_RECVTTL = 0x1f + IP_RETOPTS = 0x8 + IP_RF = 0x8000 + IP_RTABLE = 0x1021 + IP_SENDSRCADDR = 0x7 + IP_TOS = 0x3 + IP_TTL = 0x4 + ISIG = 0x80 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x400 + IXON = 0x200 + LCNT_OVERLOAD_FLUSH = 0x6 + LOCK_EX = 0x2 + LOCK_NB = 0x4 + LOCK_SH = 0x1 + LOCK_UN = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x6 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_SPACEAVAIL = 0x5 + MADV_WILLNEED = 0x3 + MAP_ANON = 0x1000 + MAP_ANONYMOUS = 0x1000 + MAP_CONCEAL = 0x8000 + MAP_COPY = 0x2 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_FLAGMASK = 0xfff7 + MAP_HASSEMAPHORE = 0x0 + MAP_INHERIT = 0x0 + MAP_INHERIT_COPY = 0x1 + MAP_INHERIT_NONE = 0x2 + MAP_INHERIT_SHARE = 0x0 + MAP_INHERIT_ZERO = 0x3 + MAP_NOEXTEND = 0x0 + MAP_NORESERVE = 0x0 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x0 + MAP_SHARED = 0x1 + MAP_STACK = 0x4000 + MAP_TRYFIXED = 0x0 + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_BCAST = 0x100 + MSG_CMSG_CLOEXEC = 0x800 + MSG_CTRUNC = 0x20 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_EOR = 0x8 + MSG_MCAST = 0x200 + MSG_NOSIGNAL = 0x400 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x10 + MSG_WAITALL = 0x40 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x4 + MS_SYNC = 0x2 + NAME_MAX = 0xff + NET_RT_DUMP = 0x1 + NET_RT_FLAGS = 0x2 + NET_RT_IFLIST = 0x3 + NET_RT_IFNAMES = 0x6 + NET_RT_MAXID = 0x7 + NET_RT_STATS = 0x4 + NET_RT_TABLE = 0x5 + NOFLSH = 0x80000000 + NOTE_ATTRIB = 0x8 + NOTE_CHANGE = 0x1 + NOTE_CHILD = 0x4 + NOTE_DELETE = 0x1 + NOTE_EOF = 0x2 + NOTE_EXEC = 0x20000000 + NOTE_EXIT = 0x80000000 + NOTE_EXTEND = 0x4 + NOTE_FORK = 0x40000000 + NOTE_LINK = 0x10 + NOTE_LOWAT = 0x1 + NOTE_PCTRLMASK = 0xf0000000 + NOTE_PDATAMASK = 0xfffff + NOTE_RENAME = 0x20 + NOTE_REVOKE = 0x40 + NOTE_TRACK = 0x1 + NOTE_TRACKERR = 0x2 + NOTE_TRUNCATE = 0x80 + NOTE_WRITE = 0x2 + OCRNL = 0x10 + ONLCR = 0x2 + ONLRET = 0x80 + ONOCR = 0x40 + ONOEOT = 0x8 + OPOST = 0x1 + O_ACCMODE = 0x3 + O_APPEND = 0x8 + O_ASYNC = 0x40 + O_CLOEXEC = 0x10000 + O_CREAT = 0x200 + O_DIRECTORY = 0x20000 + O_DSYNC = 0x80 + O_EXCL = 0x800 + O_EXLOCK = 0x20 + O_FSYNC = 0x80 + O_NDELAY = 0x4 + O_NOCTTY = 0x8000 + O_NOFOLLOW = 0x100 + O_NONBLOCK = 0x4 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x80 + O_SHLOCK = 0x10 + O_SYNC = 0x80 + O_TRUNC = 0x400 + O_WRONLY = 0x1 + PARENB = 0x1000 + PARMRK = 0x8 + PARODD = 0x2000 + PENDIN = 0x20000000 + PF_FLUSH = 0x1 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x8 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = 0x7fffffffffffffff + RTAX_AUTHOR = 0x6 + RTAX_BFD = 0xb + RTAX_BRD = 0x7 + RTAX_DNS = 0xc + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_LABEL = 0xa + RTAX_MAX = 0xf + RTAX_NETMASK = 0x2 + RTAX_SEARCH = 0xe + RTAX_SRC = 0x8 + RTAX_SRCMASK = 0x9 + RTAX_STATIC = 0xd + RTA_AUTHOR = 0x40 + RTA_BFD = 0x800 + RTA_BRD = 0x80 + RTA_DNS = 0x1000 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_LABEL = 0x400 + RTA_NETMASK = 0x4 + RTA_SEARCH = 0x4000 + RTA_SRC = 0x100 + RTA_SRCMASK = 0x200 + RTA_STATIC = 0x2000 + RTF_ANNOUNCE = 0x4000 + RTF_BFD = 0x1000000 + RTF_BLACKHOLE = 0x1000 + RTF_BROADCAST = 0x400000 + RTF_CACHED = 0x20000 + RTF_CLONED = 0x10000 + RTF_CLONING = 0x100 + RTF_CONNECTED = 0x800000 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_FMASK = 0x110fc08 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_LLINFO = 0x400 + RTF_LOCAL = 0x200000 + RTF_MODIFIED = 0x20 + RTF_MPATH = 0x40000 + RTF_MPLS = 0x100000 + RTF_MULTICAST = 0x200 + RTF_PERMANENT_ARP = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_PROTO3 = 0x2000 + RTF_REJECT = 0x8 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_USETRAILERS = 0x8000 + RTM_80211INFO = 0x15 + RTM_ADD = 0x1 + RTM_BFD = 0x12 + RTM_CHANGE = 0x3 + RTM_CHGADDRATTR = 0x14 + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_DESYNC = 0x10 + RTM_GET = 0x4 + RTM_IFANNOUNCE = 0xf + RTM_IFINFO = 0xe + RTM_INVALIDATE = 0x11 + RTM_LOSING = 0x5 + RTM_MAXSIZE = 0x800 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_PROPOSAL = 0x13 + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_RTTUNIT = 0xf4240 + RTM_VERSION = 0x5 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_TABLEID_BITS = 0x8 + RT_TABLEID_MASK = 0xff + RT_TABLEID_MAX = 0xff + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + RUSAGE_THREAD = 0x1 + SCM_RIGHTS = 0x1 + SCM_TIMESTAMP = 0x4 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIOCADDMULTI = 0x80206931 + SIOCAIFADDR = 0x8040691a + SIOCAIFGROUP = 0x80286987 + SIOCATMARK = 0x40047307 + SIOCBRDGADD = 0x8060693c + SIOCBRDGADDL = 0x80606949 + SIOCBRDGADDS = 0x80606941 + SIOCBRDGARL = 0x808c694d + SIOCBRDGDADDR = 0x81286947 + SIOCBRDGDEL = 0x8060693d + SIOCBRDGDELS = 0x80606942 + SIOCBRDGFLUSH = 0x80606948 + SIOCBRDGFRL = 0x808c694e + SIOCBRDGGCACHE = 0xc0186941 + SIOCBRDGGFD = 0xc0186952 + SIOCBRDGGHT = 0xc0186951 + SIOCBRDGGIFFLGS = 0xc060693e + SIOCBRDGGMA = 0xc0186953 + SIOCBRDGGPARAM = 0xc0406958 + SIOCBRDGGPRI = 0xc0186950 + SIOCBRDGGRL = 0xc030694f + SIOCBRDGGTO = 0xc0186946 + SIOCBRDGIFS = 0xc0606942 + SIOCBRDGRTS = 0xc0206943 + SIOCBRDGSADDR = 0xc1286944 + SIOCBRDGSCACHE = 0x80186940 + SIOCBRDGSFD = 0x80186952 + SIOCBRDGSHT = 0x80186951 + SIOCBRDGSIFCOST = 0x80606955 + SIOCBRDGSIFFLGS = 0x8060693f + SIOCBRDGSIFPRIO = 0x80606954 + SIOCBRDGSIFPROT = 0x8060694a + SIOCBRDGSMA = 0x80186953 + SIOCBRDGSPRI = 0x80186950 + SIOCBRDGSPROTO = 0x8018695a + SIOCBRDGSTO = 0x80186945 + SIOCBRDGSTXHC = 0x80186959 + SIOCDELLABEL = 0x80206997 + SIOCDELMULTI = 0x80206932 + SIOCDIFADDR = 0x80206919 + SIOCDIFGROUP = 0x80286989 + SIOCDIFPARENT = 0x802069b4 + SIOCDIFPHYADDR = 0x80206949 + SIOCDPWE3NEIGHBOR = 0x802069de + SIOCDVNETID = 0x802069af + SIOCGETKALIVE = 0xc01869a4 + SIOCGETLABEL = 0x8020699a + SIOCGETMPWCFG = 0xc02069ae + SIOCGETPFLOW = 0xc02069fe + SIOCGETPFSYNC = 0xc02069f8 + SIOCGETSGCNT = 0xc0207534 + SIOCGETVIFCNT = 0xc0287533 + SIOCGETVLAN = 0xc0206990 + SIOCGIFADDR = 0xc0206921 + SIOCGIFBRDADDR = 0xc0206923 + SIOCGIFCONF = 0xc0106924 + SIOCGIFDATA = 0xc020691b + SIOCGIFDESCR = 0xc0206981 + SIOCGIFDSTADDR = 0xc0206922 + SIOCGIFFLAGS = 0xc0206911 + SIOCGIFGATTR = 0xc028698b + SIOCGIFGENERIC = 0xc020693a + SIOCGIFGLIST = 0xc028698d + SIOCGIFGMEMB = 0xc028698a + SIOCGIFGROUP = 0xc0286988 + SIOCGIFHARDMTU = 0xc02069a5 + SIOCGIFLLPRIO = 0xc02069b6 + SIOCGIFMEDIA = 0xc0406938 + SIOCGIFMETRIC = 0xc0206917 + SIOCGIFMTU = 0xc020697e + SIOCGIFNETMASK = 0xc0206925 + SIOCGIFPAIR = 0xc02069b1 + SIOCGIFPARENT = 0xc02069b3 + SIOCGIFPRIORITY = 0xc020699c + SIOCGIFRDOMAIN = 0xc02069a0 + SIOCGIFRTLABEL = 0xc0206983 + SIOCGIFRXR = 0x802069aa + SIOCGIFSFFPAGE = 0xc1126939 + SIOCGIFXFLAGS = 0xc020699e + SIOCGLIFPHYADDR = 0xc218694b + SIOCGLIFPHYDF = 0xc02069c2 + SIOCGLIFPHYECN = 0xc02069c8 + SIOCGLIFPHYRTABLE = 0xc02069a2 + SIOCGLIFPHYTTL = 0xc02069a9 + SIOCGPGRP = 0x40047309 + SIOCGPWE3 = 0xc0206998 + SIOCGPWE3CTRLWORD = 0xc02069dc + SIOCGPWE3FAT = 0xc02069dd + SIOCGPWE3NEIGHBOR = 0xc21869de + SIOCGRXHPRIO = 0xc02069db + SIOCGSPPPPARAMS = 0xc0206994 + SIOCGTXHPRIO = 0xc02069c6 + SIOCGUMBINFO = 0xc02069be + SIOCGUMBPARAM = 0xc02069c0 + SIOCGVH = 0xc02069f6 + SIOCGVNETFLOWID = 0xc02069c4 + SIOCGVNETID = 0xc02069a7 + SIOCIFAFATTACH = 0x801169ab + SIOCIFAFDETACH = 0x801169ac + SIOCIFCREATE = 0x8020697a + SIOCIFDESTROY = 0x80206979 + SIOCIFGCLONERS = 0xc0106978 + SIOCSETKALIVE = 0x801869a3 + SIOCSETLABEL = 0x80206999 + SIOCSETMPWCFG = 0x802069ad + SIOCSETPFLOW = 0x802069fd + SIOCSETPFSYNC = 0x802069f7 + SIOCSETVLAN = 0x8020698f + SIOCSIFADDR = 0x8020690c + SIOCSIFBRDADDR = 0x80206913 + SIOCSIFDESCR = 0x80206980 + SIOCSIFDSTADDR = 0x8020690e + SIOCSIFFLAGS = 0x80206910 + SIOCSIFGATTR = 0x8028698c + SIOCSIFGENERIC = 0x80206939 + SIOCSIFLLADDR = 0x8020691f + SIOCSIFLLPRIO = 0x802069b5 + SIOCSIFMEDIA = 0xc0206937 + SIOCSIFMETRIC = 0x80206918 + SIOCSIFMTU = 0x8020697f + SIOCSIFNETMASK = 0x80206916 + SIOCSIFPAIR = 0x802069b0 + SIOCSIFPARENT = 0x802069b2 + SIOCSIFPRIORITY = 0x8020699b + SIOCSIFRDOMAIN = 0x8020699f + SIOCSIFRTLABEL = 0x80206982 + SIOCSIFXFLAGS = 0x8020699d + SIOCSLIFPHYADDR = 0x8218694a + SIOCSLIFPHYDF = 0x802069c1 + SIOCSLIFPHYECN = 0x802069c7 + SIOCSLIFPHYRTABLE = 0x802069a1 + SIOCSLIFPHYTTL = 0x802069a8 + SIOCSPGRP = 0x80047308 + SIOCSPWE3CTRLWORD = 0x802069dc + SIOCSPWE3FAT = 0x802069dd + SIOCSPWE3NEIGHBOR = 0x821869de + SIOCSRXHPRIO = 0x802069db + SIOCSSPPPPARAMS = 0x80206993 + SIOCSTXHPRIO = 0x802069c5 + SIOCSUMBPARAM = 0x802069bf + SIOCSVH = 0xc02069f5 + SIOCSVNETFLOWID = 0x802069c3 + SIOCSVNETID = 0x802069a6 + SIOCSWGDPID = 0xc018695b + SIOCSWGMAXFLOW = 0xc0186960 + SIOCSWGMAXGROUP = 0xc018695d + SIOCSWSDPID = 0x8018695c + SIOCSWSPORTNO = 0xc060695f + SOCK_CLOEXEC = 0x8000 + SOCK_DGRAM = 0x2 + SOCK_DNS = 0x1000 + SOCK_NONBLOCK = 0x4000 + SOCK_RAW = 0x3 + SOCK_RDM = 0x4 + SOCK_SEQPACKET = 0x5 + SOCK_STREAM = 0x1 + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_BINDANY = 0x1000 + SO_BROADCAST = 0x20 + SO_DEBUG = 0x1 + SO_DOMAIN = 0x1024 + SO_DONTROUTE = 0x10 + SO_ERROR = 0x1007 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_NETPROC = 0x1020 + SO_OOBINLINE = 0x100 + SO_PEERCRED = 0x1022 + SO_PROTOCOL = 0x1025 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVTIMEO = 0x1006 + SO_REUSEADDR = 0x4 + SO_REUSEPORT = 0x200 + SO_RTABLE = 0x1021 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_SPLICE = 0x1023 + SO_TIMESTAMP = 0x800 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_ZEROIZE = 0x2000 + TCIFLUSH = 0x1 + TCIOFLUSH = 0x3 + TCOFLUSH = 0x2 + TCP_MAXBURST = 0x4 + TCP_MAXSEG = 0x2 + TCP_MAXWIN = 0xffff + TCP_MAX_SACK = 0x3 + TCP_MAX_WINSHIFT = 0xe + TCP_MD5SIG = 0x4 + TCP_MSS = 0x200 + TCP_NODELAY = 0x1 + TCP_NOPUSH = 0x10 + TCP_SACKHOLE_LIMIT = 0x80 + TCP_SACK_ENABLE = 0x8 + TCSAFLUSH = 0x2 + TIOCCBRK = 0x2000747a + TIOCCDTR = 0x20007478 + TIOCCHKVERAUTH = 0x2000741e + TIOCCLRVERAUTH = 0x2000741d + TIOCCONS = 0x80047462 + TIOCDRAIN = 0x2000745e + TIOCEXCL = 0x2000740d + TIOCEXT = 0x80047460 + TIOCFLAG_CLOCAL = 0x2 + TIOCFLAG_CRTSCTS = 0x4 + TIOCFLAG_MDMBUF = 0x8 + TIOCFLAG_PPS = 0x10 + TIOCFLAG_SOFTCAR = 0x1 + TIOCFLUSH = 0x80047410 + TIOCGETA = 0x402c7413 + TIOCGETD = 0x4004741a + TIOCGFLAGS = 0x4004745d + TIOCGPGRP = 0x40047477 + TIOCGSID = 0x40047463 + TIOCGTSTAMP = 0x4010745b + TIOCGWINSZ = 0x40087468 + TIOCMBIC = 0x8004746b + TIOCMBIS = 0x8004746c + TIOCMGET = 0x4004746a + TIOCMODG = 0x4004746a + TIOCMODS = 0x8004746d + TIOCMSET = 0x8004746d + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x20007471 + TIOCNXCL = 0x2000740e + TIOCOUTQ = 0x40047473 + TIOCPKT = 0x80047470 + TIOCPKT_DATA = 0x0 + TIOCPKT_DOSTOP = 0x20 + TIOCPKT_FLUSHREAD = 0x1 + TIOCPKT_FLUSHWRITE = 0x2 + TIOCPKT_IOCTL = 0x40 + TIOCPKT_NOSTOP = 0x10 + TIOCPKT_START = 0x8 + TIOCPKT_STOP = 0x4 + TIOCREMOTE = 0x80047469 + TIOCSBRK = 0x2000747b + TIOCSCTTY = 0x20007461 + TIOCSDTR = 0x20007479 + TIOCSETA = 0x802c7414 + TIOCSETAF = 0x802c7416 + TIOCSETAW = 0x802c7415 + TIOCSETD = 0x8004741b + TIOCSETVERAUTH = 0x8004741c + TIOCSFLAGS = 0x8004745c + TIOCSIG = 0x8004745f + TIOCSPGRP = 0x80047476 + TIOCSTART = 0x2000746e + TIOCSTAT = 0x20007465 + TIOCSTOP = 0x2000746f + TIOCSTSTAMP = 0x8008745a + TIOCSWINSZ = 0x80087467 + TIOCUCNTL = 0x80047466 + TIOCUCNTL_CBRK = 0x7a + TIOCUCNTL_SBRK = 0x7b + TOSTOP = 0x400000 + VDISCARD = 0xf + VDSUSP = 0xb + VEOF = 0x0 + VEOL = 0x1 + VEOL2 = 0x2 + VERASE = 0x3 + VINTR = 0x8 + VKILL = 0x5 + VLNEXT = 0xe + VMIN = 0x10 + VQUIT = 0x9 + VREPRINT = 0x6 + VSTART = 0xc + VSTATUS = 0x12 + VSTOP = 0xd + VSUSP = 0xa + VTIME = 0x11 + VWERASE = 0x4 + WALTSIG = 0x4 + WCONTINUED = 0x8 + WCOREFLAG = 0x80 + WNOHANG = 0x1 + WUNTRACED = 0x2 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x30) + EADDRNOTAVAIL = Errno(0x31) + EAFNOSUPPORT = Errno(0x2f) + EAGAIN = Errno(0x23) + EALREADY = Errno(0x25) + EAUTH = Errno(0x50) + EBADF = Errno(0x9) + EBADMSG = Errno(0x5c) + EBADRPC = Errno(0x48) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x58) + ECHILD = Errno(0xa) + ECONNABORTED = Errno(0x35) + ECONNREFUSED = Errno(0x3d) + ECONNRESET = Errno(0x36) + EDEADLK = Errno(0xb) + EDESTADDRREQ = Errno(0x27) + EDOM = Errno(0x21) + EDQUOT = Errno(0x45) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EFTYPE = Errno(0x4f) + EHOSTDOWN = Errno(0x40) + EHOSTUNREACH = Errno(0x41) + EIDRM = Errno(0x59) + EILSEQ = Errno(0x54) + EINPROGRESS = Errno(0x24) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EIPSEC = Errno(0x52) + EISCONN = Errno(0x38) + EISDIR = Errno(0x15) + ELAST = Errno(0x5f) + ELOOP = Errno(0x3e) + EMEDIUMTYPE = Errno(0x56) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x28) + ENAMETOOLONG = Errno(0x3f) + ENEEDAUTH = Errno(0x51) + ENETDOWN = Errno(0x32) + ENETRESET = Errno(0x34) + ENETUNREACH = Errno(0x33) + ENFILE = Errno(0x17) + ENOATTR = Errno(0x53) + ENOBUFS = Errno(0x37) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x4d) + ENOMEDIUM = Errno(0x55) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x5a) + ENOPROTOOPT = Errno(0x2a) + ENOSPC = Errno(0x1c) + ENOSYS = Errno(0x4e) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x39) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x42) + ENOTRECOVERABLE = Errno(0x5d) + ENOTSOCK = Errno(0x26) + ENOTSUP = Errno(0x5b) + ENOTTY = Errno(0x19) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x2d) + EOVERFLOW = Errno(0x57) + EOWNERDEAD = Errno(0x5e) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x2e) + EPIPE = Errno(0x20) + EPROCLIM = Errno(0x43) + EPROCUNAVAIL = Errno(0x4c) + EPROGMISMATCH = Errno(0x4b) + EPROGUNAVAIL = Errno(0x4a) + EPROTO = Errno(0x5f) + EPROTONOSUPPORT = Errno(0x2b) + EPROTOTYPE = Errno(0x29) + ERANGE = Errno(0x22) + EREMOTE = Errno(0x47) + EROFS = Errno(0x1e) + ERPCMISMATCH = Errno(0x49) + ESHUTDOWN = Errno(0x3a) + ESOCKTNOSUPPORT = Errno(0x2c) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESTALE = Errno(0x46) + ETIMEDOUT = Errno(0x3c) + ETOOMANYREFS = Errno(0x3b) + ETXTBSY = Errno(0x1a) + EUSERS = Errno(0x44) + EWOULDBLOCK = Errno(0x23) + EXDEV = Errno(0x12) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCHLD = Signal(0x14) + SIGCONT = Signal(0x13) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINFO = Signal(0x1d) + SIGINT = Signal(0x2) + SIGIO = Signal(0x17) + SIGIOT = Signal(0x6) + SIGKILL = Signal(0x9) + SIGPIPE = Signal(0xd) + SIGPROF = Signal(0x1b) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x11) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTHR = Signal(0x20) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x12) + SIGTTIN = Signal(0x15) + SIGTTOU = Signal(0x16) + SIGURG = Signal(0x10) + SIGUSR1 = Signal(0x1e) + SIGUSR2 = Signal(0x1f) + SIGVTALRM = Signal(0x1a) + SIGWINCH = Signal(0x1c) + SIGXCPU = Signal(0x18) + SIGXFSZ = Signal(0x19) +) diff --git a/runtime/internal/clite/syscall/zerrors_solaris_amd64.go b/runtime/internal/clite/syscall/zerrors_solaris_amd64.go new file mode 100644 index 00000000..d3da33f6 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_solaris_amd64.go @@ -0,0 +1,1247 @@ +// mkerrors.sh -m64 +// Code generated by the command above; DO NOT EDIT. + +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -m64 _const.go + +//go:build amd64 && solaris + +package syscall + +const ( + AF_802 = 0x12 + AF_APPLETALK = 0x10 + AF_CCITT = 0xa + AF_CHAOS = 0x5 + AF_DATAKIT = 0x9 + AF_DECnet = 0xc + AF_DLI = 0xd + AF_ECMA = 0x8 + AF_FILE = 0x1 + AF_GOSIP = 0x16 + AF_HYLINK = 0xf + AF_IMPLINK = 0x3 + AF_INET = 0x2 + AF_INET6 = 0x1a + AF_INET_OFFLOAD = 0x1e + AF_IPX = 0x17 + AF_KEY = 0x1b + AF_LAT = 0xe + AF_LINK = 0x19 + AF_LOCAL = 0x1 + AF_MAX = 0x20 + AF_NBS = 0x7 + AF_NCA = 0x1c + AF_NIT = 0x11 + AF_NS = 0x6 + AF_OSI = 0x13 + AF_OSINET = 0x15 + AF_PACKET = 0x20 + AF_POLICY = 0x1d + AF_PUP = 0x4 + AF_ROUTE = 0x18 + AF_SNA = 0xb + AF_TRILL = 0x1f + AF_UNIX = 0x1 + AF_UNSPEC = 0x0 + AF_X25 = 0x14 + ARPHRD_ARCNET = 0x7 + ARPHRD_ATM = 0x10 + ARPHRD_AX25 = 0x3 + ARPHRD_CHAOS = 0x5 + ARPHRD_EETHER = 0x2 + ARPHRD_ETHER = 0x1 + ARPHRD_FC = 0x12 + ARPHRD_FRAME = 0xf + ARPHRD_HDLC = 0x11 + ARPHRD_IB = 0x20 + ARPHRD_IEEE802 = 0x6 + ARPHRD_IPATM = 0x13 + ARPHRD_METRICOM = 0x17 + ARPHRD_TUNNEL = 0x1f + B0 = 0x0 + B110 = 0x3 + B115200 = 0x12 + B1200 = 0x9 + B134 = 0x4 + B150 = 0x5 + B153600 = 0x13 + B1800 = 0xa + B19200 = 0xe + B200 = 0x6 + B230400 = 0x14 + B2400 = 0xb + B300 = 0x7 + B307200 = 0x15 + B38400 = 0xf + B460800 = 0x16 + B4800 = 0xc + B50 = 0x1 + B57600 = 0x10 + B600 = 0x8 + B75 = 0x2 + B76800 = 0x11 + B921600 = 0x17 + B9600 = 0xd + BIOCFLUSH = 0x20004268 + BIOCGBLEN = 0x40044266 + BIOCGDLT = 0x4004426a + BIOCGDLTLIST = -0x3fefbd89 + BIOCGDLTLIST32 = -0x3ff7bd89 + BIOCGETIF = 0x4020426b + BIOCGETLIF = 0x4078426b + BIOCGHDRCMPLT = 0x40044274 + BIOCGRTIMEOUT = 0x4010427b + BIOCGRTIMEOUT32 = 0x4008427b + BIOCGSEESENT = 0x40044278 + BIOCGSTATS = 0x4080426f + BIOCGSTATSOLD = 0x4008426f + BIOCIMMEDIATE = -0x7ffbbd90 + BIOCPROMISC = 0x20004269 + BIOCSBLEN = -0x3ffbbd9a + BIOCSDLT = -0x7ffbbd8a + BIOCSETF = -0x7fefbd99 + BIOCSETF32 = -0x7ff7bd99 + BIOCSETIF = -0x7fdfbd94 + BIOCSETLIF = -0x7f87bd94 + BIOCSHDRCMPLT = -0x7ffbbd8b + BIOCSRTIMEOUT = -0x7fefbd86 + BIOCSRTIMEOUT32 = -0x7ff7bd86 + BIOCSSEESENT = -0x7ffbbd87 + BIOCSTCPF = -0x7fefbd8e + BIOCSUDPF = -0x7fefbd8d + BIOCVERSION = 0x40044271 + BPF_A = 0x10 + BPF_ABS = 0x20 + BPF_ADD = 0x0 + BPF_ALIGNMENT = 0x4 + BPF_ALU = 0x4 + BPF_AND = 0x50 + BPF_B = 0x10 + BPF_DFLTBUFSIZE = 0x100000 + BPF_DIV = 0x30 + BPF_H = 0x8 + BPF_IMM = 0x0 + BPF_IND = 0x40 + BPF_JA = 0x0 + BPF_JEQ = 0x10 + BPF_JGE = 0x30 + BPF_JGT = 0x20 + BPF_JMP = 0x5 + BPF_JSET = 0x40 + BPF_K = 0x0 + BPF_LD = 0x0 + BPF_LDX = 0x1 + BPF_LEN = 0x80 + BPF_LSH = 0x60 + BPF_MAJOR_VERSION = 0x1 + BPF_MAXBUFSIZE = 0x1000000 + BPF_MAXINSNS = 0x200 + BPF_MEM = 0x60 + BPF_MEMWORDS = 0x10 + BPF_MINBUFSIZE = 0x20 + BPF_MINOR_VERSION = 0x1 + BPF_MISC = 0x7 + BPF_MSH = 0xa0 + BPF_MUL = 0x20 + BPF_NEG = 0x80 + BPF_OR = 0x40 + BPF_RELEASE = 0x30bb6 + BPF_RET = 0x6 + BPF_RSH = 0x70 + BPF_ST = 0x2 + BPF_STX = 0x3 + BPF_SUB = 0x10 + BPF_TAX = 0x0 + BPF_TXA = 0x80 + BPF_W = 0x0 + BPF_X = 0x8 + BRKINT = 0x2 + CFLUSH = 0xf + CLOCAL = 0x800 + CREAD = 0x80 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSIZE = 0x30 + CSTART = 0x11 + CSTOP = 0x13 + CSTOPB = 0x40 + CSUSP = 0x1a + CSWTCH = 0x1a + DLT_AIRONET_HEADER = 0x78 + DLT_APPLE_IP_OVER_IEEE1394 = 0x8a + DLT_ARCNET = 0x7 + DLT_ARCNET_LINUX = 0x81 + DLT_ATM_CLIP = 0x13 + DLT_ATM_RFC1483 = 0xb + DLT_AURORA = 0x7e + DLT_AX25 = 0x3 + DLT_BACNET_MS_TP = 0xa5 + DLT_CHAOS = 0x5 + DLT_CISCO_IOS = 0x76 + DLT_C_HDLC = 0x68 + DLT_DOCSIS = 0x8f + DLT_ECONET = 0x73 + DLT_EN10MB = 0x1 + DLT_EN3MB = 0x2 + DLT_ENC = 0x6d + DLT_ERF_ETH = 0xaf + DLT_ERF_POS = 0xb0 + DLT_FDDI = 0xa + DLT_FRELAY = 0x6b + DLT_GCOM_SERIAL = 0xad + DLT_GCOM_T1E1 = 0xac + DLT_GPF_F = 0xab + DLT_GPF_T = 0xaa + DLT_GPRS_LLC = 0xa9 + DLT_HDLC = 0x10 + DLT_HHDLC = 0x79 + DLT_HIPPI = 0xf + DLT_IBM_SN = 0x92 + DLT_IBM_SP = 0x91 + DLT_IEEE802 = 0x6 + DLT_IEEE802_11 = 0x69 + DLT_IEEE802_11_RADIO = 0x7f + DLT_IEEE802_11_RADIO_AVS = 0xa3 + DLT_IPNET = 0xe2 + DLT_IPOIB = 0xa2 + DLT_IP_OVER_FC = 0x7a + DLT_JUNIPER_ATM1 = 0x89 + DLT_JUNIPER_ATM2 = 0x87 + DLT_JUNIPER_CHDLC = 0xb5 + DLT_JUNIPER_ES = 0x84 + DLT_JUNIPER_ETHER = 0xb2 + DLT_JUNIPER_FRELAY = 0xb4 + DLT_JUNIPER_GGSN = 0x85 + DLT_JUNIPER_MFR = 0x86 + DLT_JUNIPER_MLFR = 0x83 + DLT_JUNIPER_MLPPP = 0x82 + DLT_JUNIPER_MONITOR = 0xa4 + DLT_JUNIPER_PIC_PEER = 0xae + DLT_JUNIPER_PPP = 0xb3 + DLT_JUNIPER_PPPOE = 0xa7 + DLT_JUNIPER_PPPOE_ATM = 0xa8 + DLT_JUNIPER_SERVICES = 0x88 + DLT_LINUX_IRDA = 0x90 + DLT_LINUX_LAPD = 0xb1 + DLT_LINUX_SLL = 0x71 + DLT_LOOP = 0x6c + DLT_LTALK = 0x72 + DLT_MTP2 = 0x8c + DLT_MTP2_WITH_PHDR = 0x8b + DLT_MTP3 = 0x8d + DLT_NULL = 0x0 + DLT_PCI_EXP = 0x7d + DLT_PFLOG = 0x75 + DLT_PFSYNC = 0x12 + DLT_PPP = 0x9 + DLT_PPP_BSDOS = 0xe + DLT_PPP_PPPD = 0xa6 + DLT_PRISM_HEADER = 0x77 + DLT_PRONET = 0x4 + DLT_RAW = 0xc + DLT_RAWAF_MASK = 0x2240000 + DLT_RIO = 0x7c + DLT_SCCP = 0x8e + DLT_SLIP = 0x8 + DLT_SLIP_BSDOS = 0xd + DLT_SUNATM = 0x7b + DLT_SYMANTEC_FIREWALL = 0x63 + DLT_TZSP = 0x80 + ECHO = 0x8 + ECHOCTL = 0x200 + ECHOE = 0x10 + ECHOK = 0x20 + ECHOKE = 0x800 + ECHONL = 0x40 + ECHOPRT = 0x400 + EMPTY_SET = 0x0 + EMT_CPCOVF = 0x1 + EQUALITY_CHECK = 0x0 + EXTA = 0xe + EXTB = 0xf + FD_CLOEXEC = 0x1 + FD_NFDBITS = 0x40 + FD_SETSIZE = 0x10000 + FLUSHALL = 0x1 + FLUSHDATA = 0x0 + FLUSHO = 0x2000 + F_ALLOCSP = 0xa + F_ALLOCSP64 = 0xa + F_BADFD = 0x2e + F_BLKSIZE = 0x13 + F_BLOCKS = 0x12 + F_CHKFL = 0x8 + F_COMPAT = 0x8 + F_DUP2FD = 0x9 + F_DUPFD = 0x0 + F_DUPFD_CLOEXEC = 0x25 + F_FREESP = 0xb + F_FREESP64 = 0xb + F_GETFD = 0x1 + F_GETFL = 0x3 + F_GETLK = 0xe + F_GETLK64 = 0xe + F_GETOWN = 0x17 + F_GETXFL = 0x2d + F_HASREMOTELOCKS = 0x1a + F_ISSTREAM = 0xd + F_MANDDNY = 0x10 + F_MDACC = 0x20 + F_NODNY = 0x0 + F_NPRIV = 0x10 + F_PRIV = 0xf + F_QUOTACTL = 0x11 + F_RDACC = 0x1 + F_RDDNY = 0x1 + F_RDLCK = 0x1 + F_REVOKE = 0x19 + F_RMACC = 0x4 + F_RMDNY = 0x4 + F_RWACC = 0x3 + F_RWDNY = 0x3 + F_SETFD = 0x2 + F_SETFL = 0x4 + F_SETLK = 0x6 + F_SETLK64 = 0x6 + F_SETLK64_NBMAND = 0x2a + F_SETLKW = 0x7 + F_SETLKW64 = 0x7 + F_SETLK_NBMAND = 0x2a + F_SETOWN = 0x18 + F_SHARE = 0x28 + F_SHARE_NBMAND = 0x2b + F_UNLCK = 0x3 + F_UNLKSYS = 0x4 + F_UNSHARE = 0x29 + F_WRACC = 0x2 + F_WRDNY = 0x2 + F_WRLCK = 0x2 + HUPCL = 0x400 + ICANON = 0x2 + ICRNL = 0x100 + IEXTEN = 0x8000 + IFF_ADDRCONF = 0x80000 + IFF_ALLMULTI = 0x200 + IFF_ANYCAST = 0x400000 + IFF_BROADCAST = 0x2 + IFF_CANTCHANGE = 0x7f203003b5a + IFF_COS_ENABLED = 0x200000000 + IFF_DEBUG = 0x4 + IFF_DEPRECATED = 0x40000 + IFF_DHCPRUNNING = 0x4000 + IFF_DUPLICATE = 0x4000000000 + IFF_FAILED = 0x10000000 + IFF_FIXEDMTU = 0x1000000000 + IFF_INACTIVE = 0x40000000 + IFF_INTELLIGENT = 0x400 + IFF_IPMP = 0x8000000000 + IFF_IPMP_CANTCHANGE = 0x10000000 + IFF_IPMP_INVALID = 0x1ec200080 + IFF_IPV4 = 0x1000000 + IFF_IPV6 = 0x2000000 + IFF_L3PROTECT = 0x40000000000 + IFF_LOOPBACK = 0x8 + IFF_MULTICAST = 0x800 + IFF_MULTI_BCAST = 0x1000 + IFF_NOACCEPT = 0x4000000 + IFF_NOARP = 0x80 + IFF_NOFAILOVER = 0x8000000 + IFF_NOLINKLOCAL = 0x20000000000 + IFF_NOLOCAL = 0x20000 + IFF_NONUD = 0x200000 + IFF_NORTEXCH = 0x800000 + IFF_NOTRAILERS = 0x20 + IFF_NOXMIT = 0x10000 + IFF_OFFLINE = 0x80000000 + IFF_POINTOPOINT = 0x10 + IFF_PREFERRED = 0x400000000 + IFF_PRIVATE = 0x8000 + IFF_PROMISC = 0x100 + IFF_ROUTER = 0x100000 + IFF_RUNNING = 0x40 + IFF_STANDBY = 0x20000000 + IFF_TEMPORARY = 0x800000000 + IFF_UNNUMBERED = 0x2000 + IFF_UP = 0x1 + IFF_VIRTUAL = 0x2000000000 + IFF_VRRP = 0x10000000000 + IFF_XRESOLV = 0x100000000 + IFNAMSIZ = 0x10 + IFT_1822 = 0x2 + IFT_6TO4 = 0xca + IFT_AAL5 = 0x31 + IFT_ARCNET = 0x23 + IFT_ARCNETPLUS = 0x24 + IFT_ATM = 0x25 + IFT_CEPT = 0x13 + IFT_DS3 = 0x1e + IFT_EON = 0x19 + IFT_ETHER = 0x6 + IFT_FDDI = 0xf + IFT_FRELAY = 0x20 + IFT_FRELAYDCE = 0x2c + IFT_HDH1822 = 0x3 + IFT_HIPPI = 0x2f + IFT_HSSI = 0x2e + IFT_HY = 0xe + IFT_IB = 0xc7 + IFT_IPV4 = 0xc8 + IFT_IPV6 = 0xc9 + IFT_ISDNBASIC = 0x14 + IFT_ISDNPRIMARY = 0x15 + IFT_ISO88022LLC = 0x29 + IFT_ISO88023 = 0x7 + IFT_ISO88024 = 0x8 + IFT_ISO88025 = 0x9 + IFT_ISO88026 = 0xa + IFT_LAPB = 0x10 + IFT_LOCALTALK = 0x2a + IFT_LOOP = 0x18 + IFT_MIOX25 = 0x26 + IFT_MODEM = 0x30 + IFT_NSIP = 0x1b + IFT_OTHER = 0x1 + IFT_P10 = 0xc + IFT_P80 = 0xd + IFT_PARA = 0x22 + IFT_PPP = 0x17 + IFT_PROPMUX = 0x36 + IFT_PROPVIRTUAL = 0x35 + IFT_PTPSERIAL = 0x16 + IFT_RS232 = 0x21 + IFT_SDLC = 0x11 + IFT_SIP = 0x1f + IFT_SLIP = 0x1c + IFT_SMDSDXI = 0x2b + IFT_SMDSICIP = 0x34 + IFT_SONET = 0x27 + IFT_SONETPATH = 0x32 + IFT_SONETVT = 0x33 + IFT_STARLAN = 0xb + IFT_T1 = 0x12 + IFT_ULTRA = 0x1d + IFT_V35 = 0x2d + IFT_X25 = 0x5 + IFT_X25DDN = 0x4 + IFT_X25PLE = 0x28 + IFT_XETHER = 0x1a + IGNBRK = 0x1 + IGNCR = 0x80 + IGNPAR = 0x4 + IMAXBEL = 0x2000 + INLCR = 0x40 + INPCK = 0x10 + IN_AUTOCONF_MASK = 0xffff0000 + IN_AUTOCONF_NET = 0xa9fe0000 + IN_CLASSA_HOST = 0xffffff + IN_CLASSA_MAX = 0x80 + IN_CLASSA_NET = 0xff000000 + IN_CLASSA_NSHIFT = 0x18 + IN_CLASSB_HOST = 0xffff + IN_CLASSB_MAX = 0x10000 + IN_CLASSB_NET = 0xffff0000 + IN_CLASSB_NSHIFT = 0x10 + IN_CLASSC_HOST = 0xff + IN_CLASSC_NET = 0xffffff00 + IN_CLASSC_NSHIFT = 0x8 + IN_CLASSD_HOST = 0xfffffff + IN_CLASSD_NET = 0xf0000000 + IN_CLASSD_NSHIFT = 0x1c + IN_CLASSE_NET = 0xffffffff + IN_LOOPBACKNET = 0x7f + IN_PRIVATE12_MASK = 0xfff00000 + IN_PRIVATE12_NET = 0xac100000 + IN_PRIVATE16_MASK = 0xffff0000 + IN_PRIVATE16_NET = 0xc0a80000 + IN_PRIVATE8_MASK = 0xff000000 + IN_PRIVATE8_NET = 0xa000000 + IPPROTO_AH = 0x33 + IPPROTO_DSTOPTS = 0x3c + IPPROTO_EGP = 0x8 + IPPROTO_ENCAP = 0x4 + IPPROTO_EON = 0x50 + IPPROTO_ESP = 0x32 + IPPROTO_FRAGMENT = 0x2c + IPPROTO_GGP = 0x3 + IPPROTO_HELLO = 0x3f + IPPROTO_HOPOPTS = 0x0 + IPPROTO_ICMP = 0x1 + IPPROTO_ICMPV6 = 0x3a + IPPROTO_IDP = 0x16 + IPPROTO_IGMP = 0x2 + IPPROTO_IP = 0x0 + IPPROTO_IPV6 = 0x29 + IPPROTO_MAX = 0x100 + IPPROTO_ND = 0x4d + IPPROTO_NONE = 0x3b + IPPROTO_OSPF = 0x59 + IPPROTO_PIM = 0x67 + IPPROTO_PUP = 0xc + IPPROTO_RAW = 0xff + IPPROTO_ROUTING = 0x2b + IPPROTO_RSVP = 0x2e + IPPROTO_SCTP = 0x84 + IPPROTO_TCP = 0x6 + IPPROTO_UDP = 0x11 + IPV6_ADD_MEMBERSHIP = 0x9 + IPV6_BOUND_IF = 0x41 + IPV6_CHECKSUM = 0x18 + IPV6_DONTFRAG = 0x21 + IPV6_DROP_MEMBERSHIP = 0xa + IPV6_DSTOPTS = 0xf + IPV6_FLOWINFO_FLOWLABEL = 0xffff0f00 + IPV6_FLOWINFO_TCLASS = 0xf00f + IPV6_HOPLIMIT = 0xc + IPV6_HOPOPTS = 0xe + IPV6_JOIN_GROUP = 0x9 + IPV6_LEAVE_GROUP = 0xa + IPV6_MULTICAST_HOPS = 0x7 + IPV6_MULTICAST_IF = 0x6 + IPV6_MULTICAST_LOOP = 0x8 + IPV6_NEXTHOP = 0xd + IPV6_PAD1_OPT = 0x0 + IPV6_PATHMTU = 0x25 + IPV6_PKTINFO = 0xb + IPV6_PREFER_SRC_CGA = 0x20 + IPV6_PREFER_SRC_CGADEFAULT = 0x10 + IPV6_PREFER_SRC_CGAMASK = 0x30 + IPV6_PREFER_SRC_COA = 0x2 + IPV6_PREFER_SRC_DEFAULT = 0x15 + IPV6_PREFER_SRC_HOME = 0x1 + IPV6_PREFER_SRC_MASK = 0x3f + IPV6_PREFER_SRC_MIPDEFAULT = 0x1 + IPV6_PREFER_SRC_MIPMASK = 0x3 + IPV6_PREFER_SRC_NONCGA = 0x10 + IPV6_PREFER_SRC_PUBLIC = 0x4 + IPV6_PREFER_SRC_TMP = 0x8 + IPV6_PREFER_SRC_TMPDEFAULT = 0x4 + IPV6_PREFER_SRC_TMPMASK = 0xc + IPV6_RECVDSTOPTS = 0x28 + IPV6_RECVHOPLIMIT = 0x13 + IPV6_RECVHOPOPTS = 0x14 + IPV6_RECVPATHMTU = 0x24 + IPV6_RECVPKTINFO = 0x12 + IPV6_RECVRTHDR = 0x16 + IPV6_RECVRTHDRDSTOPTS = 0x17 + IPV6_RECVTCLASS = 0x19 + IPV6_RTHDR = 0x10 + IPV6_RTHDRDSTOPTS = 0x11 + IPV6_RTHDR_TYPE_0 = 0x0 + IPV6_SEC_OPT = 0x22 + IPV6_SRC_PREFERENCES = 0x23 + IPV6_TCLASS = 0x26 + IPV6_UNICAST_HOPS = 0x5 + IPV6_UNSPEC_SRC = 0x42 + IPV6_USE_MIN_MTU = 0x20 + IPV6_V6ONLY = 0x27 + IP_ADD_MEMBERSHIP = 0x13 + IP_ADD_SOURCE_MEMBERSHIP = 0x17 + IP_BLOCK_SOURCE = 0x15 + IP_BOUND_IF = 0x41 + IP_BROADCAST = 0x106 + IP_BROADCAST_TTL = 0x43 + IP_DEFAULT_MULTICAST_LOOP = 0x1 + IP_DEFAULT_MULTICAST_TTL = 0x1 + IP_DF = 0x4000 + IP_DHCPINIT_IF = 0x45 + IP_DONTFRAG = 0x1b + IP_DONTROUTE = 0x105 + IP_DROP_MEMBERSHIP = 0x14 + IP_DROP_SOURCE_MEMBERSHIP = 0x18 + IP_HDRINCL = 0x2 + IP_MAXPACKET = 0xffff + IP_MF = 0x2000 + IP_MSS = 0x240 + IP_MULTICAST_IF = 0x10 + IP_MULTICAST_LOOP = 0x12 + IP_MULTICAST_TTL = 0x11 + IP_NEXTHOP = 0x19 + IP_OPTIONS = 0x1 + IP_PKTINFO = 0x1a + IP_RECVDSTADDR = 0x7 + IP_RECVIF = 0x9 + IP_RECVOPTS = 0x5 + IP_RECVPKTINFO = 0x1a + IP_RECVRETOPTS = 0x6 + IP_RECVSLLA = 0xa + IP_RECVTTL = 0xb + IP_RETOPTS = 0x8 + IP_REUSEADDR = 0x104 + IP_SEC_OPT = 0x22 + IP_TOS = 0x3 + IP_TTL = 0x4 + IP_UNBLOCK_SOURCE = 0x16 + IP_UNSPEC_SRC = 0x42 + ISIG = 0x1 + ISTRIP = 0x20 + IXANY = 0x800 + IXOFF = 0x1000 + IXON = 0x400 + MADV_ACCESS_DEFAULT = 0x6 + MADV_ACCESS_LWP = 0x7 + MADV_ACCESS_MANY = 0x8 + MADV_DONTNEED = 0x4 + MADV_FREE = 0x5 + MADV_NORMAL = 0x0 + MADV_RANDOM = 0x1 + MADV_SEQUENTIAL = 0x2 + MADV_WILLNEED = 0x3 + MAP_32BIT = 0x80 + MAP_ALIGN = 0x200 + MAP_ANON = 0x100 + MAP_ANONYMOUS = 0x100 + MAP_FILE = 0x0 + MAP_FIXED = 0x10 + MAP_INITDATA = 0x800 + MAP_NORESERVE = 0x40 + MAP_PRIVATE = 0x2 + MAP_RENAME = 0x20 + MAP_SHARED = 0x1 + MAP_TEXT = 0x400 + MAP_TYPE = 0xf + MCL_CURRENT = 0x1 + MCL_FUTURE = 0x2 + MSG_CTRUNC = 0x10 + MSG_DONTROUTE = 0x4 + MSG_DONTWAIT = 0x80 + MSG_DUPCTRL = 0x800 + MSG_EOR = 0x8 + MSG_MAXIOVLEN = 0x10 + MSG_NOTIFICATION = 0x100 + MSG_OOB = 0x1 + MSG_PEEK = 0x2 + MSG_TRUNC = 0x20 + MSG_WAITALL = 0x40 + MSG_XPG4_2 = 0x8000 + MS_ASYNC = 0x1 + MS_INVALIDATE = 0x2 + MS_OLDSYNC = 0x0 + MS_SYNC = 0x4 + M_FLUSH = 0x86 + NOFLSH = 0x80 + OCRNL = 0x8 + OFDEL = 0x80 + OFILL = 0x40 + ONLCR = 0x4 + ONLRET = 0x20 + ONOCR = 0x10 + OPENFAIL = -0x1 + OPOST = 0x1 + O_ACCMODE = 0x600003 + O_APPEND = 0x8 + O_CLOEXEC = 0x800000 + O_CREAT = 0x100 + O_DSYNC = 0x40 + O_EXCL = 0x400 + O_EXEC = 0x400000 + O_LARGEFILE = 0x2000 + O_NDELAY = 0x4 + O_NOCTTY = 0x800 + O_NOFOLLOW = 0x20000 + O_NOLINKS = 0x40000 + O_NONBLOCK = 0x80 + O_RDONLY = 0x0 + O_RDWR = 0x2 + O_RSYNC = 0x8000 + O_SEARCH = 0x200000 + O_SIOCGIFCONF = -0x3ff796ec + O_SIOCGLIFCONF = -0x3fef9688 + O_SYNC = 0x10 + O_TRUNC = 0x200 + O_WRONLY = 0x1 + O_XATTR = 0x4000 + PARENB = 0x100 + PAREXT = 0x100000 + PARMRK = 0x8 + PARODD = 0x200 + PENDIN = 0x4000 + PRIO_PGRP = 0x1 + PRIO_PROCESS = 0x0 + PRIO_USER = 0x2 + PROT_EXEC = 0x4 + PROT_NONE = 0x0 + PROT_READ = 0x1 + PROT_WRITE = 0x2 + RLIMIT_AS = 0x6 + RLIMIT_CORE = 0x4 + RLIMIT_CPU = 0x0 + RLIMIT_DATA = 0x2 + RLIMIT_FSIZE = 0x1 + RLIMIT_NOFILE = 0x5 + RLIMIT_STACK = 0x3 + RLIM_INFINITY = -0x3 + RTAX_AUTHOR = 0x6 + RTAX_BRD = 0x7 + RTAX_DST = 0x0 + RTAX_GATEWAY = 0x1 + RTAX_GENMASK = 0x3 + RTAX_IFA = 0x5 + RTAX_IFP = 0x4 + RTAX_MAX = 0x9 + RTAX_NETMASK = 0x2 + RTAX_SRC = 0x8 + RTA_AUTHOR = 0x40 + RTA_BRD = 0x80 + RTA_DST = 0x1 + RTA_GATEWAY = 0x2 + RTA_GENMASK = 0x8 + RTA_IFA = 0x20 + RTA_IFP = 0x10 + RTA_NETMASK = 0x4 + RTA_NUMBITS = 0x9 + RTA_SRC = 0x100 + RTF_BLACKHOLE = 0x1000 + RTF_CLONING = 0x100 + RTF_DONE = 0x40 + RTF_DYNAMIC = 0x10 + RTF_GATEWAY = 0x2 + RTF_HOST = 0x4 + RTF_INDIRECT = 0x40000 + RTF_KERNEL = 0x80000 + RTF_LLINFO = 0x400 + RTF_MASK = 0x80 + RTF_MODIFIED = 0x20 + RTF_MULTIRT = 0x10000 + RTF_PRIVATE = 0x2000 + RTF_PROTO1 = 0x8000 + RTF_PROTO2 = 0x4000 + RTF_REJECT = 0x8 + RTF_SETSRC = 0x20000 + RTF_STATIC = 0x800 + RTF_UP = 0x1 + RTF_XRESOLVE = 0x200 + RTF_ZONE = 0x100000 + RTM_ADD = 0x1 + RTM_CHANGE = 0x3 + RTM_CHGADDR = 0xf + RTM_DELADDR = 0xd + RTM_DELETE = 0x2 + RTM_FREEADDR = 0x10 + RTM_GET = 0x4 + RTM_IFINFO = 0xe + RTM_LOCK = 0x8 + RTM_LOSING = 0x5 + RTM_MISS = 0x7 + RTM_NEWADDR = 0xc + RTM_OLDADD = 0x9 + RTM_OLDDEL = 0xa + RTM_REDIRECT = 0x6 + RTM_RESOLVE = 0xb + RTM_VERSION = 0x3 + RTV_EXPIRE = 0x4 + RTV_HOPCOUNT = 0x2 + RTV_MTU = 0x1 + RTV_RPIPE = 0x8 + RTV_RTT = 0x40 + RTV_RTTVAR = 0x80 + RTV_SPIPE = 0x10 + RTV_SSTHRESH = 0x20 + RT_AWARE = 0x1 + RUSAGE_CHILDREN = -0x1 + RUSAGE_SELF = 0x0 + SCM_RIGHTS = 0x1010 + SCM_TIMESTAMP = 0x1013 + SCM_UCRED = 0x1012 + SHUT_RD = 0x0 + SHUT_RDWR = 0x2 + SHUT_WR = 0x1 + SIG2STR_MAX = 0x20 + SIOCADDMULTI = -0x7fdf96cf + SIOCADDRT = -0x7fcf8df6 + SIOCATMARK = 0x40047307 + SIOCDARP = -0x7fdb96e0 + SIOCDELMULTI = -0x7fdf96ce + SIOCDELRT = -0x7fcf8df5 + SIOCDIPSECONFIG = -0x7ffb9669 + SIOCDXARP = -0x7fff9658 + SIOCFIPSECONFIG = -0x7ffb966b + SIOCGARP = -0x3fdb96e1 + SIOCGDSTINFO = -0x3fff965c + SIOCGENADDR = -0x3fdf96ab + SIOCGENPSTATS = -0x3fdf96c7 + SIOCGETLSGCNT = -0x3fef8deb + SIOCGETNAME = 0x40107334 + SIOCGETPEER = 0x40107335 + SIOCGETPROP = -0x3fff8f44 + SIOCGETSGCNT = -0x3feb8deb + SIOCGETSYNC = -0x3fdf96d3 + SIOCGETVIFCNT = -0x3feb8dec + SIOCGHIWAT = 0x40047301 + SIOCGIFADDR = -0x3fdf96f3 + SIOCGIFBRDADDR = -0x3fdf96e9 + SIOCGIFCONF = -0x3ff796a4 + SIOCGIFDSTADDR = -0x3fdf96f1 + SIOCGIFFLAGS = -0x3fdf96ef + SIOCGIFHWADDR = -0x3fdf9647 + SIOCGIFINDEX = -0x3fdf96a6 + SIOCGIFMEM = -0x3fdf96ed + SIOCGIFMETRIC = -0x3fdf96e5 + SIOCGIFMTU = -0x3fdf96ea + SIOCGIFMUXID = -0x3fdf96a8 + SIOCGIFNETMASK = -0x3fdf96e7 + SIOCGIFNUM = 0x40046957 + SIOCGIP6ADDRPOLICY = -0x3fff965e + SIOCGIPMSFILTER = -0x3ffb964c + SIOCGLIFADDR = -0x3f87968f + SIOCGLIFBINDING = -0x3f879666 + SIOCGLIFBRDADDR = -0x3f879685 + SIOCGLIFCONF = -0x3fef965b + SIOCGLIFDADSTATE = -0x3f879642 + SIOCGLIFDSTADDR = -0x3f87968d + SIOCGLIFFLAGS = -0x3f87968b + SIOCGLIFGROUPINFO = -0x3f4b9663 + SIOCGLIFGROUPNAME = -0x3f879664 + SIOCGLIFHWADDR = -0x3f879640 + SIOCGLIFINDEX = -0x3f87967b + SIOCGLIFLNKINFO = -0x3f879674 + SIOCGLIFMETRIC = -0x3f879681 + SIOCGLIFMTU = -0x3f879686 + SIOCGLIFMUXID = -0x3f87967d + SIOCGLIFNETMASK = -0x3f879683 + SIOCGLIFNUM = -0x3ff3967e + SIOCGLIFSRCOF = -0x3fef964f + SIOCGLIFSUBNET = -0x3f879676 + SIOCGLIFTOKEN = -0x3f879678 + SIOCGLIFUSESRC = -0x3f879651 + SIOCGLIFZONE = -0x3f879656 + SIOCGLOWAT = 0x40047303 + SIOCGMSFILTER = -0x3ffb964e + SIOCGPGRP = 0x40047309 + SIOCGSTAMP = -0x3fef9646 + SIOCGXARP = -0x3fff9659 + SIOCIFDETACH = -0x7fdf96c8 + SIOCILB = -0x3ffb9645 + SIOCLIFADDIF = -0x3f879691 + SIOCLIFDELND = -0x7f879673 + SIOCLIFGETND = -0x3f879672 + SIOCLIFREMOVEIF = -0x7f879692 + SIOCLIFSETND = -0x7f879671 + SIOCLIPSECONFIG = -0x7ffb9668 + SIOCLOWER = -0x7fdf96d7 + SIOCSARP = -0x7fdb96e2 + SIOCSCTPGOPT = -0x3fef9653 + SIOCSCTPPEELOFF = -0x3ffb9652 + SIOCSCTPSOPT = -0x7fef9654 + SIOCSENABLESDP = -0x3ffb9649 + SIOCSETPROP = -0x7ffb8f43 + SIOCSETSYNC = -0x7fdf96d4 + SIOCSHIWAT = -0x7ffb8d00 + SIOCSIFADDR = -0x7fdf96f4 + SIOCSIFBRDADDR = -0x7fdf96e8 + SIOCSIFDSTADDR = -0x7fdf96f2 + SIOCSIFFLAGS = -0x7fdf96f0 + SIOCSIFINDEX = -0x7fdf96a5 + SIOCSIFMEM = -0x7fdf96ee + SIOCSIFMETRIC = -0x7fdf96e4 + SIOCSIFMTU = -0x7fdf96eb + SIOCSIFMUXID = -0x7fdf96a7 + SIOCSIFNAME = -0x7fdf96b7 + SIOCSIFNETMASK = -0x7fdf96e6 + SIOCSIP6ADDRPOLICY = -0x7fff965d + SIOCSIPMSFILTER = -0x7ffb964b + SIOCSIPSECONFIG = -0x7ffb966a + SIOCSLGETREQ = -0x3fdf96b9 + SIOCSLIFADDR = -0x7f879690 + SIOCSLIFBRDADDR = -0x7f879684 + SIOCSLIFDSTADDR = -0x7f87968e + SIOCSLIFFLAGS = -0x7f87968c + SIOCSLIFGROUPNAME = -0x7f879665 + SIOCSLIFINDEX = -0x7f87967a + SIOCSLIFLNKINFO = -0x7f879675 + SIOCSLIFMETRIC = -0x7f879680 + SIOCSLIFMTU = -0x7f879687 + SIOCSLIFMUXID = -0x7f87967c + SIOCSLIFNAME = -0x3f87967f + SIOCSLIFNETMASK = -0x7f879682 + SIOCSLIFPREFIX = -0x3f879641 + SIOCSLIFSUBNET = -0x7f879677 + SIOCSLIFTOKEN = -0x7f879679 + SIOCSLIFUSESRC = -0x7f879650 + SIOCSLIFZONE = -0x7f879655 + SIOCSLOWAT = -0x7ffb8cfe + SIOCSLSTAT = -0x7fdf96b8 + SIOCSMSFILTER = -0x7ffb964d + SIOCSPGRP = -0x7ffb8cf8 + SIOCSPROMISC = -0x7ffb96d0 + SIOCSQPTR = -0x3ffb9648 + SIOCSSDSTATS = -0x3fdf96d2 + SIOCSSESTATS = -0x3fdf96d1 + SIOCSXARP = -0x7fff965a + SIOCTMYADDR = -0x3ff79670 + SIOCTMYSITE = -0x3ff7966e + SIOCTONLINK = -0x3ff7966f + SIOCUPPER = -0x7fdf96d8 + SIOCX25RCV = -0x3fdf96c4 + SIOCX25TBL = -0x3fdf96c3 + SIOCX25XMT = -0x3fdf96c5 + SIOCXPROTO = 0x20007337 + SOCK_CLOEXEC = 0x80000 + SOCK_DGRAM = 0x1 + SOCK_NDELAY = 0x200000 + SOCK_NONBLOCK = 0x100000 + SOCK_RAW = 0x4 + SOCK_RDM = 0x5 + SOCK_SEQPACKET = 0x6 + SOCK_STREAM = 0x2 + SOCK_TYPE_MASK = 0xffff + SOL_FILTER = 0xfffc + SOL_PACKET = 0xfffd + SOL_ROUTE = 0xfffe + SOL_SOCKET = 0xffff + SOMAXCONN = 0x80 + SO_ACCEPTCONN = 0x2 + SO_ALL = 0x3f + SO_ALLZONES = 0x1014 + SO_ANON_MLP = 0x100a + SO_ATTACH_FILTER = 0x40000001 + SO_BAND = 0x4000 + SO_BROADCAST = 0x20 + SO_COPYOPT = 0x80000 + SO_DEBUG = 0x1 + SO_DELIM = 0x8000 + SO_DETACH_FILTER = 0x40000002 + SO_DGRAM_ERRIND = 0x200 + SO_DOMAIN = 0x100c + SO_DONTLINGER = -0x81 + SO_DONTROUTE = 0x10 + SO_ERROPT = 0x40000 + SO_ERROR = 0x1007 + SO_EXCLBIND = 0x1015 + SO_HIWAT = 0x10 + SO_ISNTTY = 0x800 + SO_ISTTY = 0x400 + SO_KEEPALIVE = 0x8 + SO_LINGER = 0x80 + SO_LOWAT = 0x20 + SO_MAC_EXEMPT = 0x100b + SO_MAC_IMPLICIT = 0x1016 + SO_MAXBLK = 0x100000 + SO_MAXPSZ = 0x8 + SO_MINPSZ = 0x4 + SO_MREADOFF = 0x80 + SO_MREADON = 0x40 + SO_NDELOFF = 0x200 + SO_NDELON = 0x100 + SO_NODELIM = 0x10000 + SO_OOBINLINE = 0x100 + SO_PROTOTYPE = 0x1009 + SO_RCVBUF = 0x1002 + SO_RCVLOWAT = 0x1004 + SO_RCVPSH = 0x100d + SO_RCVTIMEO = 0x1006 + SO_READOPT = 0x1 + SO_RECVUCRED = 0x400 + SO_REUSEADDR = 0x4 + SO_SECATTR = 0x1011 + SO_SNDBUF = 0x1001 + SO_SNDLOWAT = 0x1003 + SO_SNDTIMEO = 0x1005 + SO_STRHOLD = 0x20000 + SO_TAIL = 0x200000 + SO_TIMESTAMP = 0x1013 + SO_TONSTOP = 0x2000 + SO_TOSTOP = 0x1000 + SO_TYPE = 0x1008 + SO_USELOOPBACK = 0x40 + SO_VRRP = 0x1017 + SO_WROFF = 0x2 + TCFLSH = 0x5407 + TCIFLUSH = 0x0 + TCIOFLUSH = 0x2 + TCOFLUSH = 0x1 + TCP_ABORT_THRESHOLD = 0x11 + TCP_ANONPRIVBIND = 0x20 + TCP_CONN_ABORT_THRESHOLD = 0x13 + TCP_CONN_NOTIFY_THRESHOLD = 0x12 + TCP_CORK = 0x18 + TCP_EXCLBIND = 0x21 + TCP_INIT_CWND = 0x15 + TCP_KEEPALIVE = 0x8 + TCP_KEEPALIVE_ABORT_THRESHOLD = 0x17 + TCP_KEEPALIVE_THRESHOLD = 0x16 + TCP_KEEPCNT = 0x23 + TCP_KEEPIDLE = 0x22 + TCP_KEEPINTVL = 0x24 + TCP_LINGER2 = 0x1c + TCP_MAXSEG = 0x2 + TCP_MSS = 0x218 + TCP_NODELAY = 0x1 + TCP_NOTIFY_THRESHOLD = 0x10 + TCP_RECVDSTADDR = 0x14 + TCP_RTO_INITIAL = 0x19 + TCP_RTO_MAX = 0x1b + TCP_RTO_MIN = 0x1a + TCSAFLUSH = 0x5410 + TIOC = 0x5400 + TIOCCBRK = 0x747a + TIOCCDTR = 0x7478 + TIOCCILOOP = 0x746c + TIOCEXCL = 0x740d + TIOCFLUSH = 0x7410 + TIOCGETC = 0x7412 + TIOCGETD = 0x7400 + TIOCGETP = 0x7408 + TIOCGLTC = 0x7474 + TIOCGPGRP = 0x7414 + TIOCGPPS = 0x547d + TIOCGPPSEV = 0x547f + TIOCGSID = 0x7416 + TIOCGSOFTCAR = 0x5469 + TIOCGWINSZ = 0x5468 + TIOCHPCL = 0x7402 + TIOCKBOF = 0x5409 + TIOCKBON = 0x5408 + TIOCLBIC = 0x747e + TIOCLBIS = 0x747f + TIOCLGET = 0x747c + TIOCLSET = 0x747d + TIOCMBIC = 0x741c + TIOCMBIS = 0x741b + TIOCMGET = 0x741d + TIOCMSET = 0x741a + TIOCM_CAR = 0x40 + TIOCM_CD = 0x40 + TIOCM_CTS = 0x20 + TIOCM_DSR = 0x100 + TIOCM_DTR = 0x2 + TIOCM_LE = 0x1 + TIOCM_RI = 0x80 + TIOCM_RNG = 0x80 + TIOCM_RTS = 0x4 + TIOCM_SR = 0x10 + TIOCM_ST = 0x8 + TIOCNOTTY = 0x7471 + TIOCNXCL = 0x740e + TIOCOUTQ = 0x7473 + TIOCREMOTE = 0x741e + TIOCSBRK = 0x747b + TIOCSCTTY = 0x7484 + TIOCSDTR = 0x7479 + TIOCSETC = 0x7411 + TIOCSETD = 0x7401 + TIOCSETN = 0x740a + TIOCSETP = 0x7409 + TIOCSIGNAL = 0x741f + TIOCSILOOP = 0x746d + TIOCSLTC = 0x7475 + TIOCSPGRP = 0x7415 + TIOCSPPS = 0x547e + TIOCSSOFTCAR = 0x546a + TIOCSTART = 0x746e + TIOCSTI = 0x7417 + TIOCSTOP = 0x746f + TIOCSWINSZ = 0x5467 + TOSTOP = 0x100 + VCEOF = 0x8 + VCEOL = 0x9 + VDISCARD = 0xd + VDSUSP = 0xb + VEOF = 0x4 + VEOL = 0x5 + VEOL2 = 0x6 + VERASE = 0x2 + VINTR = 0x0 + VKILL = 0x3 + VLNEXT = 0xf + VMIN = 0x4 + VQUIT = 0x1 + VREPRINT = 0xc + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VSWTCH = 0x7 + VT0 = 0x0 + VT1 = 0x4000 + VTDLY = 0x4000 + VTIME = 0x5 + VWERASE = 0xe + WCONTFLG = 0xffff + WCONTINUED = 0x8 + WCOREFLG = 0x80 + WEXITED = 0x1 + WNOHANG = 0x40 + WNOWAIT = 0x80 + WOPTMASK = 0xcf + WRAP = 0x20000 + WSIGMASK = 0x7f + WSTOPFLG = 0x7f + WSTOPPED = 0x4 + WTRAPPED = 0x2 + WUNTRACED = 0x4 +) + +// Errors +const ( + E2BIG = Errno(0x7) + EACCES = Errno(0xd) + EADDRINUSE = Errno(0x7d) + EADDRNOTAVAIL = Errno(0x7e) + EADV = Errno(0x44) + EAFNOSUPPORT = Errno(0x7c) + EAGAIN = Errno(0xb) + EALREADY = Errno(0x95) + EBADE = Errno(0x32) + EBADF = Errno(0x9) + EBADFD = Errno(0x51) + EBADMSG = Errno(0x4d) + EBADR = Errno(0x33) + EBADRQC = Errno(0x36) + EBADSLT = Errno(0x37) + EBFONT = Errno(0x39) + EBUSY = Errno(0x10) + ECANCELED = Errno(0x2f) + ECHILD = Errno(0xa) + ECHRNG = Errno(0x25) + ECOMM = Errno(0x46) + ECONNABORTED = Errno(0x82) + ECONNREFUSED = Errno(0x92) + ECONNRESET = Errno(0x83) + EDEADLK = Errno(0x2d) + EDEADLOCK = Errno(0x38) + EDESTADDRREQ = Errno(0x60) + EDOM = Errno(0x21) + EDQUOT = Errno(0x31) + EEXIST = Errno(0x11) + EFAULT = Errno(0xe) + EFBIG = Errno(0x1b) + EHOSTDOWN = Errno(0x93) + EHOSTUNREACH = Errno(0x94) + EIDRM = Errno(0x24) + EILSEQ = Errno(0x58) + EINPROGRESS = Errno(0x96) + EINTR = Errno(0x4) + EINVAL = Errno(0x16) + EIO = Errno(0x5) + EISCONN = Errno(0x85) + EISDIR = Errno(0x15) + EL2HLT = Errno(0x2c) + EL2NSYNC = Errno(0x26) + EL3HLT = Errno(0x27) + EL3RST = Errno(0x28) + ELIBACC = Errno(0x53) + ELIBBAD = Errno(0x54) + ELIBEXEC = Errno(0x57) + ELIBMAX = Errno(0x56) + ELIBSCN = Errno(0x55) + ELNRNG = Errno(0x29) + ELOCKUNMAPPED = Errno(0x48) + ELOOP = Errno(0x5a) + EMFILE = Errno(0x18) + EMLINK = Errno(0x1f) + EMSGSIZE = Errno(0x61) + EMULTIHOP = Errno(0x4a) + ENAMETOOLONG = Errno(0x4e) + ENETDOWN = Errno(0x7f) + ENETRESET = Errno(0x81) + ENETUNREACH = Errno(0x80) + ENFILE = Errno(0x17) + ENOANO = Errno(0x35) + ENOBUFS = Errno(0x84) + ENOCSI = Errno(0x2b) + ENODATA = Errno(0x3d) + ENODEV = Errno(0x13) + ENOENT = Errno(0x2) + ENOEXEC = Errno(0x8) + ENOLCK = Errno(0x2e) + ENOLINK = Errno(0x43) + ENOMEM = Errno(0xc) + ENOMSG = Errno(0x23) + ENONET = Errno(0x40) + ENOPKG = Errno(0x41) + ENOPROTOOPT = Errno(0x63) + ENOSPC = Errno(0x1c) + ENOSR = Errno(0x3f) + ENOSTR = Errno(0x3c) + ENOSYS = Errno(0x59) + ENOTACTIVE = Errno(0x49) + ENOTBLK = Errno(0xf) + ENOTCONN = Errno(0x86) + ENOTDIR = Errno(0x14) + ENOTEMPTY = Errno(0x5d) + ENOTRECOVERABLE = Errno(0x3b) + ENOTSOCK = Errno(0x5f) + ENOTSUP = Errno(0x30) + ENOTTY = Errno(0x19) + ENOTUNIQ = Errno(0x50) + ENXIO = Errno(0x6) + EOPNOTSUPP = Errno(0x7a) + EOVERFLOW = Errno(0x4f) + EOWNERDEAD = Errno(0x3a) + EPERM = Errno(0x1) + EPFNOSUPPORT = Errno(0x7b) + EPIPE = Errno(0x20) + EPROTO = Errno(0x47) + EPROTONOSUPPORT = Errno(0x78) + EPROTOTYPE = Errno(0x62) + ERANGE = Errno(0x22) + EREMCHG = Errno(0x52) + EREMOTE = Errno(0x42) + ERESTART = Errno(0x5b) + EROFS = Errno(0x1e) + ESHUTDOWN = Errno(0x8f) + ESOCKTNOSUPPORT = Errno(0x79) + ESPIPE = Errno(0x1d) + ESRCH = Errno(0x3) + ESRMNT = Errno(0x45) + ESTALE = Errno(0x97) + ESTRPIPE = Errno(0x5c) + ETIME = Errno(0x3e) + ETIMEDOUT = Errno(0x91) + ETOOMANYREFS = Errno(0x90) + ETXTBSY = Errno(0x1a) + EUNATCH = Errno(0x2a) + EUSERS = Errno(0x5e) + EWOULDBLOCK = Errno(0xb) + EXDEV = Errno(0x12) + EXFULL = Errno(0x34) +) + +// Signals +const ( + SIGABRT = Signal(0x6) + SIGALRM = Signal(0xe) + SIGBUS = Signal(0xa) + SIGCANCEL = Signal(0x24) + SIGCHLD = Signal(0x12) + SIGCLD = Signal(0x12) + SIGCONT = Signal(0x19) + SIGEMT = Signal(0x7) + SIGFPE = Signal(0x8) + SIGFREEZE = Signal(0x22) + SIGHUP = Signal(0x1) + SIGILL = Signal(0x4) + SIGINT = Signal(0x2) + SIGIO = Signal(0x16) + SIGIOT = Signal(0x6) + SIGJVM1 = Signal(0x27) + SIGJVM2 = Signal(0x28) + SIGKILL = Signal(0x9) + SIGLOST = Signal(0x25) + SIGLWP = Signal(0x21) + SIGPIPE = Signal(0xd) + SIGPOLL = Signal(0x16) + SIGPROF = Signal(0x1d) + SIGPWR = Signal(0x13) + SIGQUIT = Signal(0x3) + SIGSEGV = Signal(0xb) + SIGSTOP = Signal(0x17) + SIGSYS = Signal(0xc) + SIGTERM = Signal(0xf) + SIGTHAW = Signal(0x23) + SIGTRAP = Signal(0x5) + SIGTSTP = Signal(0x18) + SIGTTIN = Signal(0x1a) + SIGTTOU = Signal(0x1b) + SIGURG = Signal(0x15) + SIGUSR1 = Signal(0x10) + SIGUSR2 = Signal(0x11) + SIGVTALRM = Signal(0x1c) + SIGWAITING = Signal(0x20) + SIGWINCH = Signal(0x14) + SIGXCPU = Signal(0x1e) + SIGXFSZ = Signal(0x1f) + SIGXRES = Signal(0x26) +) diff --git a/runtime/internal/clite/syscall/zerrors_windows.go b/runtime/internal/clite/syscall/zerrors_windows.go new file mode 100644 index 00000000..b56609d8 --- /dev/null +++ b/runtime/internal/clite/syscall/zerrors_windows.go @@ -0,0 +1,148 @@ +// mkerrors_windows.sh -m32 +// Code generated by the command above; DO NOT EDIT. + +package syscall + +// Go names for Windows errors. +const ( + ENOENT Errno = ERROR_FILE_NOT_FOUND + ENOTDIR Errno = ERROR_PATH_NOT_FOUND +) + +// Windows reserves errors >= 1<<29 for application use. +const APPLICATION_ERROR = 1 << 29 + +// Invented values to support what package os and others expects. +const ( + E2BIG Errno = APPLICATION_ERROR + iota + EACCES + EADDRINUSE + EADDRNOTAVAIL + EADV + EAFNOSUPPORT + EAGAIN + EALREADY + EBADE + EBADF + EBADFD + EBADMSG + EBADR + EBADRQC + EBADSLT + EBFONT + EBUSY + ECANCELED + ECHILD + ECHRNG + ECOMM + ECONNABORTED + ECONNREFUSED + ECONNRESET + EDEADLK + EDEADLOCK + EDESTADDRREQ + EDOM + EDOTDOT + EDQUOT + EEXIST + EFAULT + EFBIG + EHOSTDOWN + EHOSTUNREACH + EIDRM + EILSEQ + EINPROGRESS + EINTR + EINVAL + EIO + EISCONN + EISDIR + EISNAM + EKEYEXPIRED + EKEYREJECTED + EKEYREVOKED + EL2HLT + EL2NSYNC + EL3HLT + EL3RST + ELIBACC + ELIBBAD + ELIBEXEC + ELIBMAX + ELIBSCN + ELNRNG + ELOOP + EMEDIUMTYPE + EMFILE + EMLINK + EMSGSIZE + EMULTIHOP + ENAMETOOLONG + ENAVAIL + ENETDOWN + ENETRESET + ENETUNREACH + ENFILE + ENOANO + ENOBUFS + ENOCSI + ENODATA + ENODEV + ENOEXEC + ENOKEY + ENOLCK + ENOLINK + ENOMEDIUM + ENOMEM + ENOMSG + ENONET + ENOPKG + ENOPROTOOPT + ENOSPC + ENOSR + ENOSTR + ENOSYS + ENOTBLK + ENOTCONN + ENOTEMPTY + ENOTNAM + ENOTRECOVERABLE + ENOTSOCK + ENOTSUP + ENOTTY + ENOTUNIQ + ENXIO + EOPNOTSUPP + EOVERFLOW + EOWNERDEAD + EPERM + EPFNOSUPPORT + EPIPE + EPROTO + EPROTONOSUPPORT + EPROTOTYPE + ERANGE + EREMCHG + EREMOTE + EREMOTEIO + ERESTART + EROFS + ESHUTDOWN + ESOCKTNOSUPPORT + ESPIPE + ESRCH + ESRMNT + ESTALE + ESTRPIPE + ETIME + ETIMEDOUT + ETOOMANYREFS + ETXTBSY + EUCLEAN + EUNATCH + EUSERS + EWOULDBLOCK + EXDEV + EXFULL + EWINDOWS +) diff --git a/runtime/internal/clite/syscall/ztypes_aix_ppc64.go b/runtime/internal/clite/syscall/ztypes_aix_ppc64.go new file mode 100644 index 00000000..e7a25ece --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_aix_ppc64.go @@ -0,0 +1,288 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs types_aix.go | go run mkpost.go + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 + PathMax = 0x3ff +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + Pad_cgo_0 [4]byte +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +type Timezone struct { + Minuteswest int32 + Dsttime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Pid_t int32 + +type _Gid_t uint32 + +type Flock_t struct { + Type int16 + Whence int16 + Sysid uint32 + Pid int32 + Vfs int32 + Start int64 + Len int64 +} + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink int16 + Flag uint16 + Uid uint32 + Gid uint32 + Rdev uint64 + Ssize int32 + Atim StTimespec_t + Mtim StTimespec_t + Ctim StTimespec_t + Blksize int64 + Blocks int64 + Vfstype int32 + Vfs uint32 + Type uint32 + Gen uint32 + Reserved [9]uint32 + Padto_ll uint32 + Size int64 +} + +type Statfs_t struct { + Version int32 + Type int32 + Bsize uint64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid64_t + Vfstype int32 + Fsize uint64 + Vfsnumber int32 + Vfsoff int32 + Vfslen int32 + Vfsvers int32 + Fname [32]uint8 + Fpack [32]uint8 + Name_max int32 + Pad_cgo_0 [4]byte +} + +type Fsid64_t struct { + Val [2]uint64 +} + +type StTimespec_t struct { + Sec int64 + Nsec int32 + Pad_cgo_0 [4]byte +} + +type Dirent struct { + Offset uint64 + Ino uint64 + Reclen uint16 + Namlen uint16 + Name [256]uint8 + Pad_cgo_0 [4]byte +} + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [1023]uint8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [120]uint8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [1012]uint8 +} + +type _Socklen uint32 + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x404 + SizeofSockaddrUnix = 0x401 + SizeofSockaddrDatalink = 0x80 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +const ( + SizeofIfMsghdr = 0x10 +) + +type IfMsgHdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Addrlen uint8 + Pad_cgo_0 [1]byte +} + +type Utsname struct { + Sysname [32]uint8 + Nodename [32]uint8 + Release [32]uint8 + Version [32]uint8 + Machine [32]uint8 +} + +const ( + _AT_FDCWD = -0x2 + _AT_REMOVEDIR = 0x1 + _AT_SYMLINK_NOFOLLOW = 0x1 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [16]uint8 +} diff --git a/runtime/internal/clite/syscall/ztypes_darwin_amd64.go b/runtime/internal/clite/syscall/ztypes_darwin_amd64.go new file mode 100644 index 00000000..551edc70 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_darwin_amd64.go @@ -0,0 +1,466 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_darwin.go + +//go:build amd64 && darwin + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + Pad_cgo_0 [4]byte +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev int32 + Mode uint16 + Nlink uint16 + Ino uint64 + Uid uint32 + Gid uint32 + Rdev int32 + Pad_cgo_0 [4]byte + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare [2]int64 +} + +type Statfs_t struct { + Bsize uint32 + Iosize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Owner uint32 + Type uint32 + Flags uint32 + Fssubtype uint32 + Fstypename [16]int8 + Mntonname [1024]int8 + Mntfromname [1024]int8 + Reserved [8]uint32 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Fstore_t struct { + Flags uint32 + Posmode int32 + Offset int64 + Length int64 + Bytesalloc int64 +} + +type Radvisory_t struct { + Offset int64 + Count int32 + Pad_cgo_0 [4]byte +} + +type Fbootstraptransfer_t struct { + Offset int64 + Length uint64 + Buffer *byte +} + +type Log2phys_t struct { + Flags uint32 + Contigbytes int64 + Devoffset int64 +} + +type Fsid struct { + Val [2]int32 +} + +type Dirent struct { + Ino uint64 + Seekoff uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [1024]int8 + Pad_cgo_0 [3]byte +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen int32 + Pad_cgo_1 [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex uint32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]int32 +} + +const ( + SizeofIfMsghdr = 0x70 + SizeofIfData = 0x60 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfmaMsghdr2 = 0x14 + SizeofRtMsghdr = 0x5c + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type IfData struct { + Type uint8 + Typelen uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Recvquota uint8 + Xmitquota uint8 + Unused1 uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Recvtiming uint32 + Xmittiming uint32 + Lastchange Timeval32 + Unused2 uint32 + Hwassist uint32 + Reserved1 uint32 + Reserved2 uint32 +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte +} + +type IfmaMsghdr2 struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Refcount int32 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire int32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + Filler [4]uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Pad_cgo_0 [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval32 + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [2]byte +} + +const ( + _AT_FDCWD = -0x2 +) + +type Termios struct { + Iflag uint64 + Oflag uint64 + Cflag uint64 + Lflag uint64 + Cc [20]uint8 + Pad_cgo_0 [4]byte + Ispeed uint64 + Ospeed uint64 +} diff --git a/runtime/internal/clite/syscall/ztypes_darwin_arm64.go b/runtime/internal/clite/syscall/ztypes_darwin_arm64.go new file mode 100644 index 00000000..46f78a97 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_darwin_arm64.go @@ -0,0 +1,466 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_darwin.go + +//go:build arm64 && darwin + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + Pad_cgo_0 [4]byte +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev int32 + Mode uint16 + Nlink uint16 + Ino uint64 + Uid uint32 + Gid uint32 + Rdev int32 + Pad_cgo_0 [4]byte + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare [2]int64 +} + +type Statfs_t struct { + Bsize uint32 + Iosize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Owner uint32 + Type uint32 + Flags uint32 + Fssubtype uint32 + Fstypename [16]int8 + Mntonname [1024]int8 + Mntfromname [1024]int8 + Reserved [8]uint32 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Fstore_t struct { + Flags uint32 + Posmode int32 + Offset int64 + Length int64 + Bytesalloc int64 +} + +type Radvisory_t struct { + Offset int64 + Count int32 + Pad_cgo_0 [4]byte +} + +type Fbootstraptransfer_t struct { + Offset int64 + Length uint64 + Buffer *byte +} + +type Log2phys_t struct { + Flags uint32 + Contigbytes int64 + Devoffset int64 +} + +type Fsid struct { + Val [2]int32 +} + +type Dirent struct { + Ino uint64 + Seekoff uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [1024]int8 + Pad_cgo_0 [3]byte +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen int32 + Pad_cgo_1 [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex uint32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]int32 +} + +const ( + SizeofIfMsghdr = 0x70 + SizeofIfData = 0x60 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfmaMsghdr2 = 0x14 + SizeofRtMsghdr = 0x5c + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type IfData struct { + Type uint8 + Typelen uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Recvquota uint8 + Xmitquota uint8 + Unused1 uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Recvtiming uint32 + Xmittiming uint32 + Lastchange Timeval32 + Unused2 uint32 + Hwassist uint32 + Reserved1 uint32 + Reserved2 uint32 +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte +} + +type IfmaMsghdr2 struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Refcount int32 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire int32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + Filler [4]uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Pad_cgo_0 [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval32 + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [2]byte +} + +const ( + _AT_FDCWD = -0x2 +) + +type Termios struct { + Iflag uint64 + Oflag uint64 + Cflag uint64 + Lflag uint64 + Cc [20]uint8 + Pad_cgo_0 [4]byte + Ispeed uint64 + Ospeed uint64 +} diff --git a/runtime/internal/clite/syscall/ztypes_dragonfly_amd64.go b/runtime/internal/clite/syscall/ztypes_dragonfly_amd64.go new file mode 100644 index 00000000..ec519b72 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_dragonfly_amd64.go @@ -0,0 +1,453 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_dragonfly.go + +//go:build amd64 && dragonfly + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + S_IFMT = 0xf000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 + S_ISUID = 0x800 + S_ISGID = 0x400 + S_ISVTX = 0x200 + S_IRUSR = 0x100 + S_IWUSR = 0x80 + S_IXUSR = 0x40 + S_IRWXG = 0x38 + S_IRWXO = 0x7 +) + +type Stat_t struct { + Ino uint64 + Nlink uint32 + Dev uint32 + Mode uint16 + Padding1 uint16 + Uid uint32 + Gid uint32 + Rdev uint32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Lspare int32 + Qspare1 int64 + Qspare2 int64 +} + +type Statfs_t struct { + Spare2 int64 + Bsize int64 + Iosize int64 + Blocks int64 + Bfree int64 + Bavail int64 + Files int64 + Ffree int64 + Fsid Fsid + Owner uint32 + Type int32 + Flags int32 + Pad_cgo_0 [4]byte + Syncwrites int64 + Asyncwrites int64 + Fstypename [16]int8 + Mntonname [80]int8 + Syncreads int64 + Asyncreads int64 + Spares1 int16 + Mntfromname [80]int8 + Spares2 int16 + Pad_cgo_1 [4]byte + Spare [2]int64 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Namlen uint16 + Type uint8 + Unused1 uint8 + Unused2 uint32 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 + Rcf uint16 + Route [16]uint16 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen int32 + Pad_cgo_1 [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [16]uint64 +} + +const ( + SizeofIfMsghdr = 0xb0 + SizeofIfData = 0xa0 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x98 + SizeofRtMetrics = 0x70 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Recvquota uint8 + Xmitquota uint8 + Pad_cgo_0 [2]byte + Mtu uint64 + Metric uint64 + Link_state uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Unused uint64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint64 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Pksent uint64 + Expire uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Recvpipe uint64 + Hopcount uint64 + Mssopt uint16 + Pad uint16 + Pad_cgo_0 [4]byte + Msl uint64 + Iwmaxsegs uint64 + Iwcapsegs uint64 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Pad_cgo_0 [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [6]byte +} + +const ( + _AT_FDCWD = 0xfffafdcd +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} diff --git a/runtime/internal/clite/syscall/ztypes_freebsd_386.go b/runtime/internal/clite/syscall/ztypes_freebsd_386.go new file mode 100644 index 00000000..70ae808e --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_freebsd_386.go @@ -0,0 +1,519 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs types_freebsd.go | go run mkpost.go + +//go:build 386 && freebsd + +package syscall + +const ( + sizeofPtr = 0x4 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x4 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + S_IFMT = 0xf000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 + S_ISUID = 0x800 + S_ISGID = 0x400 + S_ISVTX = 0x200 + S_IRUSR = 0x100 + S_IWUSR = 0x80 + S_IXUSR = 0x40 + S_IRWXG = 0x38 + S_IRWXO = 0x7 +) + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + Padding0 int16 + Uid uint32 + Gid uint32 + Padding1 int32 + Rdev uint64 + Atim_ext int32 + Atimespec Timespec + Mtim_ext int32 + Mtimespec Timespec + Ctim_ext int32 + Ctimespec Timespec + Btim_ext int32 + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]int8 + Mntfromname [1024]int8 + Mntonname [1024]int8 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + Data int32 + Udata *byte +} + +type FdSet struct { + X__fds_bits [32]uint32 +} + +const ( + sizeofIfMsghdr = 0x64 + SizeofIfMsghdr = 0x60 + sizeofIfData = 0x54 + SizeofIfData = 0x50 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x5c + SizeofRtMetrics = 0x38 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Baudrate_pf uint8 + Datalen uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Hwassist uint64 + Epoch int32 + Lastchange Timeval +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Hwassist uint32 + Epoch int32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + Weight uint32 + Filler [3]uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0xc + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [2]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + X_bzh_pad [5]uint32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_SYMLINK_FOLLOW = 0x400 + _AT_SYMLINK_NOFOLLOW = 0x200 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} diff --git a/runtime/internal/clite/syscall/ztypes_freebsd_amd64.go b/runtime/internal/clite/syscall/ztypes_freebsd_amd64.go new file mode 100644 index 00000000..050432a6 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_freebsd_amd64.go @@ -0,0 +1,519 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs types_freebsd.go | go run mkpost.go + +//go:build amd64 && freebsd + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + S_IFMT = 0xf000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 + S_ISUID = 0x800 + S_ISGID = 0x400 + S_ISVTX = 0x200 + S_IRUSR = 0x100 + S_IWUSR = 0x80 + S_IXUSR = 0x40 + S_IRWXG = 0x38 + S_IRWXO = 0x7 +) + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + Padding0 int16 + Uid uint32 + Gid uint32 + Padding1 int32 + Rdev uint64 + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]int8 + Mntfromname [1024]int8 + Mntonname [1024]int8 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 + Pad_cgo_0 [4]byte +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen int32 + Pad_cgo_1 [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + X__fds_bits [16]uint64 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0xa8 + sizeofIfData = 0x98 + SizeofIfData = 0x98 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x98 + SizeofRtMetrics = 0x70 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Baudrate_pf uint8 + Datalen uint8 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Epoch int64 + Lastchange Timeval +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Epoch int64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint64 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Expire uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Pksent uint64 + Weight uint64 + Filler [3]uint64 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0x18 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint64 +} + +type BpfProgram struct { + Len uint32 + Pad_cgo_0 [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [6]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + X_bzh_pad [5]uint32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_SYMLINK_FOLLOW = 0x400 + _AT_SYMLINK_NOFOLLOW = 0x200 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} diff --git a/runtime/internal/clite/syscall/ztypes_freebsd_arm.go b/runtime/internal/clite/syscall/ztypes_freebsd_arm.go new file mode 100644 index 00000000..ae5ed56c --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_freebsd_arm.go @@ -0,0 +1,519 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -fsigned-char types_freebsd.go + +//go:build arm && freebsd + +package syscall + +const ( + sizeofPtr = 0x4 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x4 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 + Pad_cgo_0 [4]byte +} + +type Timeval struct { + Sec int64 + Usec int32 + Pad_cgo_0 [4]byte +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + S_IFMT = 0xf000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 + S_ISUID = 0x800 + S_ISGID = 0x400 + S_ISVTX = 0x200 + S_IRUSR = 0x100 + S_IWUSR = 0x80 + S_IXUSR = 0x40 + S_IRWXG = 0x38 + S_IRWXO = 0x7 +) + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + Padding0 int16 + Uid uint32 + Gid uint32 + Padding1 int32 + Rdev uint64 + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]int8 + Mntfromname [1024]int8 + Mntonname [1024]int8 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 + Pad_cgo_0 [4]byte +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + Data int32 + Udata *byte +} + +type FdSet struct { + X__fds_bits [32]uint32 +} + +const ( + sizeofIfMsghdr = 0x70 + SizeofIfMsghdr = 0x70 + sizeofIfData = 0x60 + SizeofIfData = 0x60 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x5c + SizeofRtMetrics = 0x38 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Baudrate_pf uint8 + Datalen uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Hwassist uint64 + Epoch int64 + Lastchange Timeval +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Hwassist uint32 + Pad_cgo_0 [4]byte + Epoch int64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 + Weight uint32 + Filler [3]uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0xc + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [6]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + X_bzh_pad [5]uint32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_SYMLINK_FOLLOW = 0x400 + _AT_SYMLINK_NOFOLLOW = 0x200 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} diff --git a/runtime/internal/clite/syscall/ztypes_freebsd_arm64.go b/runtime/internal/clite/syscall/ztypes_freebsd_arm64.go new file mode 100644 index 00000000..b3ab991f --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_freebsd_arm64.go @@ -0,0 +1,519 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs types_freebsd.go | go run mkpost.go + +//go:build arm64 && freebsd + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + S_IFMT = 0xf000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 + S_ISUID = 0x800 + S_ISGID = 0x400 + S_ISVTX = 0x200 + S_IRUSR = 0x100 + S_IWUSR = 0x80 + S_IXUSR = 0x40 + S_IRWXG = 0x38 + S_IRWXO = 0x7 +) + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + Padding0 int16 + Uid uint32 + Gid uint32 + Padding1 int32 + Rdev uint64 + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]int8 + Mntfromname [1024]int8 + Mntonname [1024]int8 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 + Pad_cgo_0 [4]byte +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen int32 + Pad_cgo_1 [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + X__fds_bits [16]uint64 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0xa8 + sizeofIfData = 0x98 + SizeofIfData = 0x98 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x98 + SizeofRtMetrics = 0x70 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Baudrate_pf uint8 + Datalen uint8 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Epoch int64 + Lastchange Timeval +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Epoch int64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint64 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Expire uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Pksent uint64 + Weight uint64 + Filler [3]uint64 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0x18 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint64 +} + +type BpfProgram struct { + Len uint32 + Pad_cgo_0 [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [6]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + X_bzh_pad [5]uint32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_SYMLINK_FOLLOW = 0x400 + _AT_SYMLINK_NOFOLLOW = 0x200 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} diff --git a/runtime/internal/clite/syscall/ztypes_freebsd_riscv64.go b/runtime/internal/clite/syscall/ztypes_freebsd_riscv64.go new file mode 100644 index 00000000..28895184 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_freebsd_riscv64.go @@ -0,0 +1,519 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs types_freebsd.go | go run mkpost.go + +//go:build riscv64 && freebsd + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur int64 + Max int64 +} + +type _Gid_t uint32 + +const ( + S_IFMT = 0xf000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 + S_ISUID = 0x800 + S_ISGID = 0x400 + S_ISVTX = 0x200 + S_IRUSR = 0x100 + S_IWUSR = 0x80 + S_IXUSR = 0x40 + S_IRWXG = 0x38 + S_IRWXO = 0x7 +) + +const ( + _statfsVersion = 0x20140518 + _dirblksiz = 0x400 +) + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint16 + Padding0 int16 + Uid uint32 + Gid uint32 + Padding1 int32 + Rdev uint64 + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint64 + Spare [10]uint64 +} + +type Statfs_t struct { + Version uint32 + Type uint32 + Flags uint64 + Bsize uint64 + Iosize uint64 + Blocks uint64 + Bfree uint64 + Bavail int64 + Files uint64 + Ffree int64 + Syncwrites uint64 + Asyncwrites uint64 + Syncreads uint64 + Asyncreads uint64 + Spare [10]uint64 + Namemax uint32 + Owner uint32 + Fsid Fsid + Charspare [80]int8 + Fstypename [16]int8 + Mntfromname [1024]int8 + Mntonname [1024]int8 +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 + Sysid int32 + Pad_cgo_0 [4]byte +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Pad0 uint8 + Namlen uint16 + Pad1 uint16 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [46]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen int32 + Pad_cgo_1 [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x36 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + X__fds_bits [16]uint64 +} + +const ( + sizeofIfMsghdr = 0xa8 + SizeofIfMsghdr = 0xa8 + sizeofIfData = 0x98 + SizeofIfData = 0x98 + SizeofIfaMsghdr = 0x14 + SizeofIfmaMsghdr = 0x10 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x98 + SizeofRtMetrics = 0x70 +) + +type ifMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data ifData +} + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type ifData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Vhid uint8 + Baudrate_pf uint8 + Datalen uint8 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Epoch int64 + Lastchange Timeval +} + +type IfData struct { + Type uint8 + Physical uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Spare_char1 uint8 + Spare_char2 uint8 + Datalen uint8 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Hwassist uint64 + Epoch int64 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Metric int32 +} + +type IfmaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Fmask int32 + Inits uint64 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Expire uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Pksent uint64 + Weight uint64 + Filler [3]uint64 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfZbuf = 0x18 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 + SizeofBpfZbufHeader = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfZbuf struct { + Bufa *byte + Bufb *byte + Buflen uint64 +} + +type BpfProgram struct { + Len uint32 + Pad_cgo_0 [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp Timeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [6]byte +} + +type BpfZbufHeader struct { + Kernel_gen uint32 + Kernel_len uint32 + User_gen uint32 + X_bzh_pad [5]uint32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_SYMLINK_FOLLOW = 0x400 + _AT_SYMLINK_NOFOLLOW = 0x200 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed uint32 + Ospeed uint32 +} diff --git a/runtime/internal/clite/syscall/ztypes_linux_386.go b/runtime/internal/clite/syscall/ztypes_linux_386.go new file mode 100644 index 00000000..a45511e8 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_linux_386.go @@ -0,0 +1,700 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_linux.go + +//go:build 386 && linux + +package syscall + +const ( + sizeofPtr = 0x4 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x4 + sizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + Pad_cgo_0 [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + X__pad1 uint16 + Pad_cgo_0 [2]byte + X__st_ino uint32 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + X__pad2 uint16 + Pad_cgo_1 [2]byte + Size int64 + Blksize int32 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Ino uint64 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int32 + Frsize int32 + Flags int32 + Spare [4]int32 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + Pad_cgo_0 [1]byte +} + +type Fsid struct { + X__val [2]int32 +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Pad_cgo_0 [2]byte + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 +) + +const ( + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_MAX = 0x1d + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + X__ifi_pad uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +const ( + SizeofSockFilter = 0x8 + SizeofSockFprog = 0x8 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Pad_cgo_0 [2]byte + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 + Name [0]uint8 +} + +const SizeofInotifyEvent = 0x10 + +type PtraceRegs struct { + Ebx int32 + Ecx int32 + Edx int32 + Esi int32 + Edi int32 + Ebp int32 + Eax int32 + Xds int32 + Xes int32 + Xfs int32 + Xgs int32 + Orig_eax int32 + Eip int32 + Xcs int32 + Eflags int32 + Esp int32 + Xss int32 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + X_f [8]int8 +} + +type Utsname struct { + Sysname [65]int8 + Nodename [65]int8 + Release [65]int8 + Version [65]int8 + Machine [65]int8 + Domainname [65]int8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]int8 + Fpack [6]int8 +} + +type EpollEvent struct { + Events uint32 + Fd int32 + Pad int32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_REMOVEDIR = 0x200 + _AT_SYMLINK_NOFOLLOW = 0x100 + _AT_EACCESS = 0x200 +) + +type pollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [32]uint8 + Pad_cgo_0 [3]byte + Ispeed uint32 + Ospeed uint32 +} + +const ( + VINTR = 0x0 + VQUIT = 0x1 + VERASE = 0x2 + VKILL = 0x3 + VEOF = 0x4 + VTIME = 0x5 + VMIN = 0x6 + VSWTC = 0x7 + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VEOL = 0xb + VREPRINT = 0xc + VDISCARD = 0xd + VWERASE = 0xe + VLNEXT = 0xf + VEOL2 = 0x10 + IGNBRK = 0x1 + BRKINT = 0x2 + IGNPAR = 0x4 + PARMRK = 0x8 + INPCK = 0x10 + ISTRIP = 0x20 + INLCR = 0x40 + IGNCR = 0x80 + ICRNL = 0x100 + IUCLC = 0x200 + IXON = 0x400 + IXANY = 0x800 + IXOFF = 0x1000 + IMAXBEL = 0x2000 + IUTF8 = 0x4000 + OPOST = 0x1 + OLCUC = 0x2 + ONLCR = 0x4 + OCRNL = 0x8 + ONOCR = 0x10 + ONLRET = 0x20 + OFILL = 0x40 + OFDEL = 0x80 + B0 = 0x0 + B50 = 0x1 + B75 = 0x2 + B110 = 0x3 + B134 = 0x4 + B150 = 0x5 + B200 = 0x6 + B300 = 0x7 + B600 = 0x8 + B1200 = 0x9 + B1800 = 0xa + B2400 = 0xb + B4800 = 0xc + B9600 = 0xd + B19200 = 0xe + B38400 = 0xf + CSIZE = 0x30 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSTOPB = 0x40 + CREAD = 0x80 + PARENB = 0x100 + PARODD = 0x200 + HUPCL = 0x400 + CLOCAL = 0x800 + B57600 = 0x1001 + B115200 = 0x1002 + B230400 = 0x1003 + B460800 = 0x1004 + B500000 = 0x1005 + B576000 = 0x1006 + B921600 = 0x1007 + B1000000 = 0x1008 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + ISIG = 0x1 + ICANON = 0x2 + XCASE = 0x4 + ECHO = 0x8 + ECHOE = 0x10 + ECHOK = 0x20 + ECHONL = 0x40 + NOFLSH = 0x80 + TOSTOP = 0x100 + ECHOCTL = 0x200 + ECHOPRT = 0x400 + ECHOKE = 0x800 + FLUSHO = 0x1000 + PENDIN = 0x4000 + IEXTEN = 0x8000 + TCGETS = 0x5401 + TCSETS = 0x5402 +) diff --git a/runtime/internal/clite/syscall/ztypes_linux_amd64.go b/runtime/internal/clite/syscall/ztypes_linux_amd64.go new file mode 100644 index 00000000..1bab13bf --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_linux_amd64.go @@ -0,0 +1,718 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_linux.go + +//go:build amd64 && linux + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Pad_cgo_0 [4]byte + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Pad_cgo_1 [4]byte + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Pad_cgo_2 [4]byte + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + Pad_cgo_3 [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + X__pad0 int32 + Rdev uint64 + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + X__unused [3]int64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + Pad_cgo_0 [5]byte +} + +type Fsid struct { + X__val [2]int32 +} + +type Flock_t struct { + Type int16 + Whence int16 + Pad_cgo_0 [4]byte + Start int64 + Len int64 + Pid int32 + Pad_cgo_1 [4]byte +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + Pad_cgo_1 [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Pad_cgo_0 [2]byte + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 +) + +const ( + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_MAX = 0x1d + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + X__ifi_pad uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +const ( + SizeofSockFilter = 0x8 + SizeofSockFprog = 0x10 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Pad_cgo_0 [6]byte + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 + Name [0]uint8 +} + +const SizeofInotifyEvent = 0x10 + +type PtraceRegs struct { + R15 uint64 + R14 uint64 + R13 uint64 + R12 uint64 + Rbp uint64 + Rbx uint64 + R11 uint64 + R10 uint64 + R9 uint64 + R8 uint64 + Rax uint64 + Rcx uint64 + Rdx uint64 + Rsi uint64 + Rdi uint64 + Orig_rax uint64 + Rip uint64 + Cs uint64 + Eflags uint64 + Rsp uint64 + Ss uint64 + Fs_base uint64 + Gs_base uint64 + Ds uint64 + Es uint64 + Fs uint64 + Gs uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Pad_cgo_0 [4]byte + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + X_f [0]byte + Pad_cgo_1 [4]byte +} + +type Utsname struct { + Sysname [65]int8 + Nodename [65]int8 + Release [65]int8 + Version [65]int8 + Machine [65]int8 + Domainname [65]int8 +} + +type Ustat_t struct { + Tfree int32 + Pad_cgo_0 [4]byte + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + Pad_cgo_1 [4]byte +} + +type EpollEvent struct { + Events uint32 + Fd int32 + Pad int32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_REMOVEDIR = 0x200 + _AT_SYMLINK_NOFOLLOW = 0x100 + _AT_EACCESS = 0x200 +) + +type pollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [32]uint8 + Pad_cgo_0 [3]byte + Ispeed uint32 + Ospeed uint32 +} + +const ( + VINTR = 0x0 + VQUIT = 0x1 + VERASE = 0x2 + VKILL = 0x3 + VEOF = 0x4 + VTIME = 0x5 + VMIN = 0x6 + VSWTC = 0x7 + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VEOL = 0xb + VREPRINT = 0xc + VDISCARD = 0xd + VWERASE = 0xe + VLNEXT = 0xf + VEOL2 = 0x10 + IGNBRK = 0x1 + BRKINT = 0x2 + IGNPAR = 0x4 + PARMRK = 0x8 + INPCK = 0x10 + ISTRIP = 0x20 + INLCR = 0x40 + IGNCR = 0x80 + ICRNL = 0x100 + IUCLC = 0x200 + IXON = 0x400 + IXANY = 0x800 + IXOFF = 0x1000 + IMAXBEL = 0x2000 + IUTF8 = 0x4000 + OPOST = 0x1 + OLCUC = 0x2 + ONLCR = 0x4 + OCRNL = 0x8 + ONOCR = 0x10 + ONLRET = 0x20 + OFILL = 0x40 + OFDEL = 0x80 + B0 = 0x0 + B50 = 0x1 + B75 = 0x2 + B110 = 0x3 + B134 = 0x4 + B150 = 0x5 + B200 = 0x6 + B300 = 0x7 + B600 = 0x8 + B1200 = 0x9 + B1800 = 0xa + B2400 = 0xb + B4800 = 0xc + B9600 = 0xd + B19200 = 0xe + B38400 = 0xf + CSIZE = 0x30 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSTOPB = 0x40 + CREAD = 0x80 + PARENB = 0x100 + PARODD = 0x200 + HUPCL = 0x400 + CLOCAL = 0x800 + B57600 = 0x1001 + B115200 = 0x1002 + B230400 = 0x1003 + B460800 = 0x1004 + B500000 = 0x1005 + B576000 = 0x1006 + B921600 = 0x1007 + B1000000 = 0x1008 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + ISIG = 0x1 + ICANON = 0x2 + XCASE = 0x4 + ECHO = 0x8 + ECHOE = 0x10 + ECHOK = 0x20 + ECHONL = 0x40 + NOFLSH = 0x80 + TOSTOP = 0x100 + ECHOCTL = 0x200 + ECHOPRT = 0x400 + ECHOKE = 0x800 + FLUSHO = 0x1000 + PENDIN = 0x4000 + IEXTEN = 0x8000 + TCGETS = 0x5401 + TCSETS = 0x5402 +) diff --git a/runtime/internal/clite/syscall/ztypes_linux_arm.go b/runtime/internal/clite/syscall/ztypes_linux_arm.go new file mode 100644 index 00000000..a4d61bd1 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_linux_arm.go @@ -0,0 +1,689 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_linux.go + +//go:build arm && linux + +package syscall + +const ( + sizeofPtr = 0x4 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x4 + sizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + Pad_cgo_0 [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + X__pad1 uint16 + Pad_cgo_0 [2]byte + X__st_ino uint32 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + X__pad2 uint16 + Pad_cgo_1 [6]byte + Size int64 + Blksize int32 + Pad_cgo_2 [4]byte + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Ino uint64 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int32 + Frsize int32 + Flags int32 + Spare [4]int32 + Pad_cgo_0 [4]byte +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + Pad_cgo_0 [5]byte +} + +type Fsid struct { + X__val [2]int32 +} + +type Flock_t struct { + Type int16 + Whence int16 + Pad_cgo_0 [4]byte + Start int64 + Len int64 + Pid int32 + Pad_cgo_1 [4]byte +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Pad_cgo_0 [2]byte + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 +) + +const ( + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_MAX = 0x1d + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + X__ifi_pad uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +const ( + SizeofSockFilter = 0x8 + SizeofSockFprog = 0x8 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Pad_cgo_0 [2]byte + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 + Name [0]uint8 +} + +const SizeofInotifyEvent = 0x10 + +type PtraceRegs struct { + Uregs [18]uint32 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + X_f [8]uint8 +} + +type Utsname struct { + Sysname [65]uint8 + Nodename [65]uint8 + Release [65]uint8 + Version [65]uint8 + Machine [65]uint8 + Domainname [65]uint8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]uint8 + Fpack [6]uint8 +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_REMOVEDIR = 0x200 + _AT_SYMLINK_NOFOLLOW = 0x100 + _AT_EACCESS = 0x200 +) + +type pollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [32]uint8 + Pad_cgo_0 [3]byte + Ispeed uint32 + Ospeed uint32 +} + +const ( + VINTR = 0x0 + VQUIT = 0x1 + VERASE = 0x2 + VKILL = 0x3 + VEOF = 0x4 + VTIME = 0x5 + VMIN = 0x6 + VSWTC = 0x7 + VSTART = 0x8 + VSTOP = 0x9 + VSUSP = 0xa + VEOL = 0xb + VREPRINT = 0xc + VDISCARD = 0xd + VWERASE = 0xe + VLNEXT = 0xf + VEOL2 = 0x10 + IGNBRK = 0x1 + BRKINT = 0x2 + IGNPAR = 0x4 + PARMRK = 0x8 + INPCK = 0x10 + ISTRIP = 0x20 + INLCR = 0x40 + IGNCR = 0x80 + ICRNL = 0x100 + IUCLC = 0x200 + IXON = 0x400 + IXANY = 0x800 + IXOFF = 0x1000 + IMAXBEL = 0x2000 + IUTF8 = 0x4000 + OPOST = 0x1 + OLCUC = 0x2 + ONLCR = 0x4 + OCRNL = 0x8 + ONOCR = 0x10 + ONLRET = 0x20 + OFILL = 0x40 + OFDEL = 0x80 + B0 = 0x0 + B50 = 0x1 + B75 = 0x2 + B110 = 0x3 + B134 = 0x4 + B150 = 0x5 + B200 = 0x6 + B300 = 0x7 + B600 = 0x8 + B1200 = 0x9 + B1800 = 0xa + B2400 = 0xb + B4800 = 0xc + B9600 = 0xd + B19200 = 0xe + B38400 = 0xf + CSIZE = 0x30 + CS5 = 0x0 + CS6 = 0x10 + CS7 = 0x20 + CS8 = 0x30 + CSTOPB = 0x40 + CREAD = 0x80 + PARENB = 0x100 + PARODD = 0x200 + HUPCL = 0x400 + CLOCAL = 0x800 + B57600 = 0x1001 + B115200 = 0x1002 + B230400 = 0x1003 + B460800 = 0x1004 + B500000 = 0x1005 + B576000 = 0x1006 + B921600 = 0x1007 + B1000000 = 0x1008 + B1152000 = 0x1009 + B1500000 = 0x100a + B2000000 = 0x100b + B2500000 = 0x100c + B3000000 = 0x100d + B3500000 = 0x100e + B4000000 = 0x100f + ISIG = 0x1 + ICANON = 0x2 + XCASE = 0x4 + ECHO = 0x8 + ECHOE = 0x10 + ECHOK = 0x20 + ECHONL = 0x40 + NOFLSH = 0x80 + TOSTOP = 0x100 + ECHOCTL = 0x200 + ECHOPRT = 0x400 + ECHOKE = 0x800 + FLUSHO = 0x1000 + PENDIN = 0x4000 + IEXTEN = 0x8000 + TCGETS = 0x5401 + TCSETS = 0x5402 +) diff --git a/runtime/internal/clite/syscall/ztypes_linux_arm64.go b/runtime/internal/clite/syscall/ztypes_linux_arm64.go new file mode 100644 index 00000000..1e469c36 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_linux_arm64.go @@ -0,0 +1,603 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs -- -fsigned-char types_linux.go + +//go:build arm64 && linux + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Pad_cgo_0 [4]byte + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Pad_cgo_1 [4]byte + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Pad_cgo_2 [4]byte + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + Pad_cgo_3 [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + X__pad1 uint64 + Size int64 + Blksize int32 + X__pad2 int32 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + X__glibc_reserved [2]int32 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + Pad_cgo_0 [5]byte +} + +type Fsid struct { + X__val [2]int32 +} + +type Flock_t struct { + Type int16 + Whence int16 + Pad_cgo_0 [4]byte + Start int64 + Len int64 + Pid int32 + Pad_cgo_1 [4]byte +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + Pad_cgo_1 [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Pad_cgo_0 [2]byte + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 +) + +const ( + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_MAX = 0x24 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + X__ifi_pad uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +const ( + SizeofSockFilter = 0x8 + SizeofSockFprog = 0x10 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Pad_cgo_0 [6]byte + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 + Name [0]int8 +} + +const SizeofInotifyEvent = 0x10 + +type PtraceRegs struct { + Regs [31]uint64 + Sp uint64 + Pc uint64 + Pstate uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Pad_cgo_0 [4]byte + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + X_f [0]int8 + Pad_cgo_1 [4]byte +} + +type Utsname struct { + Sysname [65]int8 + Nodename [65]int8 + Release [65]int8 + Version [65]int8 + Machine [65]int8 + Domainname [65]int8 +} + +type Ustat_t struct { + Tfree int32 + Pad_cgo_0 [4]byte + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + Pad_cgo_1 [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_REMOVEDIR = 0x200 + _AT_SYMLINK_NOFOLLOW = 0x100 + _AT_EACCESS = 0x200 +) + +type pollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [32]uint8 + Pad_cgo_0 [3]byte + Ispeed uint32 + Ospeed uint32 +} + +const ( + IUCLC = 0x200 + OLCUC = 0x2 + TCGETS = 0x5401 + TCSETS = 0x5402 + XCASE = 0x4 +) diff --git a/runtime/internal/clite/syscall/ztypes_linux_loong64.go b/runtime/internal/clite/syscall/ztypes_linux_loong64.go new file mode 100644 index 00000000..b0e068d7 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_linux_loong64.go @@ -0,0 +1,635 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs types_linux.go | go run mkpost.go + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + Pad_cgo_0 [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + X__pad1 uint64 + Size int64 + Blksize int32 + X__pad2 int32 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + X__glibc_reserved [2]int32 +} + +type statxTimestamp struct { + Sec int64 + Nsec uint32 + X__reserved int32 +} + +type statx_t struct { + Mask uint32 + Blksize uint32 + Attributes uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Mode uint16 + X__spare0 [1]uint16 + Ino uint64 + Size uint64 + Blocks uint64 + Attributes_mask uint64 + Atime statxTimestamp + Btime statxTimestamp + Ctime statxTimestamp + Mtime statxTimestamp + Rdev_major uint32 + Rdev_minor uint32 + Dev_major uint32 + Dev_minor uint32 + Mnt_id uint64 + X__spare2 uint64 + X__spare3 [12]uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + Pad_cgo_0 [5]byte +} + +type Fsid struct { + X__val [2]int32 +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + Pad_cgo_0 [4]byte +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + Pad_cgo_0 [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 +) + +const ( + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_MAX = 0x3a + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + X__ifi_pad uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +const ( + SizeofSockFilter = 0x8 + SizeofSockFprog = 0x10 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 +} + +const SizeofInotifyEvent = 0x10 + +type PtraceRegs struct { + Regs [32]uint64 + Orig_a0 uint64 + Era uint64 + Badv uint64 + Reserved [10]uint64 +} + +type ptracePsw struct { +} + +type ptraceFpregs struct { +} + +type ptracePer struct { +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + X_f [0]int8 + Pad_cgo_0 [4]byte +} + +type Utsname struct { + Sysname [65]int8 + Nodename [65]int8 + Release [65]int8 + Version [65]int8 + Machine [65]int8 + Domainname [65]int8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + Pad_cgo_0 [4]byte +} + +type EpollEvent struct { + Events uint32 + X_padFd int32 + Fd int32 + Pad int32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_REMOVEDIR = 0x200 + _AT_SYMLINK_NOFOLLOW = 0x100 + _AT_EACCESS = 0x200 + _AT_EMPTY_PATH = 0x1000 + _AT_NO_AUTOMOUNT = 0x800 + _STATX_BASIC_STATS = 0x7ff +) + +type pollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [32]uint8 + Ispeed uint32 + Ospeed uint32 +} + +const ( + IUCLC = 0x200 + OLCUC = 0x2 + TCGETS = 0x5401 + TCSETS = 0x5402 + XCASE = 0x4 +) diff --git a/runtime/internal/clite/syscall/ztypes_linux_mips.go b/runtime/internal/clite/syscall/ztypes_linux_mips.go new file mode 100644 index 00000000..621ef2d5 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_linux_mips.go @@ -0,0 +1,599 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_linux.go + +package syscall + +const ( + sizeofPtr = 0x4 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x4 + sizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + Pad_cgo_0 [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint32 + Pad1 [3]int32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]int32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Pad4 int32 + Blocks int64 + Pad5 [14]int32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Frsize int32 + Pad_cgo_0 [4]byte + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int32 + Flags int32 + Spare [5]int32 + Pad_cgo_1 [4]byte +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + Pad_cgo_0 [5]byte +} + +type Fsid struct { + X__val [2]int32 +} + +type Flock_t struct { + Type int16 + Whence int16 + Pad_cgo_0 [4]byte + Start int64 + Len int64 + Pid int32 + Pad_cgo_1 [4]byte +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Pad_cgo_0 [2]byte + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 +) + +const ( + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_MAX = 0x27 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + X__ifi_pad uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +const ( + SizeofSockFilter = 0x8 + SizeofSockFprog = 0x8 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Pad_cgo_0 [2]byte + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 +} + +const SizeofInotifyEvent = 0x10 + +type PtraceRegs struct { + Regs [109]uint32 + U_tsize uint32 + U_dsize uint32 + U_ssize uint32 + Start_code uint32 + Start_data uint32 + Start_stack uint32 + Signal int32 + U_ar0 *byte + Magic uint32 + U_comm [32]int8 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + X_f [8]int8 +} + +type Utsname struct { + Sysname [65]int8 + Nodename [65]int8 + Release [65]int8 + Version [65]int8 + Machine [65]int8 + Domainname [65]int8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]int8 + Fpack [6]int8 +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_REMOVEDIR = 0x200 + _AT_SYMLINK_NOFOLLOW = 0x100 + _AT_EACCESS = 0x200 +) + +type pollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [32]uint8 + Pad_cgo_0 [3]byte +} + +const ( + IUCLC = 0x200 + OLCUC = 0x2 + TCGETS = 0x540d + TCSETS = 0x540e + XCASE = 0x4 +) diff --git a/runtime/internal/clite/syscall/ztypes_linux_mips64.go b/runtime/internal/clite/syscall/ztypes_linux_mips64.go new file mode 100644 index 00000000..75a5bc45 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_linux_mips64.go @@ -0,0 +1,606 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_linux.go + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Pad_cgo_0 [4]byte + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Pad_cgo_1 [4]byte + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Pad_cgo_2 [4]byte + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + Pad_cgo_3 [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint32 + Pad1 [3]int32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]uint32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize uint32 + Pad4 uint32 + Blocks int64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Frsize int64 + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int64 + Flags int64 + Spare [5]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + Pad_cgo_0 [5]byte +} + +type Fsid struct { + X__val [2]int32 +} + +type Flock_t struct { + Type int16 + Whence int16 + Pad_cgo_0 [4]byte + Start int64 + Len int64 + Pid int32 + Pad_cgo_1 [4]byte +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + Pad_cgo_1 [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Pad_cgo_0 [2]byte + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 +) + +const ( + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_MAX = 0x22 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + X__ifi_pad uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +const ( + SizeofSockFilter = 0x8 + SizeofSockFprog = 0x10 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Pad_cgo_0 [6]byte + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 + Name [0]int8 +} + +const SizeofInotifyEvent = 0x10 + +type PtraceRegs struct { + Regs [102]uint64 + U_tsize uint64 + U_dsize uint64 + U_ssize uint64 + Start_code uint64 + Start_data uint64 + Start_stack uint64 + Signal int64 + U_ar0 uint64 + Magic uint64 + U_comm [32]int8 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Pad_cgo_0 [4]byte + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + X_f [0]int8 + Pad_cgo_1 [4]byte +} + +type Utsname struct { + Sysname [65]int8 + Nodename [65]int8 + Release [65]int8 + Version [65]int8 + Machine [65]int8 + Domainname [65]int8 +} + +type Ustat_t struct { + Tfree int32 + Pad_cgo_0 [4]byte + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + Pad_cgo_1 [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_REMOVEDIR = 0x200 + _AT_SYMLINK_NOFOLLOW = 0x100 + _AT_EACCESS = 0x200 +) + +type pollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [32]uint8 + Pad_cgo_0 [3]byte +} + +const ( + IUCLC = 0x200 + OLCUC = 0x2 + TCGETS = 0x540d + TCSETS = 0x540e + XCASE = 0x4 +) diff --git a/runtime/internal/clite/syscall/ztypes_linux_mips64le.go b/runtime/internal/clite/syscall/ztypes_linux_mips64le.go new file mode 100644 index 00000000..75a5bc45 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_linux_mips64le.go @@ -0,0 +1,606 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_linux.go + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Pad_cgo_0 [4]byte + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Pad_cgo_1 [4]byte + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Pad_cgo_2 [4]byte + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + Pad_cgo_3 [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint32 + Pad1 [3]int32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]uint32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize uint32 + Pad4 uint32 + Blocks int64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Frsize int64 + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int64 + Flags int64 + Spare [5]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + Pad_cgo_0 [5]byte +} + +type Fsid struct { + X__val [2]int32 +} + +type Flock_t struct { + Type int16 + Whence int16 + Pad_cgo_0 [4]byte + Start int64 + Len int64 + Pid int32 + Pad_cgo_1 [4]byte +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + Pad_cgo_1 [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Pad_cgo_0 [2]byte + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 +) + +const ( + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_MAX = 0x22 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + X__ifi_pad uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +const ( + SizeofSockFilter = 0x8 + SizeofSockFprog = 0x10 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Pad_cgo_0 [6]byte + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 + Name [0]int8 +} + +const SizeofInotifyEvent = 0x10 + +type PtraceRegs struct { + Regs [102]uint64 + U_tsize uint64 + U_dsize uint64 + U_ssize uint64 + Start_code uint64 + Start_data uint64 + Start_stack uint64 + Signal int64 + U_ar0 uint64 + Magic uint64 + U_comm [32]int8 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Pad_cgo_0 [4]byte + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + X_f [0]int8 + Pad_cgo_1 [4]byte +} + +type Utsname struct { + Sysname [65]int8 + Nodename [65]int8 + Release [65]int8 + Version [65]int8 + Machine [65]int8 + Domainname [65]int8 +} + +type Ustat_t struct { + Tfree int32 + Pad_cgo_0 [4]byte + Tinode uint64 + Fname [6]int8 + Fpack [6]int8 + Pad_cgo_1 [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_REMOVEDIR = 0x200 + _AT_SYMLINK_NOFOLLOW = 0x100 + _AT_EACCESS = 0x200 +) + +type pollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [32]uint8 + Pad_cgo_0 [3]byte +} + +const ( + IUCLC = 0x200 + OLCUC = 0x2 + TCGETS = 0x540d + TCSETS = 0x540e + XCASE = 0x4 +) diff --git a/runtime/internal/clite/syscall/ztypes_linux_mipsle.go b/runtime/internal/clite/syscall/ztypes_linux_mipsle.go new file mode 100644 index 00000000..621ef2d5 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_linux_mipsle.go @@ -0,0 +1,599 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_linux.go + +package syscall + +const ( + sizeofPtr = 0x4 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x4 + sizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int32 + Nsec int32 +} + +type Timeval struct { + Sec int32 + Usec int32 +} + +type Timex struct { + Modes uint32 + Offset int32 + Freq int32 + Maxerror int32 + Esterror int32 + Status int32 + Constant int32 + Precision int32 + Tolerance int32 + Time Timeval + Tick int32 + Ppsfreq int32 + Jitter int32 + Shift int32 + Stabil int32 + Jitcnt int32 + Calcnt int32 + Errcnt int32 + Stbcnt int32 + Tai int32 + Pad_cgo_0 [44]byte +} + +type Time_t int32 + +type Tms struct { + Utime int32 + Stime int32 + Cutime int32 + Cstime int32 +} + +type Utimbuf struct { + Actime int32 + Modtime int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint32 + Pad1 [3]int32 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint32 + Pad2 [3]int32 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Pad4 int32 + Blocks int64 + Pad5 [14]int32 +} + +type Statfs_t struct { + Type int32 + Bsize int32 + Frsize int32 + Pad_cgo_0 [4]byte + Blocks uint64 + Bfree uint64 + Files uint64 + Ffree uint64 + Bavail uint64 + Fsid Fsid + Namelen int32 + Flags int32 + Spare [5]int32 + Pad_cgo_1 [4]byte +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]int8 + Pad_cgo_0 [5]byte +} + +type Fsid struct { + X__val [2]int32 +} + +type Flock_t struct { + Type int16 + Whence int16 + Pad_cgo_0 [4]byte + Start int64 + Len int64 + Pid int32 + Pad_cgo_1 [4]byte +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Pad_cgo_0 [2]byte + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 +) + +const ( + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_MAX = 0x27 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + X__ifi_pad uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +const ( + SizeofSockFilter = 0x8 + SizeofSockFprog = 0x8 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Pad_cgo_0 [2]byte + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 +} + +const SizeofInotifyEvent = 0x10 + +type PtraceRegs struct { + Regs [109]uint32 + U_tsize uint32 + U_dsize uint32 + U_ssize uint32 + Start_code uint32 + Start_data uint32 + Start_stack uint32 + Signal int32 + U_ar0 *byte + Magic uint32 + U_comm [32]int8 +} + +type FdSet struct { + Bits [32]int32 +} + +type Sysinfo_t struct { + Uptime int32 + Loads [3]uint32 + Totalram uint32 + Freeram uint32 + Sharedram uint32 + Bufferram uint32 + Totalswap uint32 + Freeswap uint32 + Procs uint16 + Pad uint16 + Totalhigh uint32 + Freehigh uint32 + Unit uint32 + X_f [8]int8 +} + +type Utsname struct { + Sysname [65]int8 + Nodename [65]int8 + Release [65]int8 + Version [65]int8 + Machine [65]int8 + Domainname [65]int8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint32 + Fname [6]int8 + Fpack [6]int8 +} + +type EpollEvent struct { + Events uint32 + PadFd int32 + Fd int32 + Pad int32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_REMOVEDIR = 0x200 + _AT_SYMLINK_NOFOLLOW = 0x100 + _AT_EACCESS = 0x200 +) + +type pollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [32]uint8 + Pad_cgo_0 [3]byte +} + +const ( + IUCLC = 0x200 + OLCUC = 0x2 + TCGETS = 0x540d + TCSETS = 0x540e + XCASE = 0x4 +) diff --git a/runtime/internal/clite/syscall/ztypes_linux_ppc64.go b/runtime/internal/clite/syscall/ztypes_linux_ppc64.go new file mode 100644 index 00000000..c830cee9 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_linux_ppc64.go @@ -0,0 +1,613 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_linux.go + +//go:build ppc64 && linux + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Pad_cgo_0 [4]byte + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Pad_cgo_1 [4]byte + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Pad_cgo_2 [4]byte + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + Pad_cgo_3 [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + X__pad2 int32 + Rdev uint64 + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + X__unused4 uint64 + X__unused5 uint64 + X__unused6 uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + Pad_cgo_0 [5]byte +} + +type Fsid struct { + X__val [2]int32 +} + +type Flock_t struct { + Type int16 + Whence int16 + Pad_cgo_0 [4]byte + Start int64 + Len int64 + Pid int32 + Pad_cgo_1 [4]byte +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + Pad_cgo_1 [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Pad_cgo_0 [2]byte + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 +) + +const ( + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_MAX = 0x22 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + X__ifi_pad uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +const ( + SizeofSockFilter = 0x8 + SizeofSockFprog = 0x10 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Pad_cgo_0 [6]byte + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 + Name [0]uint8 +} + +const SizeofInotifyEvent = 0x10 + +type PtraceRegs struct { + Gpr [32]uint64 + Nip uint64 + Msr uint64 + Orig_gpr3 uint64 + Ctr uint64 + Link uint64 + Xer uint64 + Ccr uint64 + Softe uint64 + Trap uint64 + Dar uint64 + Dsisr uint64 + Result uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Pad_cgo_0 [4]byte + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + X_f [0]uint8 + Pad_cgo_1 [4]byte +} + +type Utsname struct { + Sysname [65]uint8 + Nodename [65]uint8 + Release [65]uint8 + Version [65]uint8 + Machine [65]uint8 + Domainname [65]uint8 +} + +type Ustat_t struct { + Tfree int32 + Pad_cgo_0 [4]byte + Tinode uint64 + Fname [6]uint8 + Fpack [6]uint8 + Pad_cgo_1 [4]byte +} + +type EpollEvent struct { + Events uint32 + X_padFd int32 + Fd int32 + Pad int32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_REMOVEDIR = 0x200 + _AT_SYMLINK_NOFOLLOW = 0x100 + _AT_EACCESS = 0x200 +) + +type pollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [32]uint8 + Pad_cgo_0 [3]byte + Ispeed uint32 + Ospeed uint32 +} + +const ( + IUCLC = 0x1000 + OLCUC = 0x4 + TCGETS = 0x402c7413 + TCSETS = 0x802c7414 + XCASE = 0x4000 +) diff --git a/runtime/internal/clite/syscall/ztypes_linux_ppc64le.go b/runtime/internal/clite/syscall/ztypes_linux_ppc64le.go new file mode 100644 index 00000000..770ddc9f --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_linux_ppc64le.go @@ -0,0 +1,613 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_linux.go + +//go:build ppc64le && linux + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Pad_cgo_0 [4]byte + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Pad_cgo_1 [4]byte + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Pad_cgo_2 [4]byte + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + Pad_cgo_3 [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + X__pad2 int32 + Rdev uint64 + Size int64 + Blksize int64 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + X__glibc_reserved4 uint64 + X__glibc_reserved5 uint64 + X__glibc_reserved6 uint64 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + Pad_cgo_0 [5]byte +} + +type Fsid struct { + X__val [2]int32 +} + +type Flock_t struct { + Type int16 + Whence int16 + Pad_cgo_0 [4]byte + Start int64 + Len int64 + Pid int32 + Pad_cgo_1 [4]byte +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + Pad_cgo_1 [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Pad_cgo_0 [2]byte + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 +) + +const ( + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_MAX = 0x22 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + X__ifi_pad uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +const ( + SizeofSockFilter = 0x8 + SizeofSockFprog = 0x10 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Pad_cgo_0 [6]byte + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 + Name [0]uint8 +} + +const SizeofInotifyEvent = 0x10 + +type PtraceRegs struct { + Gpr [32]uint64 + Nip uint64 + Msr uint64 + Orig_gpr3 uint64 + Ctr uint64 + Link uint64 + Xer uint64 + Ccr uint64 + Softe uint64 + Trap uint64 + Dar uint64 + Dsisr uint64 + Result uint64 +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Pad_cgo_0 [4]byte + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + X_f [0]uint8 + Pad_cgo_1 [4]byte +} + +type Utsname struct { + Sysname [65]uint8 + Nodename [65]uint8 + Release [65]uint8 + Version [65]uint8 + Machine [65]uint8 + Domainname [65]uint8 +} + +type Ustat_t struct { + Tfree int32 + Pad_cgo_0 [4]byte + Tinode uint64 + Fname [6]uint8 + Fpack [6]uint8 + Pad_cgo_1 [4]byte +} + +type EpollEvent struct { + Events uint32 + X_padFd int32 + Fd int32 + Pad int32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_REMOVEDIR = 0x200 + _AT_SYMLINK_NOFOLLOW = 0x100 + _AT_EACCESS = 0x200 +) + +type pollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [32]uint8 + Pad_cgo_0 [3]byte + Ispeed uint32 + Ospeed uint32 +} + +const ( + IUCLC = 0x1000 + OLCUC = 0x4 + TCGETS = 0x402c7413 + TCSETS = 0x802c7414 + XCASE = 0x4000 +) diff --git a/runtime/internal/clite/syscall/ztypes_linux_riscv64.go b/runtime/internal/clite/syscall/ztypes_linux_riscv64.go new file mode 100644 index 00000000..f6b9cede --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_linux_riscv64.go @@ -0,0 +1,627 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_linux.go + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + X__pad1 uint64 + Size int64 + Blksize int32 + X__pad2 int32 + Blocks int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + X__glibc_reserved [2]int32 +} + +type Statfs_t struct { + Type int64 + Bsize int64 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen int64 + Frsize int64 + Flags int64 + Spare [4]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Fsid struct { + X__val [2]int32 +} + +type Flock_t struct { + Type int16 + Whence int16 + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]uint8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 +) + +const ( + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_MAX = 0x26 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + X__ifi_pad uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +const ( + SizeofSockFilter = 0x8 + SizeofSockFprog = 0x10 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 +} + +const SizeofInotifyEvent = 0x10 + +type PtraceRegs struct { + Pc uint64 + Ra uint64 + Sp uint64 + Gp uint64 + Tp uint64 + T0 uint64 + T1 uint64 + T2 uint64 + S0 uint64 + S1 uint64 + A0 uint64 + A1 uint64 + A2 uint64 + A3 uint64 + A4 uint64 + A5 uint64 + A6 uint64 + A7 uint64 + S2 uint64 + S3 uint64 + S4 uint64 + S5 uint64 + S6 uint64 + S7 uint64 + S8 uint64 + S9 uint64 + S10 uint64 + S11 uint64 + T3 uint64 + T4 uint64 + T5 uint64 + T6 uint64 +} + +type ptracePsw struct { +} + +type ptraceFpregs struct { +} + +type ptracePer struct { +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + X_f [0]uint8 + _ [4]byte +} + +type Utsname struct { + Sysname [65]uint8 + Nodename [65]uint8 + Release [65]uint8 + Version [65]uint8 + Machine [65]uint8 + Domainname [65]uint8 +} + +type Ustat_t struct { + Tfree int32 + Tinode uint64 + Fname [6]uint8 + Fpack [6]uint8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_REMOVEDIR = 0x200 + _AT_SYMLINK_NOFOLLOW = 0x100 + _AT_EACCESS = 0x200 +) + +type pollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [19]uint8 + Ispeed uint32 + Ospeed uint32 +} + +const ( + IUCLC = 0x200 + OLCUC = 0x2 + TCGETS = 0x5401 + TCSETS = 0x5402 + XCASE = 0x4 +) diff --git a/runtime/internal/clite/syscall/ztypes_linux_s390x.go b/runtime/internal/clite/syscall/ztypes_linux_s390x.go new file mode 100644 index 00000000..b67877f0 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_linux_s390x.go @@ -0,0 +1,627 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_linux.go | go run mkpost.go + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 + PathMax = 0x1000 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timex struct { + Modes uint32 + _ [4]byte + Offset int64 + Freq int64 + Maxerror int64 + Esterror int64 + Status int32 + _ [4]byte + Constant int64 + Precision int64 + Tolerance int64 + Time Timeval + Tick int64 + Ppsfreq int64 + Jitter int64 + Shift int32 + _ [4]byte + Stabil int64 + Jitcnt int64 + Calcnt int64 + Errcnt int64 + Stbcnt int64 + Tai int32 + _ [44]byte +} + +type Time_t int64 + +type Tms struct { + Utime int64 + Stime int64 + Cutime int64 + Cstime int64 +} + +type Utimbuf struct { + Actime int64 + Modtime int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Ino uint64 + Nlink uint64 + Mode uint32 + Uid uint32 + Gid uint32 + _ int32 + Rdev uint64 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int64 + Blocks int64 + _ [3]int64 +} + +type Statfs_t struct { + Type uint32 + Bsize uint32 + Blocks uint64 + Bfree uint64 + Bavail uint64 + Files uint64 + Ffree uint64 + Fsid Fsid + Namelen uint32 + Frsize uint32 + Flags uint32 + Spare [4]uint32 + _ [4]byte +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Type uint8 + Name [256]uint8 + _ [5]byte +} + +type Fsid struct { + X__val [2]int32 +} + +type Flock_t struct { + Type int16 + Whence int16 + _ [4]byte + Start int64 + Len int64 + Pid int32 + _ [4]byte +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]uint8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrLinklayer struct { + Family uint16 + Protocol uint16 + Ifindex int32 + Hatype uint16 + Pkttype uint8 + Halen uint8 + Addr [8]uint8 +} + +type RawSockaddrNetlink struct { + Family uint16 + Pad uint16 + Pid uint32 + Groups uint32 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [96]uint8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPMreqn struct { + Multiaddr [4]byte /* in_addr */ + Address [4]byte /* in_addr */ + Ifindex int32 +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + _ [4]byte + Iov *Iovec + Iovlen uint64 + Control *byte + Controllen uint64 + Flags int32 + _ [4]byte +} + +type Cmsghdr struct { + Len uint64 + Level int32 + Type int32 +} + +type Inet4Pktinfo struct { + Ifindex int32 + Spec_dst [4]byte /* in_addr */ + Addr [4]byte /* in_addr */ +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Data [8]uint32 +} + +type Ucred struct { + Pid int32 + Uid uint32 + Gid uint32 +} + +type TCPInfo struct { + State uint8 + Ca_state uint8 + Retransmits uint8 + Probes uint8 + Backoff uint8 + Options uint8 + _ [2]byte + Rto uint32 + Ato uint32 + Snd_mss uint32 + Rcv_mss uint32 + Unacked uint32 + Sacked uint32 + Lost uint32 + Retrans uint32 + Fackets uint32 + Last_data_sent uint32 + Last_ack_sent uint32 + Last_data_recv uint32 + Last_ack_recv uint32 + Pmtu uint32 + Rcv_ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Snd_ssthresh uint32 + Snd_cwnd uint32 + Advmss uint32 + Reordering uint32 + Rcv_rtt uint32 + Rcv_space uint32 + Total_retrans uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x70 + SizeofSockaddrUnix = 0x6e + SizeofSockaddrLinklayer = 0x14 + SizeofSockaddrNetlink = 0xc + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPMreqn = 0xc + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x38 + SizeofCmsghdr = 0x10 + SizeofInet4Pktinfo = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 + SizeofUcred = 0xc + SizeofTCPInfo = 0x68 +) + +const ( + IFA_UNSPEC = 0x0 + IFA_ADDRESS = 0x1 + IFA_LOCAL = 0x2 + IFA_LABEL = 0x3 + IFA_BROADCAST = 0x4 + IFA_ANYCAST = 0x5 + IFA_CACHEINFO = 0x6 + IFA_MULTICAST = 0x7 + IFLA_UNSPEC = 0x0 + IFLA_ADDRESS = 0x1 + IFLA_BROADCAST = 0x2 + IFLA_IFNAME = 0x3 + IFLA_MTU = 0x4 + IFLA_LINK = 0x5 + IFLA_QDISC = 0x6 + IFLA_STATS = 0x7 + IFLA_COST = 0x8 + IFLA_PRIORITY = 0x9 + IFLA_MASTER = 0xa + IFLA_WIRELESS = 0xb + IFLA_PROTINFO = 0xc + IFLA_TXQLEN = 0xd + IFLA_MAP = 0xe + IFLA_WEIGHT = 0xf + IFLA_OPERSTATE = 0x10 + IFLA_LINKMODE = 0x11 + IFLA_LINKINFO = 0x12 + IFLA_NET_NS_PID = 0x13 + IFLA_IFALIAS = 0x14 + IFLA_MAX = 0x27 + RT_SCOPE_UNIVERSE = 0x0 + RT_SCOPE_SITE = 0xc8 + RT_SCOPE_LINK = 0xfd + RT_SCOPE_HOST = 0xfe + RT_SCOPE_NOWHERE = 0xff + RT_TABLE_UNSPEC = 0x0 + RT_TABLE_COMPAT = 0xfc + RT_TABLE_DEFAULT = 0xfd + RT_TABLE_MAIN = 0xfe + RT_TABLE_LOCAL = 0xff + RT_TABLE_MAX = 0xffffffff + RTA_UNSPEC = 0x0 + RTA_DST = 0x1 + RTA_SRC = 0x2 + RTA_IIF = 0x3 + RTA_OIF = 0x4 + RTA_GATEWAY = 0x5 + RTA_PRIORITY = 0x6 + RTA_PREFSRC = 0x7 + RTA_METRICS = 0x8 + RTA_MULTIPATH = 0x9 + RTA_FLOW = 0xb + RTA_CACHEINFO = 0xc + RTA_TABLE = 0xf + RTN_UNSPEC = 0x0 + RTN_UNICAST = 0x1 + RTN_LOCAL = 0x2 + RTN_BROADCAST = 0x3 + RTN_ANYCAST = 0x4 + RTN_MULTICAST = 0x5 + RTN_BLACKHOLE = 0x6 + RTN_UNREACHABLE = 0x7 + RTN_PROHIBIT = 0x8 + RTN_THROW = 0x9 + RTN_NAT = 0xa + RTN_XRESOLVE = 0xb + RTNLGRP_NONE = 0x0 + RTNLGRP_LINK = 0x1 + RTNLGRP_NOTIFY = 0x2 + RTNLGRP_NEIGH = 0x3 + RTNLGRP_TC = 0x4 + RTNLGRP_IPV4_IFADDR = 0x5 + RTNLGRP_IPV4_MROUTE = 0x6 + RTNLGRP_IPV4_ROUTE = 0x7 + RTNLGRP_IPV4_RULE = 0x8 + RTNLGRP_IPV6_IFADDR = 0x9 + RTNLGRP_IPV6_MROUTE = 0xa + RTNLGRP_IPV6_ROUTE = 0xb + RTNLGRP_IPV6_IFINFO = 0xc + RTNLGRP_IPV6_PREFIX = 0x12 + RTNLGRP_IPV6_RULE = 0x13 + RTNLGRP_ND_USEROPT = 0x14 + SizeofNlMsghdr = 0x10 + SizeofNlMsgerr = 0x14 + SizeofRtGenmsg = 0x1 + SizeofNlAttr = 0x4 + SizeofRtAttr = 0x4 + SizeofIfInfomsg = 0x10 + SizeofIfAddrmsg = 0x8 + SizeofRtMsg = 0xc + SizeofRtNexthop = 0x8 +) + +type NlMsghdr struct { + Len uint32 + Type uint16 + Flags uint16 + Seq uint32 + Pid uint32 +} + +type NlMsgerr struct { + Error int32 + Msg NlMsghdr +} + +type RtGenmsg struct { + Family uint8 +} + +type NlAttr struct { + Len uint16 + Type uint16 +} + +type RtAttr struct { + Len uint16 + Type uint16 +} + +type IfInfomsg struct { + Family uint8 + X__ifi_pad uint8 + Type uint16 + Index int32 + Flags uint32 + Change uint32 +} + +type IfAddrmsg struct { + Family uint8 + Prefixlen uint8 + Flags uint8 + Scope uint8 + Index uint32 +} + +type RtMsg struct { + Family uint8 + Dst_len uint8 + Src_len uint8 + Tos uint8 + Table uint8 + Protocol uint8 + Scope uint8 + Type uint8 + Flags uint32 +} + +type RtNexthop struct { + Len uint16 + Flags uint8 + Hops uint8 + Ifindex int32 +} + +const ( + SizeofSockFilter = 0x8 + SizeofSockFprog = 0x10 +) + +type SockFilter struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type SockFprog struct { + Len uint16 + _ [6]byte + Filter *SockFilter +} + +type InotifyEvent struct { + Wd int32 + Mask uint32 + Cookie uint32 + Len uint32 +} + +const SizeofInotifyEvent = 0x10 + +type PtraceRegs struct { + Psw PtracePsw + Gprs [16]uint64 + Acrs [16]uint32 + Orig_gpr2 uint64 + Fp_regs PtraceFpregs + Per_info PtracePer + Ieee_instruction_pointer uint64 +} + +type PtracePsw struct { + Mask uint64 + Addr uint64 +} + +type PtraceFpregs struct { + Fpc uint32 + _ [4]byte + Fprs [16]float64 +} + +type PtracePer struct { + Control_regs [0]uint64 + _ [24]byte + _ [8]byte + Starting_addr uint64 + Ending_addr uint64 + Perc_atmid uint16 + _ [6]byte + Address uint64 + Access_id uint8 + _ [7]byte +} + +type FdSet struct { + Bits [16]int64 +} + +type Sysinfo_t struct { + Uptime int64 + Loads [3]uint64 + Totalram uint64 + Freeram uint64 + Sharedram uint64 + Bufferram uint64 + Totalswap uint64 + Freeswap uint64 + Procs uint16 + Pad uint16 + _ [4]byte + Totalhigh uint64 + Freehigh uint64 + Unit uint32 + X_f [0]uint8 + _ [4]byte +} + +type Utsname struct { + Sysname [65]uint8 + Nodename [65]uint8 + Release [65]uint8 + Version [65]uint8 + Machine [65]uint8 + Domainname [65]uint8 +} + +type Ustat_t struct { + Tfree int32 + _ [4]byte + Tinode uint64 + Fname [6]uint8 + Fpack [6]uint8 + _ [4]byte +} + +type EpollEvent struct { + Events uint32 + _ int32 + Fd int32 + Pad int32 +} + +const ( + _AT_FDCWD = -0x64 + _AT_REMOVEDIR = 0x200 + _AT_SYMLINK_NOFOLLOW = 0x100 + _AT_EACCESS = 0x200 +) + +type pollFd struct { + Fd int32 + Events int16 + Revents int16 +} + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Line uint8 + Cc [32]uint8 + _ [3]byte + Ispeed uint32 + Ospeed uint32 +} + +const ( + IUCLC = 0x200 + OLCUC = 0x2 + TCGETS = 0x5401 + TCSETS = 0x5402 + XCASE = 0x4 +) diff --git a/runtime/internal/clite/syscall/ztypes_netbsd_386.go b/runtime/internal/clite/syscall/ztypes_netbsd_386.go new file mode 100644 index 00000000..74eaa4a1 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_netbsd_386.go @@ -0,0 +1,408 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_netbsd.go + +//go:build 386 && netbsd + +package syscall + +const ( + sizeofPtr = 0x4 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x4 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 +} + +type Timeval struct { + Sec int64 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Mode uint32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 +} + +type Statfs_t [0]byte + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [512]int8 + Pad_cgo_0 [3]byte +} + +type Fsid struct { + X__fsid_val [2]int32 +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter uint32 + Flags uint32 + Fflags uint32 + Data int64 + Udata int32 +} + +type FdSet struct { + Bits [8]uint32 +} + +const ( + SizeofIfMsghdr = 0x98 + SizeofIfData = 0x84 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x78 + SizeofRtMetrics = 0x50 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData + Pad_cgo_1 [4]byte +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Link_state int32 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Lastchange Timespec +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Metric int32 + Index uint16 + Pad_cgo_0 [6]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits int32 + Pad_cgo_1 [4]byte + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Expire int64 + Pksent int64 +} + +type Mclpool [0]byte + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [2]byte +} + +type BpfTimeval struct { + Sec int32 + Usec int32 +} + +const ( + _AT_FDCWD = -0x64 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Sysctlnode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + X__rsvd uint32 + Un [16]byte + X_sysctl_size [8]byte + X_sysctl_func [8]byte + X_sysctl_parent [8]byte + X_sysctl_desc [8]byte +} + +type sigset struct { + X__bits [4]uint32 +} diff --git a/runtime/internal/clite/syscall/ztypes_netbsd_amd64.go b/runtime/internal/clite/syscall/ztypes_netbsd_amd64.go new file mode 100644 index 00000000..fc28fc9b --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_netbsd_amd64.go @@ -0,0 +1,415 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_netbsd.go + +//go:build amd64 && netbsd + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + Pad_cgo_0 [4]byte +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Mode uint32 + Pad_cgo_0 [4]byte + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Pad_cgo_1 [4]byte + Rdev uint64 + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 + Pad_cgo_2 [4]byte +} + +type Statfs_t [0]byte + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [512]int8 + Pad_cgo_0 [3]byte +} + +type Fsid struct { + X__fsid_val [2]int32 +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen int32 + Pad_cgo_1 [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter uint32 + Flags uint32 + Fflags uint32 + Pad_cgo_0 [4]byte + Data int64 + Udata int64 +} + +type FdSet struct { + Bits [8]uint32 +} + +const ( + SizeofIfMsghdr = 0x98 + SizeofIfData = 0x88 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x78 + SizeofRtMetrics = 0x50 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Link_state int32 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Lastchange Timespec +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Metric int32 + Index uint16 + Pad_cgo_0 [6]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits int32 + Pad_cgo_1 [4]byte + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Expire int64 + Pksent int64 +} + +type Mclpool [0]byte + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Pad_cgo_0 [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [6]byte +} + +type BpfTimeval struct { + Sec int64 + Usec int64 +} + +const ( + _AT_FDCWD = -0x64 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Sysctlnode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + X__rsvd uint32 + Un [16]byte + X_sysctl_size [8]byte + X_sysctl_func [8]byte + X_sysctl_parent [8]byte + X_sysctl_desc [8]byte +} + +type sigset struct { + X__bits [4]uint32 +} diff --git a/runtime/internal/clite/syscall/ztypes_netbsd_arm.go b/runtime/internal/clite/syscall/ztypes_netbsd_arm.go new file mode 100644 index 00000000..1f885048 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_netbsd_arm.go @@ -0,0 +1,413 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_netbsd.go + +//go:build arm && netbsd + +package syscall + +const ( + sizeofPtr = 0x4 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x4 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 + Pad_cgo_0 [4]byte +} + +type Timeval struct { + Sec int64 + Usec int32 + Pad_cgo_0 [4]byte +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Mode uint32 + Pad_cgo_0 [4]byte + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Pad_cgo_1 [4]byte + Rdev uint64 + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 + Pad_cgo_2 [4]byte +} + +type Statfs_t [0]byte + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [512]int8 + Pad_cgo_0 [3]byte +} + +type Fsid struct { + X__fsid_val [2]int32 +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen int32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter uint32 + Flags uint32 + Fflags uint32 + Data int64 + Udata int32 + Pad_cgo_0 [4]byte +} + +type FdSet struct { + Bits [8]uint32 +} + +const ( + SizeofIfMsghdr = 0x98 + SizeofIfData = 0x88 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x78 + SizeofRtMetrics = 0x50 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Link_state int32 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Lastchange Timespec +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Metric int32 + Index uint16 + Pad_cgo_0 [6]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits int32 + Pad_cgo_1 [4]byte + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Expire int64 + Pksent int64 +} + +type Mclpool [0]byte + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [2]byte +} + +type BpfTimeval struct { + Sec int32 + Usec int32 +} + +const ( + _AT_FDCWD = -0x64 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Sysctlnode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + X__rsvd uint32 + Un [16]byte + X_sysctl_size [8]byte + X_sysctl_func [8]byte + X_sysctl_parent [8]byte + X_sysctl_desc [8]byte +} + +type sigset struct { + X__bits [4]uint32 +} diff --git a/runtime/internal/clite/syscall/ztypes_netbsd_arm64.go b/runtime/internal/clite/syscall/ztypes_netbsd_arm64.go new file mode 100644 index 00000000..cac74693 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_netbsd_arm64.go @@ -0,0 +1,415 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_netbsd.go + +//go:build arm64 && netbsd + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int32 + Pad_cgo_0 [4]byte +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +type Stat_t struct { + Dev uint64 + Mode uint32 + Pad_cgo_0 [4]byte + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Pad_cgo_1 [4]byte + Rdev uint64 + Atimespec Timespec + Mtimespec Timespec + Ctimespec Timespec + Birthtimespec Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Spare [2]uint32 + Pad_cgo_2 [4]byte +} + +type Statfs_t [0]byte + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Reclen uint16 + Namlen uint16 + Type uint8 + Name [512]int8 + Pad_cgo_0 [3]byte +} + +type Fsid struct { + X__fsid_val [2]int32 +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [12]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen int32 + Pad_cgo_1 [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x14 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter uint32 + Flags uint32 + Fflags uint32 + Pad_cgo_0 [4]byte + Data int64 + Udata int64 +} + +type FdSet struct { + Bits [8]uint32 +} + +const ( + SizeofIfMsghdr = 0x98 + SizeofIfData = 0x88 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x18 + SizeofRtMsghdr = 0x78 + SizeofRtMetrics = 0x50 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Link_state int32 + Mtu uint64 + Metric uint64 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Lastchange Timespec +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Metric int32 + Index uint16 + Pad_cgo_0 [6]byte +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Name [16]int8 + What uint16 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits int32 + Pad_cgo_1 [4]byte + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint64 + Mtu uint64 + Hopcount uint64 + Recvpipe uint64 + Sendpipe uint64 + Ssthresh uint64 + Rtt uint64 + Rttvar uint64 + Expire int64 + Pksent int64 +} + +type Mclpool [0]byte + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x20 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Pad_cgo_0 [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [6]byte +} + +type BpfTimeval struct { + Sec int64 + Usec int64 +} + +const ( + _AT_FDCWD = -0x64 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} + +type Sysctlnode struct { + Flags uint32 + Num int32 + Name [32]int8 + Ver uint32 + X__rsvd uint32 + Un [16]byte + X_sysctl_size [8]byte + X_sysctl_func [8]byte + X_sysctl_parent [8]byte + X_sysctl_desc [8]byte +} + +type sigset struct { + X__bits [4]uint32 +} diff --git a/runtime/internal/clite/syscall/ztypes_openbsd_386.go b/runtime/internal/clite/syscall/ztypes_openbsd_386.go new file mode 100644 index 00000000..f9ba685e --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_openbsd_386.go @@ -0,0 +1,451 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_openbsd.go + +//go:build 386 && openbsd + +package syscall + +const ( + sizeofPtr = 0x4 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x4 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 +} + +type Timeval struct { + Sec int64 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +const ( + S_IFMT = 0xf000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 + S_ISUID = 0x800 + S_ISGID = 0x400 + S_ISVTX = 0x200 + S_IRUSR = 0x100 + S_IWUSR = 0x80 + S_IXUSR = 0x40 + S_IRWXG = 0x38 + S_IRWXO = 0x7 +) + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + X__st_birthtim Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]int8 + F_mntonname [90]int8 + F_mntfromname [90]int8 + F_mntfromspec [90]int8 + Pad_cgo_0 [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + X__d_padding [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xec + SizeofIfData = 0xd4 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Pad uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Capabilities uint32 + Lastchange Timeval + Mclpool [7]Mclpool +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +type Mclpool struct { + Grown int32 + Alive uint16 + Hwm uint16 + Cwm uint16 + Lwm uint16 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [2]byte +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +const ( + _AT_FDCWD = -0x64 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} diff --git a/runtime/internal/clite/syscall/ztypes_openbsd_amd64.go b/runtime/internal/clite/syscall/ztypes_openbsd_amd64.go new file mode 100644 index 00000000..889b9551 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_openbsd_amd64.go @@ -0,0 +1,458 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_openbsd.go + +//go:build amd64 && openbsd + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +const ( + S_IFMT = 0xf000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 + S_ISUID = 0x800 + S_ISGID = 0x400 + S_ISVTX = 0x200 + S_IRUSR = 0x100 + S_IWUSR = 0x80 + S_IXUSR = 0x40 + S_IRWXG = 0x38 + S_IRWXO = 0x7 +) + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize uint32 + Flags uint32 + Gen uint32 + Pad_cgo_0 [4]byte + X__st_birthtim Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + Pad_cgo_0 [4]byte + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]int8 + F_mntonname [90]int8 + F_mntfromname [90]int8 + F_mntfromspec [90]int8 + Pad_cgo_1 [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + X__d_padding [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen uint32 + Pad_cgo_1 [4]byte + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xf8 + SizeofIfData = 0xe0 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Pad uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Noproto uint64 + Capabilities uint32 + Pad_cgo_0 [4]byte + Lastchange Timeval + Mclpool [7]Mclpool + Pad_cgo_1 [4]byte +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +type Mclpool struct { + Grown int32 + Alive uint16 + Hwm uint16 + Cwm uint16 + Lwm uint16 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Pad_cgo_0 [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [2]byte +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +const ( + _AT_FDCWD = -0x64 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} diff --git a/runtime/internal/clite/syscall/ztypes_openbsd_arm.go b/runtime/internal/clite/syscall/ztypes_openbsd_arm.go new file mode 100644 index 00000000..acadf4b4 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_openbsd_arm.go @@ -0,0 +1,450 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -fsigned-char types_openbsd.go + +package syscall + +const ( + sizeofPtr = 0x4 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x4 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int32 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int32 + Pad_cgo_0 [4]byte +} + +type Timeval struct { + Sec int64 + Usec int32 + Pad_cgo_0 [4]byte +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int32 + Ixrss int32 + Idrss int32 + Isrss int32 + Minflt int32 + Majflt int32 + Nswap int32 + Inblock int32 + Oublock int32 + Msgsnd int32 + Msgrcv int32 + Nsignals int32 + Nvcsw int32 + Nivcsw int32 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +const ( + S_IFMT = 0xf000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 + S_ISUID = 0x800 + S_ISGID = 0x400 + S_ISVTX = 0x200 + S_IRUSR = 0x100 + S_IWUSR = 0x80 + S_IXUSR = 0x40 + S_IRWXG = 0x38 + S_IRWXO = 0x7 +) + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + Pad_cgo_0 [4]byte + X__st_birthtim Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + Pad_cgo_0 [4]byte + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]int8 + F_mntonname [90]int8 + F_mntfromname [90]int8 + F_mntfromspec [90]int8 + Pad_cgo_1 [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + X__d_padding [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint32 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x1c + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint32 + Filter int16 + Flags uint16 + Fflags uint32 + Pad_cgo_0 [4]byte + Data int64 + Udata *byte + Pad_cgo_1 [4]byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + Pad_cgo_0 [4]byte + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +type Mclpool struct{} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x8 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [2]byte +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +const ( + _AT_FDCWD = -0x64 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} diff --git a/runtime/internal/clite/syscall/ztypes_openbsd_arm64.go b/runtime/internal/clite/syscall/ztypes_openbsd_arm64.go new file mode 100644 index 00000000..778bee14 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_openbsd_arm64.go @@ -0,0 +1,443 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -fsigned-char types_openbsd.go + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +const ( + S_IFMT = 0xf000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 + S_ISUID = 0x800 + S_ISGID = 0x400 + S_ISVTX = 0x200 + S_IRUSR = 0x100 + S_IWUSR = 0x80 + S_IXUSR = 0x40 + S_IRWXG = 0x38 + S_IRWXO = 0x7 +) + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + X__st_birthtim Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]int8 + F_mntonname [90]int8 + F_mntfromname [90]int8 + F_mntfromspec [90]int8 + Pad_cgo_0 [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + X__d_padding [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +type Mclpool struct{} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [2]byte +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +const ( + _AT_FDCWD = -0x64 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} diff --git a/runtime/internal/clite/syscall/ztypes_openbsd_mips64.go b/runtime/internal/clite/syscall/ztypes_openbsd_mips64.go new file mode 100644 index 00000000..778bee14 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_openbsd_mips64.go @@ -0,0 +1,443 @@ +// Code generated by cmd/cgo -godefs; DO NOT EDIT. +// cgo -godefs -- -fsigned-char types_openbsd.go + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Gid_t uint32 + +const ( + S_IFMT = 0xf000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 + S_ISUID = 0x800 + S_ISGID = 0x400 + S_ISVTX = 0x200 + S_IRUSR = 0x100 + S_IWUSR = 0x80 + S_IXUSR = 0x40 + S_IRWXG = 0x38 + S_IRWXO = 0x7 +) + +type Stat_t struct { + Mode uint32 + Dev int32 + Ino uint64 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev int32 + Atim Timespec + Mtim Timespec + Ctim Timespec + Size int64 + Blocks int64 + Blksize int32 + Flags uint32 + Gen uint32 + X__st_birthtim Timespec +} + +type Statfs_t struct { + F_flags uint32 + F_bsize uint32 + F_iosize uint32 + F_blocks uint64 + F_bfree uint64 + F_bavail int64 + F_files uint64 + F_ffree uint64 + F_favail int64 + F_syncwrites uint64 + F_syncreads uint64 + F_asyncwrites uint64 + F_asyncreads uint64 + F_fsid Fsid + F_namemax uint32 + F_owner uint32 + F_ctime uint64 + F_fstypename [16]int8 + F_mntonname [90]int8 + F_mntfromname [90]int8 + F_mntfromspec [90]int8 + Pad_cgo_0 [2]byte + Mount_info [160]byte +} + +type Flock_t struct { + Start int64 + Len int64 + Pid int32 + Type int16 + Whence int16 +} + +type Dirent struct { + Fileno uint64 + Off int64 + Reclen uint16 + Type uint8 + Namlen uint8 + X__d_padding [4]uint8 + Name [256]int8 +} + +type Fsid struct { + Val [2]int32 +} + +const ( + pathMax = 0x400 +) + +type RawSockaddrInet4 struct { + Len uint8 + Family uint8 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Len uint8 + Family uint8 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 +} + +type RawSockaddrUnix struct { + Len uint8 + Family uint8 + Path [104]int8 +} + +type RawSockaddrDatalink struct { + Len uint8 + Family uint8 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [24]int8 +} + +type RawSockaddr struct { + Len uint8 + Family uint8 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [92]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *byte + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Iov *Iovec + Iovlen uint32 + Control *byte + Controllen uint32 + Flags int32 +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + Filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x1c + SizeofSockaddrAny = 0x6c + SizeofSockaddrUnix = 0x6a + SizeofSockaddrDatalink = 0x20 + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x20 + SizeofICMPv6Filter = 0x20 +) + +const ( + PTRACE_TRACEME = 0x0 + PTRACE_CONT = 0x7 + PTRACE_KILL = 0x8 +) + +type Kevent_t struct { + Ident uint64 + Filter int16 + Flags uint16 + Fflags uint32 + Data int64 + Udata *byte +} + +type FdSet struct { + Bits [32]uint32 +} + +const ( + SizeofIfMsghdr = 0xa8 + SizeofIfData = 0x90 + SizeofIfaMsghdr = 0x18 + SizeofIfAnnounceMsghdr = 0x1a + SizeofRtMsghdr = 0x60 + SizeofRtMetrics = 0x38 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Xflags int32 + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Link_state uint8 + Mtu uint32 + Metric uint32 + Rdomain uint32 + Baudrate uint64 + Ipackets uint64 + Ierrors uint64 + Opackets uint64 + Oerrors uint64 + Collisions uint64 + Ibytes uint64 + Obytes uint64 + Imcasts uint64 + Omcasts uint64 + Iqdrops uint64 + Oqdrops uint64 + Noproto uint64 + Capabilities uint32 + Lastchange Timeval +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Pad1 uint8 + Pad2 uint8 + Addrs int32 + Flags int32 + Metric int32 +} + +type IfAnnounceMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + What uint16 + Name [16]int8 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Hdrlen uint16 + Index uint16 + Tableid uint16 + Priority uint8 + Mpls uint8 + Addrs int32 + Flags int32 + Fmask int32 + Pid int32 + Seq int32 + Errno int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Pksent uint64 + Expire int64 + Locks uint32 + Mtu uint32 + Refcnt uint32 + Hopcount uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pad uint32 +} + +type Mclpool struct{} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x8 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint32 + Drop uint32 +} + +type BpfProgram struct { + Len uint32 + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [2]byte +} + +type BpfTimeval struct { + Sec uint32 + Usec uint32 +} + +const ( + _AT_FDCWD = -0x64 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [20]uint8 + Ispeed int32 + Ospeed int32 +} diff --git a/runtime/internal/clite/syscall/ztypes_solaris_amd64.go b/runtime/internal/clite/syscall/ztypes_solaris_amd64.go new file mode 100644 index 00000000..d486cd00 --- /dev/null +++ b/runtime/internal/clite/syscall/ztypes_solaris_amd64.go @@ -0,0 +1,376 @@ +// Created by cgo -godefs - DO NOT EDIT +// cgo -godefs types_solaris.go + +//go:build amd64 && solaris + +package syscall + +const ( + sizeofPtr = 0x8 + sizeofShort = 0x2 + sizeofInt = 0x4 + sizeofLong = 0x8 + sizeofLongLong = 0x8 + PathMax = 0x400 +) + +type ( + _C_short int16 + _C_int int32 + _C_long int64 + _C_long_long int64 +) + +type Timespec struct { + Sec int64 + Nsec int64 +} + +type Timeval struct { + Sec int64 + Usec int64 +} + +type Timeval32 struct { + Sec int32 + Usec int32 +} + +type Rusage struct { + Utime Timeval + Stime Timeval + Maxrss int64 + Ixrss int64 + Idrss int64 + Isrss int64 + Minflt int64 + Majflt int64 + Nswap int64 + Inblock int64 + Oublock int64 + Msgsnd int64 + Msgrcv int64 + Nsignals int64 + Nvcsw int64 + Nivcsw int64 +} + +type Rlimit struct { + Cur uint64 + Max uint64 +} + +type _Pid_t int32 + +type _Gid_t uint32 + +const ( + S_IFMT = 0xf000 + S_IFIFO = 0x1000 + S_IFCHR = 0x2000 + S_IFDIR = 0x4000 + S_IFBLK = 0x6000 + S_IFREG = 0x8000 + S_IFLNK = 0xa000 + S_IFSOCK = 0xc000 + S_ISUID = 0x800 + S_ISGID = 0x400 + S_ISVTX = 0x200 + S_IRUSR = 0x100 + S_IWUSR = 0x80 + S_IXUSR = 0x40 + S_IRWXG = 0x38 + S_IRWXO = 0x7 +) + +type Stat_t struct { + Dev uint64 + Ino uint64 + Mode uint32 + Nlink uint32 + Uid uint32 + Gid uint32 + Rdev uint64 + Size int64 + Atim Timespec + Mtim Timespec + Ctim Timespec + Blksize int32 + Pad_cgo_0 [4]byte + Blocks int64 + Fstype [16]int8 +} + +type Flock_t struct { + Type int16 + Whence int16 + Pad_cgo_0 [4]byte + Start int64 + Len int64 + Sysid int32 + Pid int32 + Pad [4]int64 +} + +type Dirent struct { + Ino uint64 + Off int64 + Reclen uint16 + Name [1]int8 + Pad_cgo_0 [5]byte +} + +type RawSockaddrInet4 struct { + Family uint16 + Port uint16 + Addr [4]byte /* in_addr */ + Zero [8]int8 +} + +type RawSockaddrInet6 struct { + Family uint16 + Port uint16 + Flowinfo uint32 + Addr [16]byte /* in6_addr */ + Scope_id uint32 + X__sin6_src_id uint32 +} + +type RawSockaddrUnix struct { + Family uint16 + Path [108]int8 +} + +type RawSockaddrDatalink struct { + Family uint16 + Index uint16 + Type uint8 + Nlen uint8 + Alen uint8 + Slen uint8 + Data [244]int8 +} + +type RawSockaddr struct { + Family uint16 + Data [14]int8 +} + +type RawSockaddrAny struct { + Addr RawSockaddr + Pad [236]int8 +} + +type _Socklen uint32 + +type Linger struct { + Onoff int32 + Linger int32 +} + +type Iovec struct { + Base *int8 + Len uint64 +} + +type IPMreq struct { + Multiaddr [4]byte /* in_addr */ + Interface [4]byte /* in_addr */ +} + +type IPv6Mreq struct { + Multiaddr [16]byte /* in6_addr */ + Interface uint32 +} + +type Msghdr struct { + Name *byte + Namelen uint32 + Pad_cgo_0 [4]byte + Iov *Iovec + Iovlen int32 + Pad_cgo_1 [4]byte + Accrights *int8 + Accrightslen int32 + Pad_cgo_2 [4]byte +} + +type Cmsghdr struct { + Len uint32 + Level int32 + Type int32 +} + +type Inet6Pktinfo struct { + Addr [16]byte /* in6_addr */ + Ifindex uint32 +} + +type IPv6MTUInfo struct { + Addr RawSockaddrInet6 + Mtu uint32 +} + +type ICMPv6Filter struct { + X__icmp6_filt [8]uint32 +} + +const ( + SizeofSockaddrInet4 = 0x10 + SizeofSockaddrInet6 = 0x20 + SizeofSockaddrAny = 0xfc + SizeofSockaddrUnix = 0x6e + SizeofSockaddrDatalink = 0xfc + SizeofLinger = 0x8 + SizeofIPMreq = 0x8 + SizeofIPv6Mreq = 0x14 + SizeofMsghdr = 0x30 + SizeofCmsghdr = 0xc + SizeofInet6Pktinfo = 0x14 + SizeofIPv6MTUInfo = 0x24 + SizeofICMPv6Filter = 0x20 +) + +type FdSet struct { + Bits [1024]int64 +} + +const ( + SizeofIfMsghdr = 0x54 + SizeofIfData = 0x44 + SizeofIfaMsghdr = 0x14 + SizeofRtMsghdr = 0x4c + SizeofRtMetrics = 0x28 +) + +type IfMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Data IfData +} + +type IfData struct { + Type uint8 + Addrlen uint8 + Hdrlen uint8 + Pad_cgo_0 [1]byte + Mtu uint32 + Metric uint32 + Baudrate uint32 + Ipackets uint32 + Ierrors uint32 + Opackets uint32 + Oerrors uint32 + Collisions uint32 + Ibytes uint32 + Obytes uint32 + Imcasts uint32 + Omcasts uint32 + Iqdrops uint32 + Noproto uint32 + Lastchange Timeval32 +} + +type IfaMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Addrs int32 + Flags int32 + Index uint16 + Pad_cgo_0 [2]byte + Metric int32 +} + +type RtMsghdr struct { + Msglen uint16 + Version uint8 + Type uint8 + Index uint16 + Pad_cgo_0 [2]byte + Flags int32 + Addrs int32 + Pid int32 + Seq int32 + Errno int32 + Use int32 + Inits uint32 + Rmx RtMetrics +} + +type RtMetrics struct { + Locks uint32 + Mtu uint32 + Hopcount uint32 + Expire uint32 + Recvpipe uint32 + Sendpipe uint32 + Ssthresh uint32 + Rtt uint32 + Rttvar uint32 + Pksent uint32 +} + +const ( + SizeofBpfVersion = 0x4 + SizeofBpfStat = 0x80 + SizeofBpfProgram = 0x10 + SizeofBpfInsn = 0x8 + SizeofBpfHdr = 0x14 +) + +type BpfVersion struct { + Major uint16 + Minor uint16 +} + +type BpfStat struct { + Recv uint64 + Drop uint64 + Capt uint64 + Padding [13]uint64 +} + +type BpfProgram struct { + Len uint32 + Pad_cgo_0 [4]byte + Insns *BpfInsn +} + +type BpfInsn struct { + Code uint16 + Jt uint8 + Jf uint8 + K uint32 +} + +type BpfTimeval struct { + Sec int32 + Usec int32 +} + +type BpfHdr struct { + Tstamp BpfTimeval + Caplen uint32 + Datalen uint32 + Hdrlen uint16 + Pad_cgo_0 [2]byte +} + +const ( + _AT_FDCWD = 0xffd19553 +) + +type Termios struct { + Iflag uint32 + Oflag uint32 + Cflag uint32 + Lflag uint32 + Cc [19]uint8 + Pad_cgo_0 [1]byte +} diff --git a/runtime/internal/clite/time/time.go b/runtime/internal/clite/time/time.go new file mode 100644 index 00000000..4622aba3 --- /dev/null +++ b/runtime/internal/clite/time/time.go @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 time + +// #include +import "C" + +import ( + _ "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +const ( + LLGoPackage = "decl" +) + +// ----------------------------------------------------------------------------- + +type TimeT C.time_t + +//go:linkname Time C.time +func Time(timer *TimeT) TimeT + +//go:linkname Mktime C.mktime +func Mktime(timer *Tm) TimeT + +//go:linkname Ctime C.ctime +func Ctime(timer *TimeT) string + +//go:linkname Difftime C.difftime +func Difftime(end, start TimeT) float64 + +// ----------------------------------------------------------------------------- + +type Tm struct { + Sec c.Int + Min c.Int + Hour c.Int + Mday c.Int + Mon c.Int + Year c.Int + Wday c.Int + Yday c.Int + Isdst c.Int + Gmtoff c.Long + Zone *c.Char +} + +//go:linkname Gmtime C.gmtime +func Gmtime(timer *TimeT) *Tm + +//go:linkname Localtime C.localtime +func Localtime(timer *TimeT) *Tm + +//go:linkname Strftime C.strftime +func Strftime(buf *c.Char, bufSize uintptr, format *c.Char, timeptr *Tm) uintptr + +// ----------------------------------------------------------------------------- + +type ClockT C.clock_t + +//go:linkname Clock C.clock +func Clock() ClockT + +// ----------------------------------------------------------------------------- + +type ClockidT C.clockid_t + +const ( + // the system's real time (i.e. wall time) clock, expressed as the amount of time since the Epoch. + // This is the same as the value returned by gettimeofday + CLOCK_REALTIME = ClockidT(C.CLOCK_REALTIME) + + // clock that increments monotonically, tracking the time since an arbitrary point, and will continue + // to increment while the system is asleep. + CLOCK_MONOTONIC = ClockidT(C.CLOCK_MONOTONIC) + + // clock that increments monotonically, tracking the time since an arbitrary point like CLOCK_MONOTONIC. + // However, this clock is unaffected by frequency or time adjustments. It should not be compared to + // other system time sources. + CLOCK_MONOTONIC_RAW = ClockidT(C.CLOCK_MONOTONIC_RAW) + + // like CLOCK_MONOTONIC_RAW, but reads a value cached by the system at context switch. This can be + // read faster, but at a loss of accuracy as it may return values that are milliseconds old. + // CLOCK_MONOTONIC_RAW_APPROX = ClockidT(C.CLOCK_MONOTONIC_RAW_APPROX) + + // clock that increments monotonically, in the same manner as CLOCK_MONOTONIC_RAW, but that does + // not increment while the system is asleep. The returned value is identical to the result of + // mach_absolute_time() after the appropriate mach_timebase conversion is applied. + // CLOCK_UPTIME_RAW = ClockidT(C.CLOCK_UPTIME_RAW) + + // like CLOCK_UPTIME_RAW, but reads a value cached by the system at context switch. This can be read + // faster, but at a loss of accuracy as it may return values that are milliseconds old. + // CLOCK_UPTIME_RAW_APPROX = ClockidT(C.CLOCK_UPTIME_RAW_APPROX) + + // clock that tracks the amount of CPU (in user- or kernel-mode) used by the calling process. + CLOCK_PROCESS_CPUTIME_ID = ClockidT(C.CLOCK_PROCESS_CPUTIME_ID) + + // clock that tracks the amount of CPU (in user- or kernel-mode) used by the calling thread. + CLOCK_THREAD_CPUTIME_ID = ClockidT(C.CLOCK_THREAD_CPUTIME_ID) +) + +type Timespec struct { + Sec TimeT // seconds + Nsec c.Long // and nanoseconds +} + +//go:linkname ClockGettime C.clock_gettime +func ClockGettime(clkId ClockidT, tp *Timespec) c.Int + +//go:linkname ClockSettime C.clock_settime +func ClockSettime(clkId ClockidT, tp *Timespec) c.Int + +//go:linkname ClockGetres C.clock_getres +func ClockGetres(clkId ClockidT, res *Timespec) c.Int + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/clite/zlib/README.md b/runtime/internal/clite/zlib/README.md new file mode 100644 index 00000000..7b6d32c4 --- /dev/null +++ b/runtime/internal/clite/zlib/README.md @@ -0,0 +1,30 @@ +# LLGo wrapper of madler/zlib + +## How to install + +### on macOS (Homebrew) + +```sh +brew install zlib +``` + +### on Linux (Debian/Ubuntu) + +```sh +TODO +``` + +## Demos + +The `_demo` directory contains our demos (it start with `_` to prevent the `go` command from compiling it): + +- [normal](_demo/normal/compress.go): a basic zlib demo + +### How to run demos + +To run the demos in directory `_demo`: + +```sh +cd # eg. cd _demo/normal +llgo run . +``` diff --git a/runtime/internal/clite/zlib/zlib.go b/runtime/internal/clite/zlib/zlib.go new file mode 100644 index 00000000..2a413df0 --- /dev/null +++ b/runtime/internal/clite/zlib/zlib.go @@ -0,0 +1,260 @@ +/* + * Copyright (c) 2024 The GoPlus Authors (goplus.org). All rights reserved. + * + * 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 zlib + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" +) + +const ( + LLGoPackage = "link: $(pkg-config --libs zlib); -lz" +) + +/* errno */ +const ( + OK = 0 + STREAM_END = 1 + NEED_DICT = 2 + ERRNO = -1 + STREAM_ERROR = -2 + DATA_ERROR = -3 + MEM_ERROR = -4 + BUF_ERROR = -5 + VERSION_ERROR = -6 +) + +/* compression levels */ +const ( + NO_COMPRESSION = 0 + BEST_SPEED = 1 + BEST_COMPRESSION = 9 + DEFAULT_COMPRESSION = -1 +) + +const ( + NO_FLUSH = 0 + PARTIAL_FLUSH = 1 + SYNC_FLUSH = 2 + FULL_FLUSH = 3 + FINISH = 4 + BLOCK = 5 + TREES = 6 +) + +const ( + FILTERED = 1 + HUFFMAN_ONLY = 2 + RLE = 3 + FIXED = 4 + DEFAULT_STRATEGY = 0 +) + +const ( + BINARY = 0 + TEXT = 1 + ASCII = TEXT + UNKNOWN = 2 +) + +const ( + DEFLATED = 8 +) + +// ----------------------------------------------------------------------------- + +/* +ZEXTERN uLong ZEXPORT compressBound OF((uLong sourceLen)); + +compressBound() returns an upper bound on the compressed size after +compress() or compress2() on sourceLen bytes. It would be used before a +compress() or compress2() call to allocate the destination buffer. +*/ +//go:linkname CompressBound C.compressBound +func CompressBound(sourceLen c.Ulong) c.Ulong + +/* +ZEXTERN int ZEXPORT compress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); + +Compresses the source buffer into the destination buffer. sourceLen is +the byte length of the source buffer. Upon entry, destLen is the total size +of the destination buffer, which must be at least the value returned by +compressBound(sourceLen). Upon exit, destLen is the actual size of the +compressed data. compress() is equivalent to compress2() with a level +parameter of Z_DEFAULT_COMPRESSION. + +compress returns Z_OK if success, Z_MEM_ERROR if there was not +enough memory, Z_BUF_ERROR if there was not enough room in the output +buffer. +*/ +//go:linkname Compress C.compress +func Compress(dest *byte, destLen *c.Ulong, source *byte, sourceLen c.Ulong) c.Int + +/* +ZEXTERN int ZEXPORT compress2 OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen, int level)); + +Compresses the source buffer into the destination buffer. The level +parameter has the same meaning as in deflateInit. sourceLen is the byte +length of the source buffer. Upon entry, destLen is the total size of the +destination buffer, which must be at least the value returned by +compressBound(sourceLen). Upon exit, destLen is the actual size of the +compressed data. + +compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough +memory, Z_BUF_ERROR if there was not enough room in the output buffer, +Z_STREAM_ERROR if the level parameter is invalid. +*/ +//go:linkname Compress2 C.compress2 +func Compress2(dest *byte, destLen *c.Ulong, source *byte, sourceLen c.Ulong, level c.Int) c.Int + +/* +ZEXTERN int ZEXPORT uncompress OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong sourceLen)); + +Decompresses the source buffer into the destination buffer. sourceLen is +the byte length of the source buffer. Upon entry, destLen is the total size +of the destination buffer, which must be large enough to hold the entire +uncompressed data. (The size of the uncompressed data must have been saved +previously by the compressor and transmitted to the decompressor by some +mechanism outside the scope of this compression library.) Upon exit, destLen +is the actual size of the uncompressed data. + +uncompress returns Z_OK if success, Z_MEM_ERROR if there was not +enough memory, Z_BUF_ERROR if there was not enough room in the output +buffer, or Z_DATA_ERROR if the input data was corrupted or incomplete. In +the case where there is not enough room, uncompress() will fill the output +buffer with the uncompressed data up to that point. +*/ +//go:linkname Uncompress C.uncompress +func Uncompress(dest *byte, destLen *c.Ulong, source *byte, sourceLen c.Ulong) c.Int + +/* +ZEXTERN int ZEXPORT uncompress2 OF((Bytef *dest, uLongf *destLen, + const Bytef *source, uLong *sourceLen)); + +Same as uncompress, except that sourceLen is a pointer, where the +length of the source is *sourceLen. On return, *sourceLen is the number of +source bytes consumed. +*/ +//go:linkname Uncompress2 C.uncompress2 +func Uncompress2(dest *byte, destLen *c.Ulong, source *byte, sourceLen *c.Ulong) c.Int + +// ----------------------------------------------------------------------------- + +/* +ZEXTERN uLong ZEXPORT crc32 OF((uLong crc, const Bytef *buf, uInt len)); + +Update a running CRC-32 with the bytes buf[0..len-1] and return the +updated CRC-32. If buf is Z_NULL, this function returns the required +initial value for the crc. Pre- and post-conditioning (one's complement) is +performed within this function so it shouldn't be done by the application. + +Usage example: + + uLong crc = crc32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + crc = crc32(crc, buffer, length); + } + if (crc != original_crc) error(); +*/ +//go:linkname Crc32 C.crc32 +func Crc32(crc c.Ulong, buf *byte, len c.Uint) c.Ulong + +/* +ZEXTERN uLong ZEXPORT crc32_z OF((uLong adler, const Bytef *buf, z_size_t len)); + +Same as crc32(), but with a size_t length. +*/ +//go:linkname Crc32Z C.crc32_z +func Crc32Z(crc c.Ulong, buf *byte, len uintptr) c.Ulong + +func Crc32ZBytes(crc c.Ulong, buf []byte) c.Ulong { + return Crc32Z(crc, unsafe.SliceData(buf), uintptr(len(buf))) +} + +func Crc32ZString(crc c.Ulong, buf string) c.Ulong { + return Crc32Z(crc, unsafe.StringData(buf), uintptr(len(buf))) +} + +/* +ZEXTERN uLong ZEXPORT crc32_combine OF((uLong crc1, uLong crc2, z_off_t len2)); + +Combine two CRC-32 check values into one. For two sequences of bytes, +seq1 and seq2 with lengths len1 and len2, CRC-32 check values were +calculated for each, crc1 and crc2. crc32_combine() returns the CRC-32 +check value of seq1 and seq2 concatenated, requiring only crc1, crc2, and +len2. +*/ +//go:linkname Crc32Combine C.crc32_combine +func Crc32Combine(crc1 c.Ulong, crc2 c.Ulong, len2 int64) c.Ulong + +/* +ZEXTERN uLong ZEXPORT adler32 OF((uLong adler, const Bytef *buf, uInt len)); + +Update a running Adler-32 checksum with the bytes buf[0..len-1] and +return the updated checksum. If buf is Z_NULL, this function returns the +required initial value for the checksum. + +An Adler-32 checksum is almost as reliable as a CRC-32 but can be computed +much faster. + +Usage example: + + uLong adler = adler32(0L, Z_NULL, 0); + + while (read_buffer(buffer, length) != EOF) { + adler = adler32(adler, buffer, length); + } + if (adler != original_adler) error(); +*/ +//go:linkname Adler32 C.adler32 +func Adler32(adler c.Ulong, buf *byte, len c.Uint) c.Ulong + +/* +ZEXTERN uLong ZEXPORT adler32_z OF((uLong adler, const Bytef *buf, z_size_t len)); + +Same as adler32(), but with a size_t length. +*/ +//go:linkname Adler32Z C.adler32_z +func Adler32Z(adler c.Ulong, buf *byte, len uintptr) c.Ulong + +func Adler32ZBytes(adler c.Ulong, buf []byte) c.Ulong { + return Adler32Z(adler, unsafe.SliceData(buf), uintptr(len(buf))) +} + +func Adler32ZString(adler c.Ulong, buf string) c.Ulong { + return Adler32Z(adler, unsafe.StringData(buf), uintptr(len(buf))) +} + +/* +ZEXTERN uLong ZEXPORT adler32_combine OF((uLong adler1, uLong adler2, z_off_t len2)); + +Combine two Adler-32 checksums into one. For two sequences of bytes, seq1 +and seq2 with lengths len1 and len2, Adler-32 checksums were calculated for +each, adler1 and adler2. adler32_combine() returns the Adler-32 checksum of +seq1 and seq2 concatenated, requiring only adler1, adler2, and len2. Note +that the z_off_t type (like off_t) is a signed integer. If len2 is +negative, the result has no meaning or utility. +*/ +//go:linkname Adler32Combine C.adler32_combine +func Adler32Combine(adler1 c.Ulong, adler2 c.Ulong, len2 int64) c.Ulong + +// ----------------------------------------------------------------------------- diff --git a/runtime/internal/ffi/ffi.go b/runtime/internal/ffi/ffi.go new file mode 100644 index 00000000..f5c35fd3 --- /dev/null +++ b/runtime/internal/ffi/ffi.go @@ -0,0 +1,92 @@ +package ffi + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/ffi" +) + +type Type = ffi.Type + +type Signature = ffi.Cif + +type Error int + +func (s Error) Error() string { + switch s { + case ffi.OK: + return "ok" + case ffi.BAD_TYPEDEF: + return "bad type def" + case ffi.BAD_ABI: + return "bad ABI" + case ffi.BAD_ARGTYPE: + return "bad argument type" + } + return "invalid status" +} + +func NewSignature(ret *Type, args ...*Type) (*Signature, error) { + var cif Signature + var atype **Type + if len(args) > 0 { + atype = &args[0] + } + status := ffi.PrepCif(&cif, ffi.DefaultAbi, c.Uint(len(args)), ret, atype) + if status == 0 { + return &cif, nil + } + return nil, Error(status) +} + +func NewSignatureVar(ret *Type, fixed int, args ...*Type) (*Signature, error) { + var cif Signature + var atype **Type + if len(args) > 0 { + atype = &args[0] + } + status := ffi.PrepCifVar(&cif, ffi.DefaultAbi, c.Uint(fixed), c.Uint(len(args)), ret, atype) + if status == ffi.OK { + return &cif, nil + } + return nil, Error(status) +} + +func Call(cif *Signature, fn unsafe.Pointer, ret unsafe.Pointer, args ...unsafe.Pointer) { + var avalues *unsafe.Pointer + if len(args) > 0 { + avalues = &args[0] + } + ffi.Call(cif, fn, ret, avalues) +} + +type Closure struct { + ptr unsafe.Pointer + Fn unsafe.Pointer +} + +func NewClosure() *Closure { + c := &Closure{} + c.ptr = ffi.ClosureAlloc(&c.Fn) + return c +} + +func (c *Closure) Free() { + if c != nil && c.ptr != nil { + ffi.ClosureFree(c.ptr) + c.ptr = nil + } +} + +func (c *Closure) Bind(cif *Signature, fn ffi.ClosureFunc, userdata unsafe.Pointer) error { + status := ffi.PreClosureLoc(c.ptr, cif, fn, userdata, c.Fn) + if status == ffi.OK { + return nil + } + return Error(status) +} + +func Index(args *unsafe.Pointer, i uintptr) unsafe.Pointer { + return ffi.Index(args, i) +} diff --git a/runtime/internal/ffi/type.go b/runtime/internal/ffi/type.go new file mode 100644 index 00000000..1599dd32 --- /dev/null +++ b/runtime/internal/ffi/type.go @@ -0,0 +1,124 @@ +package ffi + +import ( + "unsafe" + + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/ffi" +) + +type BasicKind int + +const ( + Void BasicKind = iota // type is invalid + + // predeclared types + Bool + Int + Int8 + Int16 + Int32 + Int64 + Uint + Uint8 + Uint16 + Uint32 + Uint64 + Uintptr + Float32 + Float64 + Complex64 + Complex128 + String + UnsafePointer + Interface + Slice + + // aliases + Byte = Uint8 + Rune = Int32 +) + +const ( + _64bit = 1 << (^uintptr(0) >> 63) / 2 + _Int = _64bit*ffi.Sint64 + (1-_64bit)*ffi.Sint32 + _Uint = _64bit*ffi.Uint64 + (1-_64bit)*ffi.Uint32 + _sizei = unsafe.Sizeof(0) + _aligni = uint16(unsafe.Alignof(0)) + _sizeci = unsafe.Sizeof(c.Int(0)) + _alignci = uint16(unsafe.Alignof(c.Int(0))) + _sizes = unsafe.Sizeof("") + _aligns = uint16(unsafe.Alignof("")) +) + +var ( + TypeVoid = &Type{1, 1, ffi.Void, nil} + TypeBool = &Type{1, 1, ffi.Uint8, nil} + TypeInt8 = &Type{1, 1, ffi.Sint8, nil} + TypeInt16 = &Type{2, 2, ffi.Sint16, nil} + TypeInt32 = &Type{4, 4, ffi.Sint32, nil} + TypeInt64 = &Type{8, 8, ffi.Sint64, nil} + TypeUint8 = &Type{1, 1, ffi.Uint8, nil} + TypeUint16 = &Type{2, 2, ffi.Uint16, nil} + TypeUint32 = &Type{4, 4, ffi.Uint32, nil} + TypeUint64 = &Type{8, 8, ffi.Uint64, nil} + TypeFloat32 = &Type{4, 4, ffi.Float, nil} + TypeFloat64 = &Type{8, 8, ffi.Double, nil} + TypeComplex64 = &Type{8, 4, ffi.Complex, &[]*Type{TypeFloat32, nil}[0]} + TypeComplex128 = &Type{16, 8, ffi.Complex, &[]*Type{TypeFloat64, nil}[0]} + TypeInt = &Type{_sizei, _aligni, _Int, nil} + TypeUint = &Type{_sizei, _aligni, _Uint, nil} + TypeUintptr = &Type{_sizei, _aligni, _Uint, nil} + TypePointer = &Type{_sizei, _aligni, ffi.Pointer, nil} + TypeString = StructOf(TypePointer, TypeInt) + TypeInterface = StructOf(TypePointer, TypePointer) + TypeSlice = StructOf(TypePointer, TypeInt, TypeInt) +) + +var Typ = []*Type{ + Void: TypeVoid, + Bool: TypeBool, + Int: TypeInt, + Int8: TypeInt8, + Int16: TypeInt16, + Int32: TypeInt32, + Int64: TypeInt64, + Uint: TypeUint, + Uint8: TypeUint8, + Uint16: TypeUint16, + Uint32: TypeUint32, + Uint64: TypeUint64, + Uintptr: TypeUintptr, + Float32: TypeFloat32, + Float64: TypeFloat64, + Complex64: TypeComplex64, + Complex128: TypeComplex128, + String: TypeString, + UnsafePointer: TypePointer, + Interface: TypeInterface, + Slice: TypeSlice, +} + +func ArrayOf(elem *Type, N int) *Type { + fs := make([]*Type, N+1) + for i := 0; i < N; i++ { + fs[i] = elem + } + return &Type{ + 0, + 0, + ffi.Struct, + &fs[0], + } +} + +func StructOf(fields ...*Type) *Type { + fs := make([]*Type, len(fields)+1) + copy(fs, fields) + return &Type{ + 0, + 0, + ffi.Struct, + &fs[0], + } +} diff --git a/internal/lib/crypto/hmac/hmac.go b/runtime/internal/lib/crypto/hmac/hmac.go similarity index 94% rename from internal/lib/crypto/hmac/hmac.go rename to runtime/internal/lib/crypto/hmac/hmac.go index 3fb933d2..99633d3e 100644 --- a/internal/lib/crypto/hmac/hmac.go +++ b/runtime/internal/lib/crypto/hmac/hmac.go @@ -7,8 +7,8 @@ import ( "hash" "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/openssl" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/openssl" ) type eface struct { diff --git a/internal/lib/crypto/md5/md5.go b/runtime/internal/lib/crypto/md5/md5.go similarity index 93% rename from internal/lib/crypto/md5/md5.go rename to runtime/internal/lib/crypto/md5/md5.go index 7865000e..76eb531a 100644 --- a/internal/lib/crypto/md5/md5.go +++ b/runtime/internal/lib/crypto/md5/md5.go @@ -22,8 +22,8 @@ import ( "hash" "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/openssl" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/openssl" ) func init() { diff --git a/internal/lib/crypto/rand/rand.go b/runtime/internal/lib/crypto/rand/rand.go similarity index 96% rename from internal/lib/crypto/rand/rand.go rename to runtime/internal/lib/crypto/rand/rand.go index 091614ca..599f5a6c 100644 --- a/internal/lib/crypto/rand/rand.go +++ b/runtime/internal/lib/crypto/rand/rand.go @@ -20,8 +20,8 @@ package rand import ( "io" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/openssl" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/openssl" "github.com/qiniu/x/errors" ) diff --git a/internal/lib/crypto/rand/util.go b/runtime/internal/lib/crypto/rand/util.go similarity index 100% rename from internal/lib/crypto/rand/util.go rename to runtime/internal/lib/crypto/rand/util.go diff --git a/internal/lib/crypto/sha1/sha1.go b/runtime/internal/lib/crypto/sha1/sha1.go similarity index 93% rename from internal/lib/crypto/sha1/sha1.go rename to runtime/internal/lib/crypto/sha1/sha1.go index 3e82b36a..79c1c505 100644 --- a/internal/lib/crypto/sha1/sha1.go +++ b/runtime/internal/lib/crypto/sha1/sha1.go @@ -22,8 +22,8 @@ import ( "hash" "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/openssl" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/openssl" ) func init() { diff --git a/internal/lib/crypto/sha256/sha224.go b/runtime/internal/lib/crypto/sha256/sha224.go similarity index 93% rename from internal/lib/crypto/sha256/sha224.go rename to runtime/internal/lib/crypto/sha256/sha224.go index bcc78050..30af630e 100644 --- a/internal/lib/crypto/sha256/sha224.go +++ b/runtime/internal/lib/crypto/sha256/sha224.go @@ -20,8 +20,8 @@ import ( "hash" "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/openssl" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/openssl" ) // The size of a SHA224 checksum in bytes. diff --git a/internal/lib/crypto/sha256/sha256.go b/runtime/internal/lib/crypto/sha256/sha256.go similarity index 93% rename from internal/lib/crypto/sha256/sha256.go rename to runtime/internal/lib/crypto/sha256/sha256.go index c12df32f..cce5bcc2 100644 --- a/internal/lib/crypto/sha256/sha256.go +++ b/runtime/internal/lib/crypto/sha256/sha256.go @@ -22,8 +22,8 @@ import ( "hash" "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/openssl" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/openssl" ) func init() { diff --git a/internal/lib/crypto/sha512/sha384.go b/runtime/internal/lib/crypto/sha512/sha384.go similarity index 92% rename from internal/lib/crypto/sha512/sha384.go rename to runtime/internal/lib/crypto/sha512/sha384.go index a30e2be6..1e839429 100644 --- a/internal/lib/crypto/sha512/sha384.go +++ b/runtime/internal/lib/crypto/sha512/sha384.go @@ -20,8 +20,8 @@ import ( "hash" "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/openssl" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/openssl" ) type digest384 struct { diff --git a/internal/lib/crypto/sha512/sha512.go b/runtime/internal/lib/crypto/sha512/sha512.go similarity index 95% rename from internal/lib/crypto/sha512/sha512.go rename to runtime/internal/lib/crypto/sha512/sha512.go index 7e658d6a..adff894e 100644 --- a/internal/lib/crypto/sha512/sha512.go +++ b/runtime/internal/lib/crypto/sha512/sha512.go @@ -22,8 +22,8 @@ import ( "hash" "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/openssl" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/openssl" ) func init() { diff --git a/internal/lib/crypto/subtle/xor.go b/runtime/internal/lib/crypto/subtle/xor.go similarity index 100% rename from internal/lib/crypto/subtle/xor.go rename to runtime/internal/lib/crypto/subtle/xor.go diff --git a/internal/lib/fmt/errors.go b/runtime/internal/lib/fmt/errors.go similarity index 100% rename from internal/lib/fmt/errors.go rename to runtime/internal/lib/fmt/errors.go diff --git a/internal/lib/fmt/fmt.go b/runtime/internal/lib/fmt/fmt.go similarity index 100% rename from internal/lib/fmt/fmt.go rename to runtime/internal/lib/fmt/fmt.go diff --git a/internal/lib/fmt/format.go b/runtime/internal/lib/fmt/format.go similarity index 100% rename from internal/lib/fmt/format.go rename to runtime/internal/lib/fmt/format.go diff --git a/internal/lib/fmt/print.go b/runtime/internal/lib/fmt/print.go similarity index 100% rename from internal/lib/fmt/print.go rename to runtime/internal/lib/fmt/print.go diff --git a/internal/lib/hash/crc32/crc32.go b/runtime/internal/lib/hash/crc32/crc32.go similarity index 96% rename from internal/lib/hash/crc32/crc32.go rename to runtime/internal/lib/hash/crc32/crc32.go index 9acfcc2c..a26ad5e7 100644 --- a/internal/lib/hash/crc32/crc32.go +++ b/runtime/internal/lib/hash/crc32/crc32.go @@ -20,8 +20,8 @@ package crc32 import ( "hash" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/zlib" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/zlib" ) // The size of a CRC-32 checksum in bytes. diff --git a/internal/mod/mod.go b/runtime/internal/lib/internal/abi/abi.go similarity index 52% rename from internal/mod/mod.go rename to runtime/internal/lib/internal/abi/abi.go index ccb51114..e2bfb3b9 100644 --- a/internal/mod/mod.go +++ b/runtime/internal/lib/internal/abi/abi.go @@ -14,35 +14,18 @@ * limitations under the License. */ -package mod +package abi +// llgo:skipall import ( - "path" - "path/filepath" + "unsafe" - "github.com/goplus/mod" - "github.com/goplus/mod/gopmod" + "github.com/goplus/llgo/runtime/abi" ) -// Module represents a Go module. -type Module = gopmod.Module +type InterfaceType = abi.InterfaceType -// Load loads a Go module from a directory. -func Load(dir string) (ret *Module, pkgPath string, err error) { - if dir, err = filepath.Abs(dir); err != nil { - return - } - _, gomod, err := mod.FindGoMod(dir) - if err != nil { - return - } - if ret, err = gopmod.LoadFrom(gomod, ""); err != nil { - return - } - relPath, err := filepath.Rel(ret.Root(), dir) - if err != nil { - return - } - pkgPath = path.Join(ret.Path(), filepath.ToSlash(relPath)) - return +func NoEscape(p unsafe.Pointer) unsafe.Pointer { + x := uintptr(p) + return unsafe.Pointer(x ^ 0) } diff --git a/internal/lib/internal/bytealg/bytealg.go b/runtime/internal/lib/internal/bytealg/bytealg.go similarity index 86% rename from internal/lib/internal/bytealg/bytealg.go rename to runtime/internal/lib/internal/bytealg/bytealg.go index 64652abf..95ea17d4 100644 --- a/internal/lib/internal/bytealg/bytealg.go +++ b/runtime/internal/lib/internal/bytealg/bytealg.go @@ -16,12 +16,12 @@ package bytealg -// llgo:skip init +// llgo:skip init CompareString import ( "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/internal/runtime" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/runtime" ) func IndexByte(b []byte, ch byte) int { @@ -123,3 +123,26 @@ func LastIndexByteString(s string, c byte) int { } return -1 } + +func CompareString(a, b string) int { + l := len(a) + if len(b) < l { + l = len(b) + } + for i := 0; i < l; i++ { + c1, c2 := a[i], b[i] + if c1 < c2 { + return -1 + } + if c1 > c2 { + return +1 + } + } + if len(a) < len(b) { + return -1 + } + if len(a) > len(b) { + return +1 + } + return 0 +} diff --git a/runtime/internal/lib/internal/filepathlite/filepathlite.go b/runtime/internal/lib/internal/filepathlite/filepathlite.go new file mode 100644 index 00000000..34a3de68 --- /dev/null +++ b/runtime/internal/lib/internal/filepathlite/filepathlite.go @@ -0,0 +1 @@ +package filepathlite diff --git a/internal/lib/internal/fmtsort/sort.go b/runtime/internal/lib/internal/fmtsort/sort.go similarity index 100% rename from internal/lib/internal/fmtsort/sort.go rename to runtime/internal/lib/internal/fmtsort/sort.go diff --git a/internal/lib/internal/itoa/itoa.go b/runtime/internal/lib/internal/itoa/itoa.go similarity index 100% rename from internal/lib/internal/itoa/itoa.go rename to runtime/internal/lib/internal/itoa/itoa.go diff --git a/internal/lib/internal/oserror/errors.go b/runtime/internal/lib/internal/oserror/errors.go similarity index 100% rename from internal/lib/internal/oserror/errors.go rename to runtime/internal/lib/internal/oserror/errors.go diff --git a/runtime/internal/lib/internal/race/race.go b/runtime/internal/lib/internal/race/race.go new file mode 100644 index 00000000..a6b23589 --- /dev/null +++ b/runtime/internal/lib/internal/race/race.go @@ -0,0 +1 @@ +package race diff --git a/internal/lib/internal/reflectlite/reflectlite.go b/runtime/internal/lib/internal/reflectlite/reflectlite.go similarity index 100% rename from internal/lib/internal/reflectlite/reflectlite.go rename to runtime/internal/lib/internal/reflectlite/reflectlite.go diff --git a/internal/lib/internal/reflectlite/swapper.go b/runtime/internal/lib/internal/reflectlite/swapper.go similarity index 100% rename from internal/lib/internal/reflectlite/swapper.go rename to runtime/internal/lib/internal/reflectlite/swapper.go diff --git a/internal/lib/internal/reflectlite/type.go b/runtime/internal/lib/internal/reflectlite/type.go similarity index 99% rename from internal/lib/internal/reflectlite/type.go rename to runtime/internal/lib/internal/reflectlite/type.go index 8e06a915..e6dbcecd 100644 --- a/internal/lib/internal/reflectlite/type.go +++ b/runtime/internal/lib/internal/reflectlite/type.go @@ -9,7 +9,7 @@ package reflectlite import ( "unsafe" - "github.com/goplus/llgo/internal/abi" + "github.com/goplus/llgo/runtime/abi" ) // Type is the representation of a Go type. diff --git a/internal/lib/internal/reflectlite/unsafeheader.go b/runtime/internal/lib/internal/reflectlite/unsafeheader.go similarity index 100% rename from internal/lib/internal/reflectlite/unsafeheader.go rename to runtime/internal/lib/internal/reflectlite/unsafeheader.go diff --git a/internal/lib/internal/reflectlite/value.go b/runtime/internal/lib/internal/reflectlite/value.go similarity index 98% rename from internal/lib/internal/reflectlite/value.go rename to runtime/internal/lib/internal/reflectlite/value.go index 9bbd5e47..743def07 100644 --- a/internal/lib/internal/reflectlite/value.go +++ b/runtime/internal/lib/internal/reflectlite/value.go @@ -7,8 +7,8 @@ package reflectlite import ( "unsafe" - "github.com/goplus/llgo/internal/abi" - _ "github.com/goplus/llgo/internal/runtime" + "github.com/goplus/llgo/runtime/abi" + _ "github.com/goplus/llgo/runtime/internal/runtime" ) // Value is the reflection interface to a Go value. @@ -402,7 +402,7 @@ func (v Value) Type() Type { * constructors */ -//go:linkname unsafe_New github.com/goplus/llgo/internal/runtime.New +//go:linkname unsafe_New github.com/goplus/llgo/runtime/internal/runtime.New func unsafe_New(*abi.Type) unsafe.Pointer // ValueOf returns a new Value initialized to the concrete value @@ -473,5 +473,5 @@ func arrayAt(p unsafe.Pointer, i int, eltSize uintptr, whySafe string) unsafe.Po // typedmemmove copies a value of type t to dst from src. // -//go:linkname typedmemmove github.com/goplus/llgo/internal/runtime.Typedmemmove +//go:linkname typedmemmove github.com/goplus/llgo/runtime/internal/runtime.Typedmemmove func typedmemmove(t *abi.Type, dst, src unsafe.Pointer) diff --git a/runtime/internal/lib/internal/stringslite/strings.go b/runtime/internal/lib/internal/stringslite/strings.go new file mode 100644 index 00000000..66be1e34 --- /dev/null +++ b/runtime/internal/lib/internal/stringslite/strings.go @@ -0,0 +1 @@ +package stringslite diff --git a/internal/lib/internal/syscall/execenv/execenv_default.go b/runtime/internal/lib/internal/syscall/execenv/execenv_default.go similarity index 100% rename from internal/lib/internal/syscall/execenv/execenv_default.go rename to runtime/internal/lib/internal/syscall/execenv/execenv_default.go diff --git a/internal/lib/internal/syscall/execenv/execenv_windows.go b/runtime/internal/lib/internal/syscall/execenv/execenv_windows.go similarity index 100% rename from internal/lib/internal/syscall/execenv/execenv_windows.go rename to runtime/internal/lib/internal/syscall/execenv/execenv_windows.go diff --git a/internal/lib/internal/syscall/unix/nonblocking_js.go b/runtime/internal/lib/internal/syscall/unix/nonblocking_js.go similarity index 100% rename from internal/lib/internal/syscall/unix/nonblocking_js.go rename to runtime/internal/lib/internal/syscall/unix/nonblocking_js.go diff --git a/internal/lib/internal/syscall/unix/nonblocking_unix.go b/runtime/internal/lib/internal/syscall/unix/nonblocking_unix.go similarity index 88% rename from internal/lib/internal/syscall/unix/nonblocking_unix.go rename to runtime/internal/lib/internal/syscall/unix/nonblocking_unix.go index 10f43d56..a7014ccd 100644 --- a/internal/lib/internal/syscall/unix/nonblocking_unix.go +++ b/runtime/internal/lib/internal/syscall/unix/nonblocking_unix.go @@ -6,7 +6,7 @@ package unix -import "github.com/goplus/llgo/c/syscall" +import "github.com/goplus/llgo/runtime/internal/clite/syscall" /* TODO(xsw): func IsNonblock(fd int) (nonblocking bool, err error) { diff --git a/internal/lib/internal/syscall/unix/nonblocking_wasip1.go b/runtime/internal/lib/internal/syscall/unix/nonblocking_wasip1.go similarity index 92% rename from internal/lib/internal/syscall/unix/nonblocking_wasip1.go rename to runtime/internal/lib/internal/syscall/unix/nonblocking_wasip1.go index 8f808207..38accf58 100644 --- a/internal/lib/internal/syscall/unix/nonblocking_wasip1.go +++ b/runtime/internal/lib/internal/syscall/unix/nonblocking_wasip1.go @@ -6,7 +6,7 @@ package unix -import "github.com/goplus/llgo/c/syscall" +import "github.com/goplus/llgo/runtime/internal/clite/syscall" /* TODO(xsw): import ( diff --git a/internal/lib/internal/syscall/unix/unix.go b/runtime/internal/lib/internal/syscall/unix/unix.go similarity index 100% rename from internal/lib/internal/syscall/unix/unix.go rename to runtime/internal/lib/internal/syscall/unix/unix.go diff --git a/internal/lib/io/pipe.go b/runtime/internal/lib/io/pipe.go similarity index 100% rename from internal/lib/io/pipe.go rename to runtime/internal/lib/io/pipe.go diff --git a/runtime/internal/lib/iter/iter.go b/runtime/internal/lib/iter/iter.go new file mode 100644 index 00000000..371edaf3 --- /dev/null +++ b/runtime/internal/lib/iter/iter.go @@ -0,0 +1 @@ +package iter diff --git a/internal/lib/math/big/int.go b/runtime/internal/lib/math/big/int.go similarity index 99% rename from internal/lib/math/big/int.go rename to runtime/internal/lib/math/big/int.go index e0bbbfe1..e36a434f 100644 --- a/internal/lib/math/big/int.go +++ b/runtime/internal/lib/math/big/int.go @@ -20,8 +20,8 @@ package big import ( "math/rand" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/openssl" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/openssl" ) // A Word represents a single digit of a multi-precision unsigned integer. diff --git a/internal/lib/math/big/intconv.go b/runtime/internal/lib/math/big/intconv.go similarity index 95% rename from internal/lib/math/big/intconv.go rename to runtime/internal/lib/math/big/intconv.go index 4b946be3..32826602 100644 --- a/internal/lib/math/big/intconv.go +++ b/runtime/internal/lib/math/big/intconv.go @@ -17,8 +17,8 @@ package big import ( - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/openssl" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/openssl" ) /* diff --git a/internal/lib/math/cmplx/cmplx.go b/runtime/internal/lib/math/cmplx/cmplx.go similarity index 100% rename from internal/lib/math/cmplx/cmplx.go rename to runtime/internal/lib/math/cmplx/cmplx.go diff --git a/internal/lib/math/math.go b/runtime/internal/lib/math/math.go similarity index 98% rename from internal/lib/math/math.go rename to runtime/internal/lib/math/math.go index 09ccdaac..e53e88c7 100644 --- a/internal/lib/math/math.go +++ b/runtime/internal/lib/math/math.go @@ -20,7 +20,7 @@ package math import ( _ "unsafe" - "github.com/goplus/llgo/c" + c "github.com/goplus/llgo/runtime/internal/clite" ) const ( diff --git a/internal/lib/math/rand/exp.go b/runtime/internal/lib/math/rand/exp.go similarity index 100% rename from internal/lib/math/rand/exp.go rename to runtime/internal/lib/math/rand/exp.go diff --git a/internal/lib/math/rand/normal.go b/runtime/internal/lib/math/rand/normal.go similarity index 100% rename from internal/lib/math/rand/normal.go rename to runtime/internal/lib/math/rand/normal.go diff --git a/internal/lib/math/rand/rand.go b/runtime/internal/lib/math/rand/rand.go similarity index 98% rename from internal/lib/math/rand/rand.go rename to runtime/internal/lib/math/rand/rand.go index d5e80f89..3cba1a59 100644 --- a/internal/lib/math/rand/rand.go +++ b/runtime/internal/lib/math/rand/rand.go @@ -23,9 +23,9 @@ import ( "sync/atomic" _ "unsafe" // for go:linkname - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/math/rand" - "github.com/goplus/llgo/c/time" + "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/math/rand" + "github.com/goplus/llgo/runtime/internal/clite/time" ) // A Source represents a source of uniformly-distributed @@ -346,7 +346,7 @@ func fastrand64() uint64 { } func init() { - rand.Srandom(c.Uint(time.Time(nil))) + rand.Srandom(clite.Uint(time.Time(nil))) } // fastSource is an implementation of Source64 that uses the runtime diff --git a/internal/lib/math/rand/rng.go b/runtime/internal/lib/math/rand/rng.go similarity index 100% rename from internal/lib/math/rand/rng.go rename to runtime/internal/lib/math/rand/rng.go diff --git a/internal/lib/math/rand/zipf.go b/runtime/internal/lib/math/rand/zipf.go similarity index 100% rename from internal/lib/math/rand/zipf.go rename to runtime/internal/lib/math/rand/zipf.go diff --git a/internal/lib/os/env.go b/runtime/internal/lib/os/env.go similarity index 100% rename from internal/lib/os/env.go rename to runtime/internal/lib/os/env.go diff --git a/internal/lib/os/error.go b/runtime/internal/lib/os/error.go similarity index 100% rename from internal/lib/os/error.go rename to runtime/internal/lib/os/error.go diff --git a/internal/lib/os/exec.go b/runtime/internal/lib/os/exec.go similarity index 100% rename from internal/lib/os/exec.go rename to runtime/internal/lib/os/exec.go diff --git a/internal/lib/os/exec/exec.go b/runtime/internal/lib/os/exec/exec.go similarity index 99% rename from internal/lib/os/exec/exec.go rename to runtime/internal/lib/os/exec/exec.go index 8f9059dc..c884f259 100644 --- a/internal/lib/os/exec/exec.go +++ b/runtime/internal/lib/os/exec/exec.go @@ -30,7 +30,7 @@ import ( "syscall" "time" - "github.com/goplus/llgo/internal/lib/internal/syscall/execenv" + "github.com/goplus/llgo/runtime/internal/lib/internal/syscall/execenv" ) // Error is returned by LookPath when it fails to classify a file as an diff --git a/internal/lib/os/exec/exec_plan9.go b/runtime/internal/lib/os/exec/exec_plan9.go similarity index 100% rename from internal/lib/os/exec/exec_plan9.go rename to runtime/internal/lib/os/exec/exec_plan9.go diff --git a/internal/lib/os/exec/exec_unix.go b/runtime/internal/lib/os/exec/exec_unix.go similarity index 100% rename from internal/lib/os/exec/exec_unix.go rename to runtime/internal/lib/os/exec/exec_unix.go diff --git a/internal/lib/os/exec/exec_windows.go b/runtime/internal/lib/os/exec/exec_windows.go similarity index 100% rename from internal/lib/os/exec/exec_windows.go rename to runtime/internal/lib/os/exec/exec_windows.go diff --git a/internal/lib/os/exec/lp_plan9.go b/runtime/internal/lib/os/exec/lp_plan9.go similarity index 100% rename from internal/lib/os/exec/lp_plan9.go rename to runtime/internal/lib/os/exec/lp_plan9.go diff --git a/internal/lib/os/exec/lp_unix.go b/runtime/internal/lib/os/exec/lp_unix.go similarity index 100% rename from internal/lib/os/exec/lp_unix.go rename to runtime/internal/lib/os/exec/lp_unix.go diff --git a/internal/lib/os/exec/lp_wasm.go b/runtime/internal/lib/os/exec/lp_wasm.go similarity index 100% rename from internal/lib/os/exec/lp_wasm.go rename to runtime/internal/lib/os/exec/lp_wasm.go diff --git a/internal/lib/os/exec/lp_windows.go b/runtime/internal/lib/os/exec/lp_windows.go similarity index 100% rename from internal/lib/os/exec/lp_windows.go rename to runtime/internal/lib/os/exec/lp_windows.go diff --git a/internal/lib/os/exec/unix_constants.go b/runtime/internal/lib/os/exec/unix_constants.go similarity index 100% rename from internal/lib/os/exec/unix_constants.go rename to runtime/internal/lib/os/exec/unix_constants.go diff --git a/internal/lib/os/exec/unix_eaccess_linux.go b/runtime/internal/lib/os/exec/unix_eaccess_linux.go similarity index 83% rename from internal/lib/os/exec/unix_eaccess_linux.go rename to runtime/internal/lib/os/exec/unix_eaccess_linux.go index 3d6a1389..ed82fac2 100644 --- a/internal/lib/os/exec/unix_eaccess_linux.go +++ b/runtime/internal/lib/os/exec/unix_eaccess_linux.go @@ -7,7 +7,7 @@ package exec import ( "syscall" - "github.com/goplus/llgo/c/syscall/unix" + "github.com/goplus/llgo/runtime/internal/clite/syscall/unix" ) func unixEaccess(path string, mode uint32) error { diff --git a/internal/lib/os/exec/unix_eaccess_other.go b/runtime/internal/lib/os/exec/unix_eaccess_other.go similarity index 100% rename from internal/lib/os/exec/unix_eaccess_other.go rename to runtime/internal/lib/os/exec/unix_eaccess_other.go diff --git a/internal/lib/os/exec_plan9.go b/runtime/internal/lib/os/exec_plan9.go similarity index 100% rename from internal/lib/os/exec_plan9.go rename to runtime/internal/lib/os/exec_plan9.go diff --git a/internal/lib/os/exec_posix.go b/runtime/internal/lib/os/exec_posix.go similarity index 96% rename from internal/lib/os/exec_posix.go rename to runtime/internal/lib/os/exec_posix.go index 54462588..17e473e0 100644 --- a/internal/lib/os/exec_posix.go +++ b/runtime/internal/lib/os/exec_posix.go @@ -10,8 +10,8 @@ import ( "runtime" "syscall" - "github.com/goplus/llgo/internal/lib/internal/itoa" - "github.com/goplus/llgo/internal/lib/internal/syscall/execenv" + "github.com/goplus/llgo/runtime/internal/lib/internal/itoa" + "github.com/goplus/llgo/runtime/internal/lib/internal/syscall/execenv" ) // The only signal values guaranteed to be present in the os package on all diff --git a/internal/lib/os/exec_unix.go b/runtime/internal/lib/os/exec_unix.go similarity index 100% rename from internal/lib/os/exec_unix.go rename to runtime/internal/lib/os/exec_unix.go diff --git a/internal/lib/os/exec_windows.go b/runtime/internal/lib/os/exec_windows.go similarity index 100% rename from internal/lib/os/exec_windows.go rename to runtime/internal/lib/os/exec_windows.go diff --git a/internal/lib/os/file.go b/runtime/internal/lib/os/file.go similarity index 100% rename from internal/lib/os/file.go rename to runtime/internal/lib/os/file.go diff --git a/internal/lib/os/file_posix.go b/runtime/internal/lib/os/file_posix.go similarity index 100% rename from internal/lib/os/file_posix.go rename to runtime/internal/lib/os/file_posix.go diff --git a/internal/lib/os/file_unix.go b/runtime/internal/lib/os/file_unix.go similarity index 99% rename from internal/lib/os/file_unix.go rename to runtime/internal/lib/os/file_unix.go index fc75f0c1..fc5d4c74 100644 --- a/internal/lib/os/file_unix.go +++ b/runtime/internal/lib/os/file_unix.go @@ -10,7 +10,7 @@ import ( "runtime" "syscall" - "github.com/goplus/llgo/internal/lib/internal/syscall/unix" + "github.com/goplus/llgo/runtime/internal/lib/internal/syscall/unix" ) // Fd returns the integer Unix file descriptor referencing the open file. diff --git a/internal/lib/os/os.go b/runtime/internal/lib/os/os.go similarity index 99% rename from internal/lib/os/os.go rename to runtime/internal/lib/os/os.go index 9d1ef33f..d13938ac 100644 --- a/internal/lib/os/os.go +++ b/runtime/internal/lib/os/os.go @@ -23,8 +23,8 @@ import ( "syscall" _ "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/os" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/os" ) const ( diff --git a/internal/lib/os/path.go b/runtime/internal/lib/os/path.go similarity index 100% rename from internal/lib/os/path.go rename to runtime/internal/lib/os/path.go diff --git a/internal/lib/os/path_plan9.go b/runtime/internal/lib/os/path_plan9.go similarity index 100% rename from internal/lib/os/path_plan9.go rename to runtime/internal/lib/os/path_plan9.go diff --git a/internal/lib/os/path_unix.go b/runtime/internal/lib/os/path_unix.go similarity index 100% rename from internal/lib/os/path_unix.go rename to runtime/internal/lib/os/path_unix.go diff --git a/internal/lib/os/path_windows.go b/runtime/internal/lib/os/path_windows.go similarity index 100% rename from internal/lib/os/path_windows.go rename to runtime/internal/lib/os/path_windows.go diff --git a/internal/lib/os/pipe2_unix.go b/runtime/internal/lib/os/pipe2_unix.go similarity index 100% rename from internal/lib/os/pipe2_unix.go rename to runtime/internal/lib/os/pipe2_unix.go diff --git a/internal/lib/os/pipe_unix.go b/runtime/internal/lib/os/pipe_unix.go similarity index 100% rename from internal/lib/os/pipe_unix.go rename to runtime/internal/lib/os/pipe_unix.go diff --git a/internal/lib/os/pipe_wasm.go b/runtime/internal/lib/os/pipe_wasm.go similarity index 100% rename from internal/lib/os/pipe_wasm.go rename to runtime/internal/lib/os/pipe_wasm.go diff --git a/internal/lib/os/proc.go b/runtime/internal/lib/os/proc.go similarity index 94% rename from internal/lib/os/proc.go rename to runtime/internal/lib/os/proc.go index 7c7adf61..a4f1b003 100644 --- a/internal/lib/os/proc.go +++ b/runtime/internal/lib/os/proc.go @@ -10,8 +10,8 @@ import ( "runtime" "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/os" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/os" ) // Args hold the command-line arguments, starting with the program name. diff --git a/internal/lib/os/stat.go b/runtime/internal/lib/os/stat.go similarity index 100% rename from internal/lib/os/stat.go rename to runtime/internal/lib/os/stat.go diff --git a/internal/lib/os/stat_darwin.go b/runtime/internal/lib/os/stat_darwin.go similarity index 94% rename from internal/lib/os/stat_darwin.go rename to runtime/internal/lib/os/stat_darwin.go index 2f5dc575..c6cec39c 100644 --- a/internal/lib/os/stat_darwin.go +++ b/runtime/internal/lib/os/stat_darwin.go @@ -7,7 +7,7 @@ package os import ( "time" - "github.com/goplus/llgo/c/syscall" + "github.com/goplus/llgo/runtime/internal/clite/syscall" ) func fillFileStatFromSys(fs *fileStat, name string) { diff --git a/internal/lib/os/stat_linux.go b/runtime/internal/lib/os/stat_linux.go similarity index 100% rename from internal/lib/os/stat_linux.go rename to runtime/internal/lib/os/stat_linux.go diff --git a/internal/lib/os/stat_unix.go b/runtime/internal/lib/os/stat_unix.go similarity index 88% rename from internal/lib/os/stat_unix.go rename to runtime/internal/lib/os/stat_unix.go index c0840d31..64cecb37 100644 --- a/internal/lib/os/stat_unix.go +++ b/runtime/internal/lib/os/stat_unix.go @@ -7,9 +7,9 @@ package os import ( - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/os" - "github.com/goplus/llgo/internal/lib/syscall" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/os" + "github.com/goplus/llgo/runtime/internal/lib/syscall" ) // Stat returns the FileInfo structure describing file. diff --git a/internal/lib/os/sticky_bsd.go b/runtime/internal/lib/os/sticky_bsd.go similarity index 100% rename from internal/lib/os/sticky_bsd.go rename to runtime/internal/lib/os/sticky_bsd.go diff --git a/internal/lib/os/sticky_nonbsd.go b/runtime/internal/lib/os/sticky_nonbsd.go similarity index 100% rename from internal/lib/os/sticky_nonbsd.go rename to runtime/internal/lib/os/sticky_nonbsd.go diff --git a/internal/lib/os/str.go b/runtime/internal/lib/os/str.go similarity index 100% rename from internal/lib/os/str.go rename to runtime/internal/lib/os/str.go diff --git a/internal/lib/os/sys_js.go b/runtime/internal/lib/os/sys_js.go similarity index 100% rename from internal/lib/os/sys_js.go rename to runtime/internal/lib/os/sys_js.go diff --git a/internal/lib/os/sys_unix.go b/runtime/internal/lib/os/sys_unix.go similarity index 100% rename from internal/lib/os/sys_unix.go rename to runtime/internal/lib/os/sys_unix.go diff --git a/internal/lib/os/sys_wasip1.go b/runtime/internal/lib/os/sys_wasip1.go similarity index 100% rename from internal/lib/os/sys_wasip1.go rename to runtime/internal/lib/os/sys_wasip1.go diff --git a/internal/lib/os/tempfile.go b/runtime/internal/lib/os/tempfile.go similarity index 95% rename from internal/lib/os/tempfile.go rename to runtime/internal/lib/os/tempfile.go index 4589472c..8de61dcd 100644 --- a/internal/lib/os/tempfile.go +++ b/runtime/internal/lib/os/tempfile.go @@ -7,9 +7,9 @@ package os import ( "errors" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/internal/lib/internal/bytealg" - "github.com/goplus/llgo/internal/lib/internal/itoa" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/lib/internal/bytealg" + "github.com/goplus/llgo/runtime/internal/lib/internal/itoa" ) func nextRandom() string { diff --git a/internal/lib/os/types.go b/runtime/internal/lib/os/types.go similarity index 97% rename from internal/lib/os/types.go rename to runtime/internal/lib/os/types.go index 908ed0a3..fc450170 100644 --- a/internal/lib/os/types.go +++ b/runtime/internal/lib/os/types.go @@ -10,8 +10,8 @@ import ( "syscall" "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/os" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/os" ) // Getpagesize returns the underlying system's memory page size. diff --git a/internal/lib/os/types_plan9.go b/runtime/internal/lib/os/types_plan9.go similarity index 100% rename from internal/lib/os/types_plan9.go rename to runtime/internal/lib/os/types_plan9.go diff --git a/internal/lib/os/types_unix.go b/runtime/internal/lib/os/types_unix.go similarity index 93% rename from internal/lib/os/types_unix.go rename to runtime/internal/lib/os/types_unix.go index 602eee4c..12f79b21 100644 --- a/internal/lib/os/types_unix.go +++ b/runtime/internal/lib/os/types_unix.go @@ -9,7 +9,7 @@ package os import ( "time" - "github.com/goplus/llgo/internal/lib/syscall" + "github.com/goplus/llgo/runtime/internal/lib/syscall" ) // A fileStat is the implementation of FileInfo returned by Stat and Lstat. diff --git a/internal/lib/os/types_windows.go b/runtime/internal/lib/os/types_windows.go similarity index 100% rename from internal/lib/os/types_windows.go rename to runtime/internal/lib/os/types_windows.go diff --git a/internal/lib/os/wait_unimp.go b/runtime/internal/lib/os/wait_unimp.go similarity index 100% rename from internal/lib/os/wait_unimp.go rename to runtime/internal/lib/os/wait_unimp.go diff --git a/internal/lib/os/wait_wait6.go b/runtime/internal/lib/os/wait_wait6.go similarity index 100% rename from internal/lib/os/wait_wait6.go rename to runtime/internal/lib/os/wait_wait6.go diff --git a/internal/lib/os/wait_waitid.go b/runtime/internal/lib/os/wait_waitid.go similarity index 96% rename from internal/lib/os/wait_waitid.go rename to runtime/internal/lib/os/wait_waitid.go index 301254b3..af50e8fa 100644 --- a/internal/lib/os/wait_waitid.go +++ b/runtime/internal/lib/os/wait_waitid.go @@ -13,7 +13,7 @@ import ( "syscall" _ "unsafe" - "github.com/goplus/llgo/c" + c "github.com/goplus/llgo/runtime/internal/clite" ) const _P_PID = 1 diff --git a/internal/lib/reflect/makefunc.go b/runtime/internal/lib/reflect/makefunc.go similarity index 98% rename from internal/lib/reflect/makefunc.go rename to runtime/internal/lib/reflect/makefunc.go index 032d9442..49553925 100644 --- a/internal/lib/reflect/makefunc.go +++ b/runtime/internal/lib/reflect/makefunc.go @@ -25,8 +25,8 @@ package reflect import ( "unsafe" - "github.com/goplus/llgo/internal/abi" - "github.com/goplus/llgo/internal/runtime" + "github.com/goplus/llgo/runtime/abi" + "github.com/goplus/llgo/runtime/internal/runtime" ) /* diff --git a/internal/lib/reflect/reflect.go b/runtime/internal/lib/reflect/reflect.go similarity index 100% rename from internal/lib/reflect/reflect.go rename to runtime/internal/lib/reflect/reflect.go diff --git a/internal/lib/reflect/type.go b/runtime/internal/lib/reflect/type.go similarity index 99% rename from internal/lib/reflect/type.go rename to runtime/internal/lib/reflect/type.go index 6f3da0b6..47ebe54c 100644 --- a/internal/lib/reflect/type.go +++ b/runtime/internal/lib/reflect/type.go @@ -24,10 +24,10 @@ import ( "strconv" "unsafe" - "github.com/goplus/llgo/internal/abi" - "github.com/goplus/llgo/internal/lib/sync" - "github.com/goplus/llgo/internal/runtime" - "github.com/goplus/llgo/internal/runtime/goarch" + "github.com/goplus/llgo/runtime/abi" + "github.com/goplus/llgo/runtime/internal/lib/sync" + "github.com/goplus/llgo/runtime/internal/runtime" + "github.com/goplus/llgo/runtime/internal/runtime/goarch" ) // Type is the representation of a Go type. @@ -1136,7 +1136,7 @@ func (t *rtype) Comparable() bool { // implements reports whether the type V implements the interface type T. // -//go:linkname implements github.com/goplus/llgo/internal/runtime.Implements +//go:linkname implements github.com/goplus/llgo/runtime/internal/runtime.Implements func implements(T, V *abi.Type) bool // specialChannelAssignability reports whether a value x of channel type V diff --git a/internal/lib/reflect/unsafeheader.go b/runtime/internal/lib/reflect/unsafeheader.go similarity index 100% rename from internal/lib/reflect/unsafeheader.go rename to runtime/internal/lib/reflect/unsafeheader.go diff --git a/internal/lib/reflect/value.go b/runtime/internal/lib/reflect/value.go similarity index 98% rename from internal/lib/reflect/value.go rename to runtime/internal/lib/reflect/value.go index 0fd637fd..5fa579b2 100644 --- a/internal/lib/reflect/value.go +++ b/runtime/internal/lib/reflect/value.go @@ -25,11 +25,11 @@ import ( "math" "unsafe" - "github.com/goplus/llgo/c/bitcast" - "github.com/goplus/llgo/internal/abi" - "github.com/goplus/llgo/internal/runtime" - "github.com/goplus/llgo/internal/runtime/goarch" - "github.com/goplus/llgo/x/ffi" + "github.com/goplus/llgo/runtime/abi" + "github.com/goplus/llgo/runtime/internal/clite/bitcast" + "github.com/goplus/llgo/runtime/internal/ffi" + "github.com/goplus/llgo/runtime/internal/runtime" + "github.com/goplus/llgo/runtime/internal/runtime/goarch" ) // Value is the reflection interface to a Go value. @@ -1656,10 +1656,10 @@ func (v Value) UnsafePointer() unsafe.Pointer { panic(&ValueError{"reflect.Value.UnsafePointer", v.kind()}) } -//go:linkname unsafe_New github.com/goplus/llgo/internal/runtime.New +//go:linkname unsafe_New github.com/goplus/llgo/runtime/internal/runtime.New func unsafe_New(*abi.Type) unsafe.Pointer -//go:linkname unsafe_NewArray github.com/goplus/llgo/internal/runtime.NewArray +//go:linkname unsafe_NewArray github.com/goplus/llgo/runtime/internal/runtime.NewArray func unsafe_NewArray(*abi.Type, int) unsafe.Pointer // ValueOf returns a new Value initialized to the concrete value @@ -1863,12 +1863,12 @@ func memmove(dst, src unsafe.Pointer, size uintptr) // typedmemmove copies a value of type t to dst from src. // -//go:linkname typedmemmove github.com/goplus/llgo/internal/runtime.Typedmemmove +//go:linkname typedmemmove github.com/goplus/llgo/runtime/internal/runtime.Typedmemmove func typedmemmove(t *abi.Type, dst, src unsafe.Pointer) // typedmemclr zeros the value at ptr of type t. // -//go:linkname typedmemclr github.com/goplus/llgo/internal/runtime.Typedmemclr +//go:linkname typedmemclr github.com/goplus/llgo/runtime/internal/runtime.Typedmemclr func typedmemclr(t *abi.Type, ptr unsafe.Pointer) /* @@ -1899,7 +1899,7 @@ func verifyNotInHeapPtr(p uintptr) bool { return true } -//go:linkname growslice github.com/goplus/llgo/internal/runtime.GrowSlice +//go:linkname growslice github.com/goplus/llgo/runtime/internal/runtime.GrowSlice func growslice(src unsafeheaderSlice, num, etSize int) unsafeheaderSlice // Dummy annotation marking that the value x escapes, @@ -2581,22 +2581,22 @@ func methodReceiver(op string, v Value, methodIndex int) (rcvrtype *abi.Type, t return } -//go:linkname chancap github.com/goplus/llgo/internal/runtime.ChanCap +//go:linkname chancap github.com/goplus/llgo/runtime/internal/runtime.ChanCap func chancap(ch unsafe.Pointer) int -//go:linkname chanlen github.com/goplus/llgo/internal/runtime.ChanLen +//go:linkname chanlen github.com/goplus/llgo/runtime/internal/runtime.ChanLen func chanlen(ch unsafe.Pointer) int -//go:linkname makemap github.com/goplus/llgo/internal/runtime.MakeMap +//go:linkname makemap github.com/goplus/llgo/runtime/internal/runtime.MakeMap func makemap(t *abi.Type, cap int) (m unsafe.Pointer) -//go:linkname maplen github.com/goplus/llgo/internal/runtime.MapLen +//go:linkname maplen github.com/goplus/llgo/runtime/internal/runtime.MapLen func maplen(ch unsafe.Pointer) int -//go:linkname mapaccess github.com/goplus/llgo/internal/runtime.MapAccess2 +//go:linkname mapaccess github.com/goplus/llgo/runtime/internal/runtime.MapAccess2 func mapaccess(t *abi.Type, m unsafe.Pointer, key unsafe.Pointer) (val unsafe.Pointer, ok bool) -//go:linkname mapassign0 github.com/goplus/llgo/internal/runtime.MapAssign +//go:linkname mapassign0 github.com/goplus/llgo/runtime/internal/runtime.MapAssign func mapassign0(t *abi.Type, m unsafe.Pointer, key unsafe.Pointer) unsafe.Pointer func mapassign(t *abi.Type, m unsafe.Pointer, key, val unsafe.Pointer) { @@ -2615,13 +2615,13 @@ func mapassign(t *abi.Type, m unsafe.Pointer, key, val unsafe.Pointer) { // mapassign_faststr0(t, m, key, val) // } -//go:linkname mapdelete github.com/goplus/llgo/internal/runtime.MapDelete +//go:linkname mapdelete github.com/goplus/llgo/runtime/internal/runtime.MapDelete func mapdelete(t *abi.Type, m unsafe.Pointer, key unsafe.Pointer) //go:noescape // func mapdelete_faststr(t *abi.Type, m unsafe.Pointer, key string) -//go:linkname mapiterinit github.com/goplus/llgo/internal/runtime.mapiterinit +//go:linkname mapiterinit github.com/goplus/llgo/runtime/internal/runtime.mapiterinit func mapiterinit(t *abi.Type, m unsafe.Pointer, it *hiter) func mapiterkey(it *hiter) (key unsafe.Pointer) { @@ -2632,13 +2632,13 @@ func mapiterelem(it *hiter) (elem unsafe.Pointer) { return it.elem } -//go:linkname mapiternext github.com/goplus/llgo/internal/runtime.mapiternext +//go:linkname mapiternext github.com/goplus/llgo/runtime/internal/runtime.mapiternext func mapiternext(it *hiter) -//go:linkname mapclear github.com/goplus/llgo/internal/runtime.mapclear +//go:linkname mapclear github.com/goplus/llgo/runtime/internal/runtime.mapclear func mapclear(t *abi.Type, m unsafe.Pointer) -//go:linkname typehash github.com/goplus/llgo/internal/runtime.typehash +//go:linkname typehash github.com/goplus/llgo/runtime/internal/runtime.typehash func typehash(t *abi.Type, p unsafe.Pointer, h uintptr) uintptr // MakeSlice creates a new zero-initialized slice value diff --git a/internal/lib/runtime/extern.go b/runtime/internal/lib/runtime/extern.go similarity index 100% rename from internal/lib/runtime/extern.go rename to runtime/internal/lib/runtime/extern.go diff --git a/internal/lib/runtime/mfinal.go b/runtime/internal/lib/runtime/mfinal.go similarity index 100% rename from internal/lib/runtime/mfinal.go rename to runtime/internal/lib/runtime/mfinal.go diff --git a/internal/lib/runtime/runtime.go b/runtime/internal/lib/runtime/runtime.go similarity index 100% rename from internal/lib/runtime/runtime.go rename to runtime/internal/lib/runtime/runtime.go diff --git a/internal/lib/runtime/runtime2.go b/runtime/internal/lib/runtime/runtime2.go similarity index 100% rename from internal/lib/runtime/runtime2.go rename to runtime/internal/lib/runtime/runtime2.go diff --git a/internal/lib/runtime/symtab.go b/runtime/internal/lib/runtime/symtab.go similarity index 100% rename from internal/lib/runtime/symtab.go rename to runtime/internal/lib/runtime/symtab.go diff --git a/internal/lib/runtime/zgoarch_386.go b/runtime/internal/lib/runtime/zgoarch_386.go similarity index 100% rename from internal/lib/runtime/zgoarch_386.go rename to runtime/internal/lib/runtime/zgoarch_386.go diff --git a/internal/lib/runtime/zgoarch_amd64.go b/runtime/internal/lib/runtime/zgoarch_amd64.go similarity index 100% rename from internal/lib/runtime/zgoarch_amd64.go rename to runtime/internal/lib/runtime/zgoarch_amd64.go diff --git a/internal/lib/runtime/zgoarch_arm64.go b/runtime/internal/lib/runtime/zgoarch_arm64.go similarity index 100% rename from internal/lib/runtime/zgoarch_arm64.go rename to runtime/internal/lib/runtime/zgoarch_arm64.go diff --git a/internal/lib/runtime/zgoarch_wasm.go b/runtime/internal/lib/runtime/zgoarch_wasm.go similarity index 100% rename from internal/lib/runtime/zgoarch_wasm.go rename to runtime/internal/lib/runtime/zgoarch_wasm.go diff --git a/internal/lib/runtime/zgoos_android.go b/runtime/internal/lib/runtime/zgoos_android.go similarity index 100% rename from internal/lib/runtime/zgoos_android.go rename to runtime/internal/lib/runtime/zgoos_android.go diff --git a/internal/lib/runtime/zgoos_darwin.go b/runtime/internal/lib/runtime/zgoos_darwin.go similarity index 100% rename from internal/lib/runtime/zgoos_darwin.go rename to runtime/internal/lib/runtime/zgoos_darwin.go diff --git a/internal/lib/runtime/zgoos_ios.go b/runtime/internal/lib/runtime/zgoos_ios.go similarity index 100% rename from internal/lib/runtime/zgoos_ios.go rename to runtime/internal/lib/runtime/zgoos_ios.go diff --git a/internal/lib/runtime/zgoos_js.go b/runtime/internal/lib/runtime/zgoos_js.go similarity index 100% rename from internal/lib/runtime/zgoos_js.go rename to runtime/internal/lib/runtime/zgoos_js.go diff --git a/internal/lib/runtime/zgoos_linux.go b/runtime/internal/lib/runtime/zgoos_linux.go similarity index 100% rename from internal/lib/runtime/zgoos_linux.go rename to runtime/internal/lib/runtime/zgoos_linux.go diff --git a/internal/lib/runtime/zgoos_windows.go b/runtime/internal/lib/runtime/zgoos_windows.go similarity index 100% rename from internal/lib/runtime/zgoos_windows.go rename to runtime/internal/lib/runtime/zgoos_windows.go diff --git a/internal/lib/sync/atomic/atomic.go b/runtime/internal/lib/sync/atomic/atomic.go similarity index 100% rename from internal/lib/sync/atomic/atomic.go rename to runtime/internal/lib/sync/atomic/atomic.go diff --git a/internal/lib/sync/atomic/value.go b/runtime/internal/lib/sync/atomic/value.go similarity index 100% rename from internal/lib/sync/atomic/value.go rename to runtime/internal/lib/sync/atomic/value.go diff --git a/internal/lib/sync/cond.go b/runtime/internal/lib/sync/cond.go similarity index 100% rename from internal/lib/sync/cond.go rename to runtime/internal/lib/sync/cond.go diff --git a/internal/lib/sync/map.go b/runtime/internal/lib/sync/map.go similarity index 100% rename from internal/lib/sync/map.go rename to runtime/internal/lib/sync/map.go diff --git a/internal/lib/sync/pool.go b/runtime/internal/lib/sync/pool.go similarity index 100% rename from internal/lib/sync/pool.go rename to runtime/internal/lib/sync/pool.go diff --git a/internal/lib/sync/sync.go b/runtime/internal/lib/sync/sync.go similarity index 96% rename from internal/lib/sync/sync.go rename to runtime/internal/lib/sync/sync.go index c2c88ce7..1769f441 100644 --- a/internal/lib/sync/sync.go +++ b/runtime/internal/lib/sync/sync.go @@ -21,8 +21,8 @@ import ( gosync "sync" "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/pthread/sync" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/pthread/sync" ) // ----------------------------------------------------------------------------- diff --git a/internal/lib/syscall/env_unix.go b/runtime/internal/lib/syscall/env_unix.go similarity index 95% rename from internal/lib/syscall/env_unix.go rename to runtime/internal/lib/syscall/env_unix.go index c06af284..b9e8481e 100644 --- a/internal/lib/syscall/env_unix.go +++ b/runtime/internal/lib/syscall/env_unix.go @@ -12,9 +12,9 @@ import ( "runtime" "sync" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/os" - "github.com/goplus/llgo/c/syscall" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/os" + "github.com/goplus/llgo/runtime/internal/clite/syscall" ) var ( diff --git a/internal/lib/syscall/env_windows.go b/runtime/internal/lib/syscall/env_windows.go similarity index 100% rename from internal/lib/syscall/env_windows.go rename to runtime/internal/lib/syscall/env_windows.go diff --git a/internal/lib/syscall/exec_libc.go b/runtime/internal/lib/syscall/exec_libc.go similarity index 99% rename from internal/lib/syscall/exec_libc.go rename to runtime/internal/lib/syscall/exec_libc.go index 1c38a19a..81f9a2de 100644 --- a/internal/lib/syscall/exec_libc.go +++ b/runtime/internal/lib/syscall/exec_libc.go @@ -12,7 +12,7 @@ import ( "runtime" "unsafe" - "github.com/goplus/llgo/c" + c "github.com/goplus/llgo/runtime/internal/clite" ) type SysProcAttr struct { diff --git a/internal/lib/syscall/exec_libc2.go b/runtime/internal/lib/syscall/exec_libc2.go similarity index 98% rename from internal/lib/syscall/exec_libc2.go rename to runtime/internal/lib/syscall/exec_libc2.go index 6077f163..decc36c6 100644 --- a/internal/lib/syscall/exec_libc2.go +++ b/runtime/internal/lib/syscall/exec_libc2.go @@ -9,9 +9,9 @@ package syscall import ( "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/os" - "github.com/goplus/llgo/c/syscall" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/os" + "github.com/goplus/llgo/runtime/internal/clite/syscall" ) type SysProcAttr struct { diff --git a/internal/lib/syscall/exec_linux.go b/runtime/internal/lib/syscall/exec_linux.go similarity index 99% rename from internal/lib/syscall/exec_linux.go rename to runtime/internal/lib/syscall/exec_linux.go index fb93fce3..0236c266 100644 --- a/internal/lib/syscall/exec_linux.go +++ b/runtime/internal/lib/syscall/exec_linux.go @@ -6,7 +6,7 @@ package syscall -import "github.com/goplus/llgo/c" +import c "github.com/goplus/llgo/runtime/internal/clite" // Linux unshare/clone/clone2/clone3 flags, architecture-independent, // copied from linux/sched.h. diff --git a/internal/lib/syscall/exec_unix.go b/runtime/internal/lib/syscall/exec_unix.go similarity index 97% rename from internal/lib/syscall/exec_unix.go rename to runtime/internal/lib/syscall/exec_unix.go index 21a12178..85e6aa71 100644 --- a/internal/lib/syscall/exec_unix.go +++ b/runtime/internal/lib/syscall/exec_unix.go @@ -14,9 +14,9 @@ import ( "sync" "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/os" - "github.com/goplus/llgo/c/syscall" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/os" + "github.com/goplus/llgo/runtime/internal/clite/syscall" ) // ForkLock is used to synchronize creation of new file descriptors diff --git a/internal/lib/syscall/forkpipe.go b/runtime/internal/lib/syscall/forkpipe.go similarity index 81% rename from internal/lib/syscall/forkpipe.go rename to runtime/internal/lib/syscall/forkpipe.go index d92ea9a3..c4838da2 100644 --- a/internal/lib/syscall/forkpipe.go +++ b/runtime/internal/lib/syscall/forkpipe.go @@ -7,9 +7,9 @@ package syscall import ( - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/os" - "github.com/goplus/llgo/c/syscall" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/os" + "github.com/goplus/llgo/runtime/internal/clite/syscall" ) // forkExecPipe opens a pipe and non-atomically sets O_CLOEXEC on both file diff --git a/internal/lib/syscall/forkpipe2.go b/runtime/internal/lib/syscall/forkpipe2.go similarity index 97% rename from internal/lib/syscall/forkpipe2.go rename to runtime/internal/lib/syscall/forkpipe2.go index b5cd1d30..b81db1aa 100644 --- a/internal/lib/syscall/forkpipe2.go +++ b/runtime/internal/lib/syscall/forkpipe2.go @@ -9,7 +9,7 @@ package syscall import ( "sync" - "github.com/goplus/llgo/c/syscall" + "github.com/goplus/llgo/runtime/internal/clite/syscall" ) // forkExecPipe atomically opens a pipe with O_CLOEXEC set on both file diff --git a/internal/lib/syscall/rlimit.go b/runtime/internal/lib/syscall/rlimit.go similarity index 96% rename from internal/lib/syscall/rlimit.go rename to runtime/internal/lib/syscall/rlimit.go index a4f6d724..d899b8f2 100644 --- a/internal/lib/syscall/rlimit.go +++ b/runtime/internal/lib/syscall/rlimit.go @@ -9,7 +9,7 @@ package syscall import ( "sync/atomic" - "github.com/goplus/llgo/c/syscall" + "github.com/goplus/llgo/runtime/internal/clite/syscall" ) // origRlimitNofile, if not {0, 0}, is the original soft RLIMIT_NOFILE. diff --git a/internal/lib/syscall/rlimit_darwin.go b/runtime/internal/lib/syscall/rlimit_darwin.go similarity index 100% rename from internal/lib/syscall/rlimit_darwin.go rename to runtime/internal/lib/syscall/rlimit_darwin.go diff --git a/internal/lib/syscall/rlimit_stub.go b/runtime/internal/lib/syscall/rlimit_stub.go similarity index 100% rename from internal/lib/syscall/rlimit_stub.go rename to runtime/internal/lib/syscall/rlimit_stub.go diff --git a/internal/lib/syscall/syscall.go b/runtime/internal/lib/syscall/syscall.go similarity index 96% rename from internal/lib/syscall/syscall.go rename to runtime/internal/lib/syscall/syscall.go index 8c9be793..f6645f17 100644 --- a/internal/lib/syscall/syscall.go +++ b/runtime/internal/lib/syscall/syscall.go @@ -20,9 +20,9 @@ package syscall import ( "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/os" - "github.com/goplus/llgo/c/syscall" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/os" + "github.com/goplus/llgo/runtime/internal/clite/syscall" ) type Timespec syscall.Timespec diff --git a/internal/lib/syscall/syscall_bsd.go b/runtime/internal/lib/syscall/syscall_bsd.go similarity index 98% rename from internal/lib/syscall/syscall_bsd.go rename to runtime/internal/lib/syscall/syscall_bsd.go index 28ec535a..32d6b64f 100644 --- a/internal/lib/syscall/syscall_bsd.go +++ b/runtime/internal/lib/syscall/syscall_bsd.go @@ -15,9 +15,9 @@ package syscall import ( "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/os" - "github.com/goplus/llgo/c/syscall" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/os" + "github.com/goplus/llgo/runtime/internal/clite/syscall" ) func Getgroups() (gids []int, err error) { diff --git a/internal/lib/syscall/syscall_linux.go b/runtime/internal/lib/syscall/syscall_linux.go similarity index 95% rename from internal/lib/syscall/syscall_linux.go rename to runtime/internal/lib/syscall/syscall_linux.go index 9451443a..36230cad 100644 --- a/internal/lib/syscall/syscall_linux.go +++ b/runtime/internal/lib/syscall/syscall_linux.go @@ -14,9 +14,9 @@ package syscall import ( _ "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/os" - "github.com/goplus/llgo/c/syscall" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/os" + "github.com/goplus/llgo/runtime/internal/clite/syscall" ) // ----------------------------------------------------------------------------- diff --git a/internal/lib/syscall/syscall_unix.go b/runtime/internal/lib/syscall/syscall_unix.go similarity index 89% rename from internal/lib/syscall/syscall_unix.go rename to runtime/internal/lib/syscall/syscall_unix.go index a43ffb27..a0b16b79 100644 --- a/internal/lib/syscall/syscall_unix.go +++ b/runtime/internal/lib/syscall/syscall_unix.go @@ -9,9 +9,9 @@ package syscall import ( "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/syscall" - "github.com/goplus/llgo/internal/lib/internal/oserror" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/syscall" + "github.com/goplus/llgo/runtime/internal/lib/internal/oserror" ) var ( diff --git a/internal/lib/time/format.go b/runtime/internal/lib/time/format.go similarity index 100% rename from internal/lib/time/format.go rename to runtime/internal/lib/time/format.go diff --git a/internal/lib/time/format_rfc3339.go b/runtime/internal/lib/time/format_rfc3339.go similarity index 100% rename from internal/lib/time/format_rfc3339.go rename to runtime/internal/lib/time/format_rfc3339.go diff --git a/internal/lib/time/sleep.go b/runtime/internal/lib/time/sleep.go similarity index 100% rename from internal/lib/time/sleep.go rename to runtime/internal/lib/time/sleep.go diff --git a/internal/lib/time/sys_unix.go b/runtime/internal/lib/time/sys_unix.go similarity index 100% rename from internal/lib/time/sys_unix.go rename to runtime/internal/lib/time/sys_unix.go diff --git a/internal/lib/time/time.go b/runtime/internal/lib/time/time.go similarity index 99% rename from internal/lib/time/time.go rename to runtime/internal/lib/time/time.go index d51c420d..7f6b3a59 100644 --- a/internal/lib/time/time.go +++ b/runtime/internal/lib/time/time.go @@ -20,8 +20,8 @@ package time import ( "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/time" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/time" ) type Time struct { diff --git a/internal/lib/time/zoneinfo.go b/runtime/internal/lib/time/zoneinfo.go similarity index 100% rename from internal/lib/time/zoneinfo.go rename to runtime/internal/lib/time/zoneinfo.go diff --git a/internal/lib/time/zoneinfo_read.go b/runtime/internal/lib/time/zoneinfo_read.go similarity index 99% rename from internal/lib/time/zoneinfo_read.go rename to runtime/internal/lib/time/zoneinfo_read.go index 82a2a8b1..b9f5eef0 100644 --- a/internal/lib/time/zoneinfo_read.go +++ b/runtime/internal/lib/time/zoneinfo_read.go @@ -14,7 +14,7 @@ import ( "runtime" "syscall" - "github.com/goplus/llgo/c/time" + "github.com/goplus/llgo/runtime/internal/clite/time" ) // registerLoadFromEmbeddedTZData is called by the time/tzdata package, diff --git a/internal/lib/time/zoneinfo_unix.go b/runtime/internal/lib/time/zoneinfo_unix.go similarity index 100% rename from internal/lib/time/zoneinfo_unix.go rename to runtime/internal/lib/time/zoneinfo_unix.go diff --git a/internal/runtime/alg.go b/runtime/internal/runtime/alg.go similarity index 98% rename from internal/runtime/alg.go rename to runtime/internal/runtime/alg.go index d11a586b..393888c0 100644 --- a/internal/runtime/alg.go +++ b/runtime/internal/runtime/alg.go @@ -7,8 +7,8 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/internal/abi" - "github.com/goplus/llgo/internal/runtime/goarch" + "github.com/goplus/llgo/runtime/abi" + "github.com/goplus/llgo/runtime/internal/runtime/goarch" ) const ( diff --git a/internal/runtime/errors.go b/runtime/internal/runtime/errors.go similarity index 100% rename from internal/runtime/errors.go rename to runtime/internal/runtime/errors.go diff --git a/internal/runtime/goarch/endian_big.go b/runtime/internal/runtime/goarch/endian_big.go similarity index 100% rename from internal/runtime/goarch/endian_big.go rename to runtime/internal/runtime/goarch/endian_big.go diff --git a/internal/runtime/goarch/endian_little.go b/runtime/internal/runtime/goarch/endian_little.go similarity index 100% rename from internal/runtime/goarch/endian_little.go rename to runtime/internal/runtime/goarch/endian_little.go diff --git a/internal/runtime/goarch/goarch.go b/runtime/internal/runtime/goarch/goarch.go similarity index 100% rename from internal/runtime/goarch/goarch.go rename to runtime/internal/runtime/goarch/goarch.go diff --git a/internal/runtime/hash32.go b/runtime/internal/runtime/hash32.go similarity index 100% rename from internal/runtime/hash32.go rename to runtime/internal/runtime/hash32.go diff --git a/internal/runtime/hash64.go b/runtime/internal/runtime/hash64.go similarity index 97% rename from internal/runtime/hash64.go rename to runtime/internal/runtime/hash64.go index 31d2a67a..d6a56f00 100644 --- a/internal/runtime/hash64.go +++ b/runtime/internal/runtime/hash64.go @@ -12,7 +12,7 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/internal/runtime/math" + "github.com/goplus/llgo/runtime/internal/runtime/math" ) const ( diff --git a/internal/runtime/map.go b/runtime/internal/runtime/map.go similarity index 99% rename from internal/runtime/map.go rename to runtime/internal/runtime/map.go index 0af0292b..95c42cd2 100644 --- a/internal/runtime/map.go +++ b/runtime/internal/runtime/map.go @@ -7,9 +7,9 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/internal/abi" - "github.com/goplus/llgo/internal/runtime/goarch" - "github.com/goplus/llgo/internal/runtime/math" + "github.com/goplus/llgo/runtime/abi" + "github.com/goplus/llgo/runtime/internal/runtime/goarch" + "github.com/goplus/llgo/runtime/internal/runtime/math" ) // This file contains the implementation of Go's map type. diff --git a/internal/runtime/math/math.go b/runtime/internal/runtime/math/math.go similarity index 93% rename from internal/runtime/math/math.go rename to runtime/internal/runtime/math/math.go index 6b2f13b3..0b0782b1 100644 --- a/internal/runtime/math/math.go +++ b/runtime/internal/runtime/math/math.go @@ -1,6 +1,6 @@ package math -import "github.com/goplus/llgo/internal/runtime/goarch" +import "github.com/goplus/llgo/runtime/internal/runtime/goarch" const MaxUintptr = ^uintptr(0) diff --git a/internal/runtime/mbarrier.go b/runtime/internal/runtime/mbarrier.go similarity index 99% rename from internal/runtime/mbarrier.go rename to runtime/internal/runtime/mbarrier.go index 103438d4..82d07d7a 100644 --- a/internal/runtime/mbarrier.go +++ b/runtime/internal/runtime/mbarrier.go @@ -16,7 +16,7 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/c" + c "github.com/goplus/llgo/runtime/internal/clite" ) // Go uses a hybrid barrier that combines a Yuasa-style deletion diff --git a/internal/runtime/panic.go b/runtime/internal/runtime/panic.go similarity index 100% rename from internal/runtime/panic.go rename to runtime/internal/runtime/panic.go diff --git a/internal/runtime/stubs.go b/runtime/internal/runtime/stubs.go similarity index 95% rename from internal/runtime/stubs.go rename to runtime/internal/runtime/stubs.go index 34dd529d..61d9013b 100644 --- a/internal/runtime/stubs.go +++ b/runtime/internal/runtime/stubs.go @@ -7,9 +7,9 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/c/sync/atomic" - "github.com/goplus/llgo/c/time" - "github.com/goplus/llgo/internal/runtime/math" + "github.com/goplus/llgo/runtime/internal/clite/sync/atomic" + "github.com/goplus/llgo/runtime/internal/clite/time" + "github.com/goplus/llgo/runtime/internal/runtime/math" ) //go:linkname fastrand C.rand diff --git a/internal/runtime/type.go b/runtime/internal/runtime/type.go similarity index 92% rename from internal/runtime/type.go rename to runtime/internal/runtime/type.go index 8e8b4332..54b9b8e3 100644 --- a/internal/runtime/type.go +++ b/runtime/internal/runtime/type.go @@ -7,7 +7,7 @@ package runtime import ( - "github.com/goplus/llgo/internal/abi" + "github.com/goplus/llgo/runtime/abi" ) type _type = abi.Type diff --git a/internal/runtime/utf8.go b/runtime/internal/runtime/utf8.go similarity index 100% rename from internal/runtime/utf8.go rename to runtime/internal/runtime/utf8.go diff --git a/internal/runtime/z_cgo.go b/runtime/internal/runtime/z_cgo.go similarity index 95% rename from internal/runtime/z_cgo.go rename to runtime/internal/runtime/z_cgo.go index 81440a93..10fa6dc8 100644 --- a/internal/runtime/z_cgo.go +++ b/runtime/internal/runtime/z_cgo.go @@ -19,7 +19,7 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/c" + c "github.com/goplus/llgo/runtime/internal/clite" ) func CString(s string) *int8 { diff --git a/internal/runtime/z_chan.go b/runtime/internal/runtime/z_chan.go similarity index 98% rename from internal/runtime/z_chan.go rename to runtime/internal/runtime/z_chan.go index 8d334f1b..ecde5e2e 100644 --- a/internal/runtime/z_chan.go +++ b/runtime/internal/runtime/z_chan.go @@ -19,8 +19,8 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/pthread/sync" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/pthread/sync" ) // ----------------------------------------------------------------------------- diff --git a/internal/runtime/z_error.go b/runtime/internal/runtime/z_error.go similarity index 97% rename from internal/runtime/z_error.go rename to runtime/internal/runtime/z_error.go index 69cdb953..ed5f4195 100644 --- a/internal/runtime/z_error.go +++ b/runtime/internal/runtime/z_error.go @@ -19,8 +19,8 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/c/bitcast" - "github.com/goplus/llgo/internal/abi" + "github.com/goplus/llgo/runtime/abi" + "github.com/goplus/llgo/runtime/internal/clite/bitcast" ) type errorString string diff --git a/internal/runtime/z_face.go b/runtime/internal/runtime/z_face.go similarity index 99% rename from internal/runtime/z_face.go rename to runtime/internal/runtime/z_face.go index ecc476da..6a9f37f2 100644 --- a/internal/runtime/z_face.go +++ b/runtime/internal/runtime/z_face.go @@ -19,8 +19,8 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/internal/abi" + "github.com/goplus/llgo/runtime/abi" + c "github.com/goplus/llgo/runtime/internal/clite" ) type eface struct { diff --git a/internal/runtime/z_gc.go b/runtime/internal/runtime/z_gc.go similarity index 90% rename from internal/runtime/z_gc.go rename to runtime/internal/runtime/z_gc.go index 6f5a8d88..4a729a96 100644 --- a/internal/runtime/z_gc.go +++ b/runtime/internal/runtime/z_gc.go @@ -22,8 +22,8 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/bdwgc" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/bdwgc" ) // AllocU allocates uninitialized memory. diff --git a/internal/runtime/z_map.go b/runtime/internal/runtime/z_map.go similarity index 98% rename from internal/runtime/z_map.go rename to runtime/internal/runtime/z_map.go index 3c8a3539..be9b2a20 100644 --- a/internal/runtime/z_map.go +++ b/runtime/internal/runtime/z_map.go @@ -19,7 +19,7 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/internal/abi" + "github.com/goplus/llgo/runtime/abi" ) // Map represents a Go map. diff --git a/internal/runtime/z_nogc.go b/runtime/internal/runtime/z_nogc.go similarity index 95% rename from internal/runtime/z_nogc.go rename to runtime/internal/runtime/z_nogc.go index 81261bd6..e1198263 100644 --- a/internal/runtime/z_nogc.go +++ b/runtime/internal/runtime/z_nogc.go @@ -22,7 +22,7 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/c" + c "github.com/goplus/llgo/runtime/internal/clite" ) // AllocU allocates uninitialized memory. diff --git a/internal/runtime/z_print.go b/runtime/internal/runtime/z_print.go similarity index 97% rename from internal/runtime/z_print.go rename to runtime/internal/runtime/z_print.go index 85c09b70..21c5e36a 100644 --- a/internal/runtime/z_print.go +++ b/runtime/internal/runtime/z_print.go @@ -19,7 +19,7 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/c" + c "github.com/goplus/llgo/runtime/internal/clite" ) func boolCStr(v bool) *c.Char { diff --git a/internal/runtime/z_rt.go b/runtime/internal/runtime/z_rt.go similarity index 91% rename from internal/runtime/z_rt.go rename to runtime/internal/runtime/z_rt.go index ef65822e..fca7534d 100644 --- a/internal/runtime/z_rt.go +++ b/runtime/internal/runtime/z_rt.go @@ -19,11 +19,11 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/debug" - "github.com/goplus/llgo/c/pthread" - "github.com/goplus/llgo/c/signal" - "github.com/goplus/llgo/c/syscall" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/debug" + "github.com/goplus/llgo/runtime/internal/clite/pthread" + "github.com/goplus/llgo/runtime/internal/clite/signal" + "github.com/goplus/llgo/runtime/internal/clite/syscall" ) // ----------------------------------------------------------------------------- diff --git a/internal/runtime/z_slice.go b/runtime/internal/runtime/z_slice.go similarity index 93% rename from internal/runtime/z_slice.go rename to runtime/internal/runtime/z_slice.go index 6eed5167..1fe69633 100644 --- a/internal/runtime/z_slice.go +++ b/runtime/internal/runtime/z_slice.go @@ -19,8 +19,9 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/internal/runtime/math" + "github.com/goplus/llgo/runtime/abi" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/runtime/math" ) // ----------------------------------------------------------------------------- @@ -141,4 +142,8 @@ func panicmakeslicecap() { panic(errorString("makeslice: cap out of range")) } +func SliceClear(t *abi.SliceType, s Slice) { + c.Memset(s.data, 0, uintptr(s.len)*t.Elem.Size()) +} + // ----------------------------------------------------------------------------- diff --git a/internal/runtime/z_string.go b/runtime/internal/runtime/z_string.go similarity index 98% rename from internal/runtime/z_string.go rename to runtime/internal/runtime/z_string.go index e38f3495..fc4552d4 100644 --- a/internal/runtime/z_string.go +++ b/runtime/internal/runtime/z_string.go @@ -19,7 +19,7 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/c" + c "github.com/goplus/llgo/runtime/internal/clite" ) // ----------------------------------------------------------------------------- diff --git a/internal/runtime/z_thread.go b/runtime/internal/runtime/z_thread.go similarity index 88% rename from internal/runtime/z_thread.go rename to runtime/internal/runtime/z_thread.go index 72d8687b..36818cbe 100644 --- a/internal/runtime/z_thread.go +++ b/runtime/internal/runtime/z_thread.go @@ -19,8 +19,8 @@ package runtime import ( _ "unsafe" - "github.com/goplus/llgo/c" - "github.com/goplus/llgo/c/pthread" + c "github.com/goplus/llgo/runtime/internal/clite" + "github.com/goplus/llgo/runtime/internal/clite/pthread" ) func CreateThread(th *pthread.Thread, attr *pthread.Attr, routine pthread.RoutineFunc, arg c.Pointer) c.Int { diff --git a/internal/runtime/z_type.go b/runtime/internal/runtime/z_type.go similarity index 99% rename from internal/runtime/z_type.go rename to runtime/internal/runtime/z_type.go index bbd13f87..788ad447 100644 --- a/internal/runtime/z_type.go +++ b/runtime/internal/runtime/z_type.go @@ -19,7 +19,7 @@ package runtime import ( "unsafe" - "github.com/goplus/llgo/internal/abi" + "github.com/goplus/llgo/runtime/abi" ) type Kind = abi.Kind diff --git a/xtool/env/env.go b/xtool/env/env.go index 9ae4a4f2..0f3eb8cc 100644 --- a/xtool/env/env.go +++ b/xtool/env/env.go @@ -23,7 +23,7 @@ import ( "regexp" "strings" - "github.com/goplus/llgo/internal/safesplit" + "github.com/goplus/llgo/xtool/safesplit" ) var ( diff --git a/internal/safesplit/safesplit.go b/xtool/safesplit/safesplit.go similarity index 100% rename from internal/safesplit/safesplit.go rename to xtool/safesplit/safesplit.go diff --git a/internal/safesplit/safesplit_test.go b/xtool/safesplit/safesplit_test.go similarity index 100% rename from internal/safesplit/safesplit_test.go rename to xtool/safesplit/safesplit_test.go