Diff of the two buildlogs: -- --- b1/build.log 2024-05-25 01:00:57.231095241 +0000 +++ b2/build.log 2024-05-25 01:04:36.529763963 +0000 @@ -1,6 +1,6 @@ I: pbuilder: network access will be disabled during build -I: Current time: Thu Jun 26 19:22:55 -12 2025 -I: pbuilder-time-stamp: 1751008975 +I: Current time: Sat May 25 15:01:00 +14 2024 +I: pbuilder-time-stamp: 1716598860 I: Building the build Environment I: extracting base tarball [/var/cache/pbuilder/unstable-reproducible-base.tgz] I: copying local configuration @@ -25,52 +25,84 @@ dpkg-source: info: unpacking golang-github-cloudflare-cbpfc_0.0~git20231012.992ed75-1.debian.tar.xz I: Not using root during the build. I: Installing the build-deps -I: user script /srv/workspace/pbuilder/1632975/tmp/hooks/D02_print_environment starting +I: user script /srv/workspace/pbuilder/1892673/tmp/hooks/D01_modify_environment starting +debug: Running on ionos11-amd64. +I: Changing host+domainname to test build reproducibility +I: Adding a custom variable just for the fun of it... +I: Changing /bin/sh to bash +'/bin/sh' -> '/bin/bash' +lrwxrwxrwx 1 root root 9 May 25 01:01 /bin/sh -> /bin/bash +I: Setting pbuilder2's login shell to /bin/bash +I: Setting pbuilder2's GECOS to second user,second room,second work-phone,second home-phone,second other +I: user script /srv/workspace/pbuilder/1892673/tmp/hooks/D01_modify_environment finished +I: user script /srv/workspace/pbuilder/1892673/tmp/hooks/D02_print_environment starting I: set - BUILDDIR='/build/reproducible-path' - BUILDUSERGECOS='first user,first room,first work-phone,first home-phone,first other' - BUILDUSERNAME='pbuilder1' - BUILD_ARCH='amd64' - DEBIAN_FRONTEND='noninteractive' - DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=42 ' - DISTRIBUTION='unstable' - HOME='/root' - HOST_ARCH='amd64' + BASH=/bin/sh + BASHOPTS=checkwinsize:cmdhist:complete_fullquote:extquote:force_fignore:globasciiranges:globskipdots:hostcomplete:interactive_comments:patsub_replacement:progcomp:promptvars:sourcepath + BASH_ALIASES=() + BASH_ARGC=() + BASH_ARGV=() + BASH_CMDS=() + BASH_LINENO=([0]="12" [1]="0") + BASH_LOADABLES_PATH=/usr/local/lib/bash:/usr/lib/bash:/opt/local/lib/bash:/usr/pkg/lib/bash:/opt/pkg/lib/bash:. + BASH_SOURCE=([0]="/tmp/hooks/D02_print_environment" [1]="/tmp/hooks/D02_print_environment") + BASH_VERSINFO=([0]="5" [1]="2" [2]="21" [3]="1" [4]="release" [5]="x86_64-pc-linux-gnu") + BASH_VERSION='5.2.21(1)-release' + BUILDDIR=/build/reproducible-path + BUILDUSERGECOS='second user,second room,second work-phone,second home-phone,second other' + BUILDUSERNAME=pbuilder2 + BUILD_ARCH=amd64 + DEBIAN_FRONTEND=noninteractive + DEB_BUILD_OPTIONS='buildinfo=+all reproducible=+all parallel=20 ' + DIRSTACK=() + DISTRIBUTION=unstable + EUID=0 + FUNCNAME=([0]="Echo" [1]="main") + GROUPS=() + HOME=/root + HOSTNAME=i-capture-the-hostname + HOSTTYPE=x86_64 + HOST_ARCH=amd64 IFS=' ' - INVOCATION_ID='5a797ba781f44ebaa8d1a0fe83442e5a' - LANG='C' - LANGUAGE='en_US:en' - LC_ALL='C' - MAIL='/var/mail/root' - OPTIND='1' - PATH='/usr/sbin:/usr/bin:/sbin:/bin:/usr/games' - PBCURRENTCOMMANDLINEOPERATION='build' - PBUILDER_OPERATION='build' - PBUILDER_PKGDATADIR='/usr/share/pbuilder' - PBUILDER_PKGLIBDIR='/usr/lib/pbuilder' - PBUILDER_SYSCONFDIR='/etc' - PPID='1632975' - PS1='# ' - PS2='> ' + INVOCATION_ID=fa9859422bc641ec90ee523ea9d7eab1 + LANG=C + LANGUAGE=et_EE:et + LC_ALL=C + MACHTYPE=x86_64-pc-linux-gnu + MAIL=/var/mail/root + OPTERR=1 + OPTIND=1 + OSTYPE=linux-gnu + PATH=/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path + PBCURRENTCOMMANDLINEOPERATION=build + PBUILDER_OPERATION=build + PBUILDER_PKGDATADIR=/usr/share/pbuilder + PBUILDER_PKGLIBDIR=/usr/lib/pbuilder + PBUILDER_SYSCONFDIR=/etc + PIPESTATUS=([0]="0") + POSIXLY_CORRECT=y + PPID=1892673 PS4='+ ' - PWD='/' - SHELL='/bin/bash' - SHLVL='2' - SUDO_COMMAND='/usr/bin/timeout -k 18.1h 18h /usr/bin/ionice -c 3 /usr/bin/nice /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.PoZyEQ17/pbuilderrc_Esz6 --distribution unstable --hookdir /etc/pbuilder/first-build-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.PoZyEQ17/b1 --logfile b1/build.log golang-github-cloudflare-cbpfc_0.0~git20231012.992ed75-1.dsc' - SUDO_GID='110' - SUDO_UID='105' - SUDO_USER='jenkins' - TERM='unknown' - TZ='/usr/share/zoneinfo/Etc/GMT+12' - USER='root' - _='/usr/bin/systemd-run' - http_proxy='http://213.165.73.152:3128' + PWD=/ + SHELL=/bin/bash + SHELLOPTS=braceexpand:errexit:hashall:interactive-comments:posix + SHLVL=3 + SUDO_COMMAND='/usr/bin/timeout -k 24.1h 24h /usr/bin/ionice -c 3 /usr/bin/nice -n 11 /usr/bin/unshare --uts -- /usr/sbin/pbuilder --build --configfile /srv/reproducible-results/rbuild-debian/r-b-build.PoZyEQ17/pbuilderrc_F4r0 --distribution unstable --hookdir /etc/pbuilder/rebuild-hooks --debbuildopts -b --basetgz /var/cache/pbuilder/unstable-reproducible-base.tgz --buildresult /srv/reproducible-results/rbuild-debian/r-b-build.PoZyEQ17/b2 --logfile b2/build.log golang-github-cloudflare-cbpfc_0.0~git20231012.992ed75-1.dsc' + SUDO_GID=111 + SUDO_UID=106 + SUDO_USER=jenkins + TERM=unknown + TZ=/usr/share/zoneinfo/Etc/GMT-14 + UID=0 + USER=root + _='I: set' + http_proxy=http://46.16.76.132:3128 I: uname -a - Linux ionos5-amd64 6.7.12+bpo-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.7.12-1~bpo12+1 (2024-05-06) x86_64 GNU/Linux + Linux i-capture-the-hostname 6.1.0-21-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.90-1 (2024-05-03) x86_64 GNU/Linux I: ls -l /bin - lrwxrwxrwx 1 root root 7 Jun 25 14:06 /bin -> usr/bin -I: user script /srv/workspace/pbuilder/1632975/tmp/hooks/D02_print_environment finished + lrwxrwxrwx 1 root root 7 May 23 07:43 /bin -> usr/bin +I: user script /srv/workspace/pbuilder/1892673/tmp/hooks/D02_print_environment finished -> Attempting to satisfy build-dependencies -> Creating pbuilder-satisfydepends-dummy package Package: pbuilder-satisfydepends-dummy @@ -176,7 +208,7 @@ Get: 54 http://deb.debian.org/debian unstable/main amd64 golang-golang-x-text-dev all 0.15.0-1 [4006 kB] Get: 55 http://deb.debian.org/debian unstable/main amd64 golang-golang-x-crypto-dev all 1:0.23.0-1 [1689 kB] Get: 56 http://deb.debian.org/debian unstable/main amd64 golang-golang-x-net-dev all 1:0.25.0+dfsg-1 [895 kB] -Fetched 123 MB in 5s (23.2 MB/s) +Fetched 123 MB in 7s (18.4 MB/s) debconf: delaying package configuration, since apt-utils is not installed Selecting previously unselected package sensible-utils. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 19718 files and directories currently installed.) @@ -415,7 +447,11 @@ Building tag database... -> Finished parsing the build-deps I: Building the package -I: Running cd /build/reproducible-path/golang-github-cloudflare-cbpfc-0.0~git20231012.992ed75/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" HOME="/nonexistent/first-build" dpkg-genchanges -S > ../golang-github-cloudflare-cbpfc_0.0~git20231012.992ed75-1_source.changes +I: user script /srv/workspace/pbuilder/1892673/tmp/hooks/A99_set_merged_usr starting +Not re-configuring usrmerge for unstable +I: user script /srv/workspace/pbuilder/1892673/tmp/hooks/A99_set_merged_usr finished +hostname: Name or service not known +I: Running cd /build/reproducible-path/golang-github-cloudflare-cbpfc-0.0~git20231012.992ed75/ && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-buildpackage -us -uc -b && env PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/i/capture/the/path" HOME="/nonexistent/second-build" dpkg-genchanges -S > ../golang-github-cloudflare-cbpfc_0.0~git20231012.992ed75-1_source.changes dpkg-buildpackage: info: source package golang-github-cloudflare-cbpfc dpkg-buildpackage: info: source version 0.0~git20231012.992ed75-1 dpkg-buildpackage: info: source distribution unstable @@ -433,30 +469,30 @@ dh_autoreconf -O--builddirectory=_build -O--buildsystem=golang dh_auto_configure -O--builddirectory=_build -O--buildsystem=golang dh_auto_build -O--builddirectory=_build -O--buildsystem=golang - cd _build && go install -trimpath -v -p 42 github.com/cloudflare/cbpfc github.com/cloudflare/cbpfc/clang -unicode/utf8 -math/bits -internal/godebugs + cd _build && go install -trimpath -v -p 20 github.com/cloudflare/cbpfc github.com/cloudflare/cbpfc/clang +internal/goarch internal/unsafeheader -crypto/subtle crypto/internal/alias -crypto/internal/boring/sig -internal/goos -internal/itoa +unicode/utf8 +cmp internal/race -sync/atomic -runtime/internal/syscall unicode -internal/cpu -internal/goarch -cmp internal/coverage/rtcov +internal/cpu +internal/godebugs +internal/itoa +math/bits +crypto/internal/boring/sig +internal/goos +runtime/internal/syscall runtime/internal/atomic -internal/goexperiment +crypto/subtle +sync/atomic +internal/abi runtime/internal/math internal/chacha8rand -internal/abi runtime/internal/sys +internal/goexperiment slices internal/bytealg math @@ -465,14 +501,14 @@ sync internal/testlog internal/bisect +internal/godebug errors sort -internal/godebug +io internal/oserror -path internal/safefilepath -io strconv +path syscall hash bytes @@ -481,22 +517,22 @@ reflect regexp/syntax internal/syscall/execenv -internal/syscall/unix time +internal/syscall/unix regexp -context -io/fs internal/poll -internal/fmtsort +io/fs +context encoding/binary +internal/fmtsort os crypto/cipher golang.org/x/sys/unix crypto/internal/boring crypto/sha1 +fmt io/ioutil path/filepath -fmt os/exec encoding/hex github.com/pkg/errors @@ -512,12 +548,12 @@ debian/rules override_dh_auto_test make[1]: Entering directory '/build/reproducible-path/golang-github-cloudflare-cbpfc-0.0~git20231012.992ed75' dh_auto_test -- --short - cd _build && go test -vet=off -v -p 42 --short github.com/cloudflare/cbpfc github.com/cloudflare/cbpfc/clang + cd _build && go test -vet=off -v -p 20 --short github.com/cloudflare/cbpfc github.com/cloudflare/cbpfc/clang ? github.com/cloudflare/cbpfc/clang [no test files] === RUN TestFunctionName --- PASS: TestFunctionName (0.00s) === RUN TestNoInline ---- SKIP: TestNoInline (0.05s) +--- SKIP: TestNoInline (0.23s) === RUN TestZero --- PASS: TestZero (0.00s) === RUN TestRaw @@ -614,8 +650,8 @@ return: 20: Exit === RUN TestRewriteLargePacketOffsetsDeadBlock/kernel ---- PASS: TestRewriteLargePacketOffsetsDeadBlock (0.09s) - --- SKIP: TestRewriteLargePacketOffsetsDeadBlock/C (0.04s) +--- PASS: TestRewriteLargePacketOffsetsDeadBlock (0.32s) + --- SKIP: TestRewriteLargePacketOffsetsDeadBlock/C (0.26s) --- SKIP: TestRewriteLargePacketOffsetsDeadBlock/eBPF (0.00s) --- PASS: TestRewriteLargePacketOffsetsDeadBlock/kernel (0.05s) === RUN TestAbsoluteGuardSize @@ -932,29 +968,29 @@ return: 22: Exit === RUN TestLoadIndirectBigOffset/kernel#07 ---- PASS: TestLoadIndirectBigOffset (0.65s) - --- SKIP: TestLoadIndirectBigOffset/C (0.05s) +--- PASS: TestLoadIndirectBigOffset (2.19s) + --- SKIP: TestLoadIndirectBigOffset/C (0.13s) --- SKIP: TestLoadIndirectBigOffset/eBPF (0.00s) --- PASS: TestLoadIndirectBigOffset/kernel (0.00s) - --- SKIP: TestLoadIndirectBigOffset/C#01 (0.04s) + --- SKIP: TestLoadIndirectBigOffset/C#01 (0.24s) --- SKIP: TestLoadIndirectBigOffset/eBPF#01 (0.00s) --- PASS: TestLoadIndirectBigOffset/kernel#01 (0.00s) - --- SKIP: TestLoadIndirectBigOffset/C#02 (0.04s) + --- SKIP: TestLoadIndirectBigOffset/C#02 (0.26s) --- SKIP: TestLoadIndirectBigOffset/eBPF#02 (0.00s) --- PASS: TestLoadIndirectBigOffset/kernel#02 (0.05s) - --- SKIP: TestLoadIndirectBigOffset/C#03 (0.04s) + --- SKIP: TestLoadIndirectBigOffset/C#03 (0.22s) --- SKIP: TestLoadIndirectBigOffset/eBPF#03 (0.00s) - --- PASS: TestLoadIndirectBigOffset/kernel#03 (0.05s) - --- SKIP: TestLoadIndirectBigOffset/C#04 (0.04s) + --- PASS: TestLoadIndirectBigOffset/kernel#03 (0.06s) + --- SKIP: TestLoadIndirectBigOffset/C#04 (0.34s) --- SKIP: TestLoadIndirectBigOffset/eBPF#04 (0.00s) - --- PASS: TestLoadIndirectBigOffset/kernel#04 (0.05s) - --- SKIP: TestLoadIndirectBigOffset/C#05 (0.04s) + --- PASS: TestLoadIndirectBigOffset/kernel#04 (0.06s) + --- SKIP: TestLoadIndirectBigOffset/C#05 (0.23s) --- SKIP: TestLoadIndirectBigOffset/eBPF#05 (0.00s) --- PASS: TestLoadIndirectBigOffset/kernel#05 (0.05s) - --- SKIP: TestLoadIndirectBigOffset/C#06 (0.04s) + --- SKIP: TestLoadIndirectBigOffset/C#06 (0.24s) --- SKIP: TestLoadIndirectBigOffset/eBPF#06 (0.00s) --- PASS: TestLoadIndirectBigOffset/kernel#06 (0.05s) - --- SKIP: TestLoadIndirectBigOffset/C#07 (0.04s) + --- SKIP: TestLoadIndirectBigOffset/C#07 (0.21s) --- SKIP: TestLoadIndirectBigOffset/eBPF#07 (0.00s) --- PASS: TestLoadIndirectBigOffset/kernel#07 (0.05s) === RUN TestLoadIndirectGuardOverflow @@ -999,10 +1035,10 @@ return: 32: Exit === RUN TestLoadIndirectGuardOverflow/kernel ---- PASS: TestLoadIndirectGuardOverflow (0.09s) - --- SKIP: TestLoadIndirectGuardOverflow/C (0.04s) +--- PASS: TestLoadIndirectGuardOverflow (0.44s) + --- SKIP: TestLoadIndirectGuardOverflow/C (0.38s) --- SKIP: TestLoadIndirectGuardOverflow/eBPF (0.00s) - --- PASS: TestLoadIndirectGuardOverflow/kernel (0.05s) + --- PASS: TestLoadIndirectGuardOverflow/kernel (0.06s) === RUN TestScratchZero === PAUSE TestScratchZero === RUN TestScratchA @@ -1051,8 +1087,8 @@ return: 16: Exit === RUN TestALUDivNegative/kernel ---- PASS: TestALUDivNegative (0.04s) - --- SKIP: TestALUDivNegative/C (0.04s) +--- PASS: TestALUDivNegative (0.22s) + --- SKIP: TestALUDivNegative/C (0.22s) --- SKIP: TestALUDivNegative/eBPF (0.00s) --- PASS: TestALUDivNegative/kernel (0.00s) === RUN TestALUOr @@ -1097,189 +1133,53 @@ === PAUSE TestTXA === RUN TestTAX === PAUSE TestTAX -=== CONT TestRetA -=== CONT TestJumpIfGreaterThan === CONT TestZeroInitA -=== RUN TestJumpIfGreaterThan/C -=== CONT TestALUMul === RUN TestZeroInitA/C -=== RUN TestALUMul/C -=== CONT TestLoadIndirect -=== RUN TestLoadIndirect/constant_valid -=== CONT TestLoadConstantX -=== CONT TestALUMod -=== CONT TestLoadConstantA -=== CONT TestNegateA -=== RUN TestLoadConstantX/C -=== CONT TestALUDiv -=== CONT TestALUDivZero -=== RUN TestALUDivZero/C -=== RUN TestLoadConstantA/C +=== CONT TestALUShiftLeft +=== CONT TestJumpIfLessThan +=== RUN TestALUShiftLeft/C +=== RUN TestJumpIfLessThan/C +=== CONT TestRetA +=== RUN TestRetA/C === CONT TestTXA === RUN TestTXA/C -=== CONT TestJump -=== RUN TestJump/C -=== RUN TestLoadIndirect/constant_valid/C +=== CONT TestJumpIfBitsSet +=== RUN TestJumpIfBitsSet/C +=== CONT TestTAX +=== RUN TestTAX/C +=== CONT TestJumpIfLessOrEqual +=== RUN TestJumpIfLessOrEqual/C === CONT TestJumpIfGreaterOrEqual === RUN TestJumpIfGreaterOrEqual/C -=== CONT TestJumpIfLessThan -=== CONT TestLoadAbsoluteBigOffset -=== CONT TestLoadAbsolute -=== CONT TestALUSub -=== CONT TestALUAdd -=== CONT TestLoadExtLen -=== CONT TestMemShift -=== CONT TestScratchX -=== CONT TestScratchA -=== CONT TestScratchZero -=== CONT TestJump0 -=== CONT TestJumpIfNotEqual -=== CONT TestJumpIfEqual -=== CONT TestZeroInitX -=== CONT TestPartialZeroInitX -=== RUN TestRetA/C -=== CONT TestTAX +=== CONT TestJumpIfBitsNotSet +=== RUN TestJumpIfBitsNotSet/C +=== CONT TestJumpIfGreaterThan +=== CONT TestALUAnd +=== RUN TestJumpIfGreaterThan/C +=== RUN TestALUAnd/C === CONT TestRetConstant -=== RUN TestLoadAbsoluteBigOffset/C === RUN TestRetConstant/C -=== CONT TestALUOr -=== RUN TestALUOr/C -=== RUN TestLoadAbsolute/C -=== RUN TestALUSub/C -=== RUN TestALUAdd/C -=== CONT TestALUShiftRight -=== RUN TestLoadExtLen/C -=== RUN TestMemShift/C -=== RUN TestALUShiftRight/C -=== CONT TestALUShiftLeft -=== CONT TestALUAnd -=== CONT TestJumpIfBitsNotSet -=== CONT TestJumpIfLessOrEqual -=== RUN TestALUMod/C +=== CONT TestJumpIfNotEqual +=== CONT TestJumpIfEqual +=== RUN TestJumpIfEqual/C +=== CONT TestJump0 +=== RUN TestJump0/C +=== CONT TestJump +=== RUN TestJump/C +=== RUN TestJumpIfNotEqual/C +=== CONT TestNegateA === CONT TestALUXor -=== RUN TestALUDiv/C -=== RUN TestNegateA/C -=== CONT TestJumpIfBitsSet -=== RUN TestJumpIfLessThan/C -=== RUN TestScratchX/C === RUN TestALUXor/C -=== RUN TestJumpIfBitsSet/C -=== RUN TestScratchA/C -=== RUN TestScratchZero/C -=== RUN TestRetA/eBPF -=== RUN TestJumpIfNotEqual/C -=== RUN TestJump0/C -=== RUN TestLoadConstantX/eBPF -=== RUN TestJumpIfGreaterThan/eBPF -=== RUN TestLoadAbsoluteBigOffset/eBPF -=== RUN TestLoadExtLen/eBPF -=== RUN TestLoadAbsolute/eBPF -=== RUN TestZeroInitA/eBPF -=== RUN TestALUMul/eBPF -=== RUN TestJumpIfEqual/C -=== RUN TestLoadConstantA/eBPF -=== RUN TestTAX/C -=== RUN TestJumpIfLessOrEqual/C -=== RUN TestALUOr/eBPF -=== RUN TestALUAnd/C -=== RUN TestJump/eBPF -=== RUN TestALUShiftRight/eBPF -=== RUN TestTXA/eBPF -=== NAME TestLoadAbsoluteBigOffset/eBPF - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 65535 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: MovReg dst: r6 src: r2 - 6: AddImm dst: r6 imm: 65534 - 7: LdXMemB dst: r4 src: r6 off: 0 imm: 0 - 8: Add32Imm dst: r4 imm: 2 - 9: Mov32Reg dst: r4 src: r4 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 11: MovImm dst: r4 imm: 0 - 12: JaImm dst: r0 off: -1 imm: 0 - result: - 13: MovImm dst: r0 imm: 2 - 14: JEqImm dst: r4 off: -1 imm: 0 - 15: MovImm dst: r0 imm: 1 - return: - 16: Exit -=== RUN TestALUSub/eBPF -=== RUN TestALUDivZero/eBPF -=== RUN TestJumpIfBitsNotSet/C -=== RUN TestALUShiftLeft/C -=== NAME TestALUSub/eBPF - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 1 - 3: Sub32Imm dst: r4 imm: 1 - 4: JEqImm dst: r4 off: -1 imm: 0 - filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 - result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 - return: - 12: Exit -=== RUN TestZeroInitX/C -=== NAME TestJump/eBPF - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 1 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: LdXMemB dst: r4 src: r2 off: 0 imm: 0 - 6: JEqImm dst: r4 off: -1 imm: 1 - filter_block_2: - 7: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 8: Mov32Imm dst: r4 imm: 1 - filter_block_4: - 9: Mov32Reg dst: r4 src: r4 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 11: MovImm dst: r4 imm: 0 - 12: JaImm dst: r0 off: -1 imm: 0 - result: - 13: MovImm dst: r0 imm: 2 - 14: JEqImm dst: r4 off: -1 imm: 0 - 15: MovImm dst: r0 imm: 1 - return: - 16: Exit -=== NAME TestZeroInitA/eBPF - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 0 - 3: Mov32Reg dst: r4 src: r4 - 4: JaImm dst: r0 off: -1 imm: 0 - result: - 5: MovImm dst: r0 imm: 2 - 6: JEqImm dst: r4 off: -1 imm: 0 - 7: MovImm dst: r0 imm: 1 - return: - 8: Exit -=== NAME TestLoadConstantA/eBPF +=== RUN TestNegateA/C +=== CONT TestALUMod +=== RUN TestALUMod/C +=== RUN TestJumpIfLessThan/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 1 - 3: JEqImm dst: r4 off: -1 imm: 1 + 2: Mov32Imm dst: r4 imm: 24 + 3: JLTImm dst: r4 off: -1 imm: 23 filter_block_2: 4: Mov32Imm dst: r4 imm: 0 5: JaImm dst: r0 off: -1 imm: 0 @@ -1292,85 +1192,14 @@ 10: MovImm dst: r0 imm: 1 return: 11: Exit -=== NAME TestALUOr/eBPF - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 1 - 3: Or32Imm dst: r4 imm: 0 - 4: JEqImm dst: r4 off: -1 imm: 1 - filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 - result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 - return: - 12: Exit -=== RUN TestJumpIfGreaterOrEqual/eBPF -=== NAME TestRetA/eBPF - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 1 - 3: Mov32Reg dst: r4 src: r4 - 4: JaImm dst: r0 off: -1 imm: 0 - result: - 5: MovImm dst: r0 imm: 2 - 6: JEqImm dst: r4 off: -1 imm: 0 - 7: MovImm dst: r0 imm: 1 - return: - 8: Exit -=== NAME TestTXA/eBPF - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r5 imm: 1 - 3: Mov32Reg dst: r4 src: r5 - 4: Mov32Reg dst: r4 src: r4 - 5: JaImm dst: r0 off: -1 imm: 0 - result: - 6: MovImm dst: r0 imm: 2 - 7: JEqImm dst: r4 off: -1 imm: 0 - 8: MovImm dst: r0 imm: 1 - return: - 9: Exit -=== NAME TestALUMul/eBPF - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 0 - 3: Mul32Imm dst: r4 imm: 1 - 4: JEqImm dst: r4 off: -1 imm: 0 - filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 - result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 - return: - 12: Exit -=== RUN TestALUAdd/eBPF -=== RUN TestRetConstant/eBPF -=== NAME TestJumpIfGreaterOrEqual/eBPF +=== RUN TestJumpIfLessThan/kernel +=== RUN TestJumpIfBitsSet/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 24 - 3: JGEImm dst: r4 off: -1 imm: 23 + 2: Mov32Imm dst: r4 imm: 6 + 3: JSetImm dst: r4 off: -1 imm: 4 filter_block_2: 4: Mov32Imm dst: r4 imm: 0 5: JaImm dst: r0 off: -1 imm: 0 @@ -1383,13 +1212,16 @@ 10: MovImm dst: r0 imm: 1 return: 11: Exit -=== NAME TestJumpIfGreaterThan/eBPF +=== RUN TestJumpIfBitsSet/kernel +=== RUN TestJumpIfBitsSet/C#01 +=== RUN TestJumpIfLessThan/C#01 +=== RUN TestJumpIfGreaterOrEqual/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 24 - 3: JGTImm dst: r4 off: -1 imm: 23 + 3: JGEImm dst: r4 off: -1 imm: 23 filter_block_2: 4: Mov32Imm dst: r4 imm: 0 5: JaImm dst: r0 off: -1 imm: 0 @@ -1402,38 +1234,15 @@ 10: MovImm dst: r0 imm: 1 return: 11: Exit -=== NAME TestLoadAbsolute/eBPF - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 3 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: LdXMemB dst: r4 src: r2 off: 2 imm: 0 - 6: JEqImm dst: r4 off: -1 imm: 5 - filter_block_2: - 7: Mov32Imm dst: r4 imm: 0 - 8: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 9: Mov32Imm dst: r4 imm: 1 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 11: MovImm dst: r4 imm: 0 - 12: JaImm dst: r0 off: -1 imm: 0 - result: - 13: MovImm dst: r0 imm: 2 - 14: JEqImm dst: r4 off: -1 imm: 0 - 15: MovImm dst: r0 imm: 1 - return: - 16: Exit -=== NAME TestALUAdd/eBPF +=== RUN TestJumpIfGreaterOrEqual/kernel +=== RUN TestJumpIfGreaterOrEqual/C#01 +=== RUN TestALUShiftLeft/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 1 - 3: Add32Imm dst: r4 imm: 0 + 3: LSh32Imm dst: r4 imm: 0 4: JEqImm dst: r4 off: -1 imm: 1 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 @@ -1447,215 +1256,96 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestLoadIndirect/constant_valid/eBPF -=== NAME TestALUShiftRight/eBPF - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 240 - 3: RSh32Imm dst: r4 imm: 4 - 4: JEqImm dst: r4 off: -1 imm: 15 - filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 - result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 - return: - 12: Exit -=== NAME TestALUDivZero/eBPF +=== RUN TestALUShiftLeft/kernel +=== RUN TestALUShiftLeft/C#01 +=== RUN TestZeroInitA/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 1 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: LdXMemB dst: r4 src: r2 off: 0 imm: 0 - 6: Mov32Reg dst: r5 src: r4 - 7: Mov32Imm dst: r4 imm: 10 - 8: JEqImm dst: r5 off: -1 imm: 0 - 9: Div32Reg dst: r4 src: r5 - 10: Mov32Imm dst: r4 imm: 1 - 11: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 12: MovImm dst: r4 imm: 0 - 13: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 0 + 3: Mov32Reg dst: r4 src: r4 + 4: JaImm dst: r0 off: -1 imm: 0 result: - 14: MovImm dst: r0 imm: 2 - 15: JEqImm dst: r4 off: -1 imm: 0 - 16: MovImm dst: r0 imm: 1 + 5: MovImm dst: r0 imm: 2 + 6: JEqImm dst: r4 off: -1 imm: 0 + 7: MovImm dst: r0 imm: 1 return: - 17: Exit -=== RUN TestPartialZeroInitX/C -=== NAME TestLoadIndirect/constant_valid/eBPF + 8: Exit +=== RUN TestZeroInitA/kernel +--- PASS: TestZeroInitA (0.41s) + --- SKIP: TestZeroInitA/C (0.36s) + --- SKIP: TestZeroInitA/eBPF (0.00s) + --- PASS: TestZeroInitA/kernel (0.05s) +=== CONT TestALUShiftRight +=== RUN TestALUShiftRight/C +=== RUN TestTXA/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r5 imm: -2147483644 - 3: MovReg dst: r7 src: r5 - 4: LShImm dst: r7 imm: 32 - 5: ArShImm dst: r7 imm: 32 - 6: AddImm dst: r7 imm: 2147483647 - 7: JGEImm dst: r7 off: -1 imm: 65535 - 8: AddReg dst: r7 src: r2 - 9: MovReg dst: r6 src: r7 - 10: AddImm dst: r6 imm: 1 - 11: JGTReg dst: r6 off: -1 src: r3 - 12: LdXMemB dst: r4 src: r7 off: 0 imm: 0 - 13: JEqImm dst: r4 off: -1 imm: 5 - filter_block_3: - 14: Mov32Imm dst: r4 imm: 0 - 15: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 16: Mov32Imm dst: r4 imm: 1 - 17: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 18: MovImm dst: r4 imm: 0 - 19: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r5 imm: 1 + 3: Mov32Reg dst: r4 src: r5 + 4: Mov32Reg dst: r4 src: r4 + 5: JaImm dst: r0 off: -1 imm: 0 result: - 20: MovImm dst: r0 imm: 2 - 21: JEqImm dst: r4 off: -1 imm: 0 - 22: MovImm dst: r0 imm: 1 + 6: MovImm dst: r0 imm: 2 + 7: JEqImm dst: r4 off: -1 imm: 0 + 8: MovImm dst: r0 imm: 1 return: - 23: Exit -=== NAME TestRetConstant/eBPF + 9: Exit +=== RUN TestTXA/kernel +--- PASS: TestTXA (0.41s) + --- SKIP: TestTXA/C (0.41s) + --- SKIP: TestTXA/eBPF (0.00s) + --- PASS: TestTXA/kernel (0.00s) +=== CONT TestScratchX +=== RUN TestScratchX/C +=== RUN TestRetA/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 1 - 3: JaImm dst: r0 off: -1 imm: 0 - result: - 4: MovImm dst: r0 imm: 2 - 5: JEqImm dst: r4 off: -1 imm: 0 - 6: MovImm dst: r0 imm: 1 - return: - 7: Exit -=== RUN TestLoadAbsoluteBigOffset/kernel -=== NAME TestLoadExtLen/eBPF - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: MovReg dst: r4 src: r3 - 3: Sub32Reg dst: r4 src: r2 - 4: JEqImm dst: r4 off: -1 imm: 16 - filter_block_2: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 - result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 - return: - 12: Exit -=== RUN TestLoadExtLen/kernel -=== NAME TestLoadConstantX/eBPF - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r5 imm: 1 - 3: Mov32Reg dst: r4 src: r5 - 4: JEqImm dst: r4 off: -1 imm: 1 - filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 + 3: Mov32Reg dst: r4 src: r4 + 4: JaImm dst: r0 off: -1 imm: 0 result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 + 5: MovImm dst: r0 imm: 2 + 6: JEqImm dst: r4 off: -1 imm: 0 + 7: MovImm dst: r0 imm: 1 return: - 12: Exit -=== RUN TestALUSub/kernel -=== RUN TestJumpIfGreaterThan/kernel ---- PASS: TestLoadExtLen (0.06s) - --- SKIP: TestLoadExtLen/C (0.05s) - --- SKIP: TestLoadExtLen/eBPF (0.00s) - --- PASS: TestLoadExtLen/kernel (0.00s) -=== RUN TestJump/kernel -=== RUN TestLoadConstantA/kernel + 8: Exit === RUN TestRetA/kernel -=== RUN TestMemShift/eBPF -=== RUN TestZeroInitA/kernel -=== RUN TestTXA/kernel -=== NAME TestMemShift/eBPF +--- PASS: TestRetA (0.45s) + --- SKIP: TestRetA/C (0.44s) + --- SKIP: TestRetA/eBPF (0.00s) + --- PASS: TestRetA/kernel (0.00s) +=== CONT TestALUOr +=== RUN TestALUOr/C +=== RUN TestTAX/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 3 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: Mov32Imm dst: r4 imm: 40 - 6: LdXMemB dst: r5 src: r2 off: 2 imm: 0 - 7: And32Imm dst: r5 imm: 15 - 8: LSh32Imm dst: r5 imm: 2 - 9: JEqReg dst: r4 off: -1 src: r5 - filter_block_3: - 10: Mov32Imm dst: r4 imm: 0 - 11: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 12: Mov32Imm dst: r4 imm: 1 - 13: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 14: MovImm dst: r4 imm: 0 - 15: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 1 + 3: Mov32Reg dst: r5 src: r4 + 4: Mov32Reg dst: r4 src: r5 + 5: Mov32Reg dst: r4 src: r4 + 6: JaImm dst: r0 off: -1 imm: 0 result: - 16: MovImm dst: r0 imm: 2 - 17: JEqImm dst: r4 off: -1 imm: 0 - 18: MovImm dst: r0 imm: 1 + 7: MovImm dst: r0 imm: 2 + 8: JEqImm dst: r4 off: -1 imm: 0 + 9: MovImm dst: r0 imm: 1 return: - 19: Exit ---- PASS: TestRetA (0.07s) - --- SKIP: TestRetA/C (0.05s) - --- SKIP: TestRetA/eBPF (0.00s) - --- PASS: TestRetA/kernel (0.00s) -=== RUN TestALUOr/kernel -=== RUN TestMemShift/kernel -=== RUN TestALUMul/kernel -=== RUN TestLoadConstantA/C#01 -=== RUN TestALUOr/C#01 ---- PASS: TestTXA (0.07s) - --- SKIP: TestTXA/C (0.06s) - --- SKIP: TestTXA/eBPF (0.00s) - --- PASS: TestTXA/kernel (0.00s) -=== RUN TestJumpIfGreaterOrEqual/kernel -=== RUN TestMemShift/C#01 -=== RUN TestALUMul/C#01 -=== RUN TestJumpIfGreaterOrEqual/C#01 -=== RUN TestLoadAbsolute/kernel -=== RUN TestALUAdd/kernel -=== RUN TestALUShiftRight/kernel -=== RUN TestALUDivZero/kernel -=== RUN TestLoadAbsolute/C#01 -=== RUN TestALUShiftRight/C#01 -=== RUN TestALUAdd/C#01 -=== RUN TestLoadIndirect/constant_valid/kernel -=== RUN TestLoadIndirect/constant_valid/C#01 -=== RUN TestRetConstant/kernel -=== RUN TestLoadConstantX/kernel -=== RUN TestRetConstant/C#01 -=== RUN TestALUSub/C#01 -=== RUN TestLoadConstantX/C#01 -=== RUN TestJumpIfGreaterThan/C#01 + 10: Exit +=== RUN TestTAX/kernel +--- PASS: TestTAX (0.43s) + --- SKIP: TestTAX/C (0.43s) + --- SKIP: TestTAX/eBPF (0.00s) + --- PASS: TestTAX/kernel (0.00s) +=== CONT TestALUDivZero +=== RUN TestALUDivZero/C === RUN TestALUMod/eBPF -=== RUN TestScratchA/eBPF -=== RUN TestJumpIfBitsSet/eBPF -=== NAME TestALUMod/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -1676,13 +1366,14 @@ return: 12: Exit === RUN TestALUMod/kernel -=== NAME TestJumpIfBitsSet/eBPF +=== RUN TestALUMod/C#01 +=== RUN TestJumpIfLessOrEqual/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: JSetImm dst: r4 off: -1 imm: 4 + 2: Mov32Imm dst: r4 imm: 24 + 3: JLEImm dst: r4 off: -1 imm: 23 filter_block_2: 4: Mov32Imm dst: r4 imm: 0 5: JaImm dst: r0 off: -1 imm: 0 @@ -1695,50 +1386,19 @@ 10: MovImm dst: r0 imm: 1 return: 11: Exit -=== RUN TestJumpIfBitsSet/kernel -=== NAME TestScratchA/eBPF - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: -559038737 - 3: StXMemW dst: rfp src: r4 off: -32 imm: 0 - 4: Mov32Imm dst: r4 imm: 0 - 5: Mov32Imm dst: r4 imm: -1 - 6: StXMemW dst: rfp src: r4 off: -28 imm: 0 - 7: Mov32Imm dst: r4 imm: -1 - 8: StXMemW dst: rfp src: r4 off: -36 imm: 0 - 9: LdXMemW dst: r4 src: rfp off: -32 imm: 0 - 10: Mov32Imm dst: r6 imm: -559038737 - 11: JEqReg dst: r4 off: -1 src: r6 - filter_block_9: - 12: Mov32Imm dst: r4 imm: 0 - 13: JaImm dst: r0 off: -1 imm: 0 - filter_block_10: - 14: Mov32Imm dst: r4 imm: 1 - 15: JaImm dst: r0 off: -1 imm: 0 - result: - 16: MovImm dst: r0 imm: 2 - 17: JEqImm dst: r4 off: -1 imm: 0 - 18: MovImm dst: r0 imm: 1 - return: - 19: Exit -=== RUN TestScratchA/kernel -=== RUN TestScratchA/C#01 -=== RUN TestJumpIfBitsSet/C#01 -=== RUN TestALUMod/C#01 -=== RUN TestALUDiv/eBPF +=== RUN TestJumpIfLessOrEqual/kernel +=== RUN TestJumpIfBitsNotSet/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 2 - 3: Div32Imm dst: r4 imm: 2 - 4: JEqImm dst: r4 off: -1 imm: 1 - filter_block_3: + 2: Mov32Imm dst: r4 imm: 6 + 3: JSetImm dst: r4 off: -1 imm: 4 + 4: JaImm dst: r0 off: -1 imm: 0 + filter_block_2: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: + filter_block_3: 7: Mov32Imm dst: r4 imm: 1 8: JaImm dst: r0 off: -1 imm: 0 result: @@ -1747,55 +1407,62 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestALUDiv/kernel -=== RUN TestALUDiv/C#01 -=== RUN TestALUShiftLeft/eBPF -=== RUN TestJumpIfBitsNotSet/eBPF -=== RUN TestZeroInitX/eBPF -=== RUN TestJumpIfLessThan/eBPF -=== NAME TestZeroInitX/eBPF +=== RUN TestJumpIfBitsNotSet/kernel +=== RUN TestJump0/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r5 imm: 0 - 3: Mov32Reg dst: r4 src: r5 - 4: Mov32Reg dst: r4 src: r4 - 5: JaImm dst: r0 off: -1 imm: 0 + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 1 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: Mov32Imm dst: r5 imm: 0 + 6: LdXMemB dst: r4 src: r2 off: 0 imm: 0 + 7: JaImm dst: r0 off: -1 imm: 0 + filter_block_3: + 8: JEqReg dst: r4 off: -1 src: r5 + filter_block_4: + 9: Mov32Reg dst: r4 src: r4 + 10: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 11: MovImm dst: r4 imm: 0 + 12: JaImm dst: r0 off: -1 imm: 0 result: - 6: MovImm dst: r0 imm: 2 - 7: JEqImm dst: r4 off: -1 imm: 0 - 8: MovImm dst: r0 imm: 1 + 13: MovImm dst: r0 imm: 2 + 14: JEqImm dst: r4 off: -1 imm: 0 + 15: MovImm dst: r0 imm: 1 return: - 9: Exit -=== RUN TestZeroInitX/kernel -=== NAME TestJumpIfBitsNotSet/eBPF + 16: Exit +=== RUN TestJump0/kernel +=== RUN TestJumpIfEqual/eBPF +=== RUN TestJumpIfGreaterThan/eBPF +=== NAME TestJumpIfEqual/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: JSetImm dst: r4 off: -1 imm: 4 - 4: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 23 + 3: JEqImm dst: r4 off: -1 imm: 23 filter_block_2: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 + 4: Mov32Imm dst: r4 imm: 0 + 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 + 6: Mov32Imm dst: r4 imm: 1 + 7: JaImm dst: r0 off: -1 imm: 0 result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 + 8: MovImm dst: r0 imm: 2 + 9: JEqImm dst: r4 off: -1 imm: 0 + 10: MovImm dst: r0 imm: 1 return: - 12: Exit -=== NAME TestJumpIfLessThan/eBPF + 11: Exit +=== RUN TestJumpIfEqual/kernel +=== NAME TestJumpIfGreaterThan/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 24 - 3: JLTImm dst: r4 off: -1 imm: 23 + 3: JGTImm dst: r4 off: -1 imm: 23 filter_block_2: 4: Mov32Imm dst: r4 imm: 0 5: JaImm dst: r0 off: -1 imm: 0 @@ -1808,14 +1475,17 @@ 10: MovImm dst: r0 imm: 1 return: 11: Exit -=== NAME TestALUShiftLeft/eBPF +=== RUN TestJumpIfGreaterThan/kernel +=== RUN TestJumpIfEqual/C#01 +=== RUN TestJumpIfGreaterThan/C#01 +=== RUN TestALUXor/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 1 - 3: LSh32Imm dst: r4 imm: 0 - 4: JEqImm dst: r4 off: -1 imm: 1 + 3: Xor32Imm dst: r4 imm: 1 + 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -1828,39 +1498,34 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestJumpIfBitsNotSet/kernel -=== RUN TestJumpIfLessThan/kernel -=== RUN TestALUShiftLeft/kernel -=== RUN TestJump0/eBPF -=== RUN TestALUShiftLeft/C#01 -=== NAME TestJump0/eBPF +=== RUN TestALUXor/kernel +=== RUN TestALUXor/C#01 +=== RUN TestALUAnd/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 1 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: Mov32Imm dst: r5 imm: 0 - 6: LdXMemB dst: r4 src: r2 off: 0 imm: 0 - 7: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 1 + 3: And32Imm dst: r4 imm: 0 + 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 8: JEqReg dst: r4 off: -1 src: r5 + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 9: Mov32Reg dst: r4 src: r4 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 11: MovImm dst: r4 imm: 0 - 12: JaImm dst: r0 off: -1 imm: 0 + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 result: - 13: MovImm dst: r0 imm: 2 - 14: JEqImm dst: r4 off: -1 imm: 0 - 15: MovImm dst: r0 imm: 1 + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 return: - 16: Exit -=== RUN TestJump0/kernel + 12: Exit +=== RUN TestALUAnd/kernel +=== RUN TestALUAnd/C#01 +=== RUN TestJumpIfLessOrEqual/C#01 +=== RUN TestJumpIfBitsNotSet/C#01 === RUN TestNegateA/eBPF -=== RUN TestALUXor/eBPF +=== RUN TestJump0/C#01 === NAME TestNegateA/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 @@ -1882,120 +1547,61 @@ 12: MovImm dst: r0 imm: 1 return: 13: Exit -=== NAME TestALUXor/eBPF - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 1 - 3: Xor32Imm dst: r4 imm: 1 - 4: JEqImm dst: r4 off: -1 imm: 0 - filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 - result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 - return: - 12: Exit === RUN TestNegateA/kernel -=== RUN TestALUXor/kernel -=== RUN TestALUXor/C#01 -=== RUN TestJumpIfEqual/eBPF -=== RUN TestJumpIfLessOrEqual/eBPF -=== RUN TestALUAnd/eBPF -=== NAME TestJumpIfEqual/eBPF - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: JEqImm dst: r4 off: -1 imm: 23 - filter_block_2: - 4: Mov32Imm dst: r4 imm: 0 - 5: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 6: Mov32Imm dst: r4 imm: 1 - 7: JaImm dst: r0 off: -1 imm: 0 - result: - 8: MovImm dst: r0 imm: 2 - 9: JEqImm dst: r4 off: -1 imm: 0 - 10: MovImm dst: r0 imm: 1 - return: - 11: Exit -=== RUN TestJumpIfEqual/kernel -=== RUN TestTAX/eBPF -=== NAME TestJumpIfLessOrEqual/eBPF +=== RUN TestJumpIfLessThan/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 24 - 3: JLEImm dst: r4 off: -1 imm: 23 + 3: JEqImm dst: r4 off: -1 imm: 0 filter_block_2: - 4: Mov32Imm dst: r4 imm: 0 - 5: JaImm dst: r0 off: -1 imm: 0 + 4: JLTImm dst: r4 off: -1 imm: 23 + 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: 6: Mov32Imm dst: r4 imm: 1 7: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 8: Mov32Imm dst: r4 imm: 0 + 9: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 10: Mov32Imm dst: r4 imm: 1 + 11: JaImm dst: r0 off: -1 imm: 0 result: - 8: MovImm dst: r0 imm: 2 - 9: JEqImm dst: r4 off: -1 imm: 0 - 10: MovImm dst: r0 imm: 1 + 12: MovImm dst: r0 imm: 2 + 13: JEqImm dst: r4 off: -1 imm: 0 + 14: MovImm dst: r0 imm: 1 return: - 11: Exit -=== NAME TestALUAnd/eBPF + 15: Exit +=== RUN TestJumpIfLessThan/kernel#01 +=== RUN TestJump/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 1 - 3: And32Imm dst: r4 imm: 0 - 4: JEqImm dst: r4 off: -1 imm: 0 + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 1 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: LdXMemB dst: r4 src: r2 off: 0 imm: 0 + 6: JEqImm dst: r4 off: -1 imm: 1 + filter_block_2: + 7: JaImm dst: r0 off: -1 imm: 0 filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 + 8: Mov32Imm dst: r4 imm: 1 filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 - result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 - return: - 12: Exit -=== RUN TestJumpIfLessOrEqual/kernel -=== RUN TestALUAnd/kernel -=== NAME TestTAX/eBPF - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 1 - 3: Mov32Reg dst: r5 src: r4 - 4: Mov32Reg dst: r4 src: r5 - 5: Mov32Reg dst: r4 src: r4 - 6: JaImm dst: r0 off: -1 imm: 0 + 9: Mov32Reg dst: r4 src: r4 + 10: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 11: MovImm dst: r4 imm: 0 + 12: JaImm dst: r0 off: -1 imm: 0 result: - 7: MovImm dst: r0 imm: 2 - 8: JEqImm dst: r4 off: -1 imm: 0 - 9: MovImm dst: r0 imm: 1 + 13: MovImm dst: r0 imm: 2 + 14: JEqImm dst: r4 off: -1 imm: 0 + 15: MovImm dst: r0 imm: 1 return: - 10: Exit -=== RUN TestTAX/kernel + 16: Exit +=== RUN TestJump/kernel === RUN TestScratchX/eBPF -=== RUN TestJumpIfEqual/C#01 -=== RUN TestALUAnd/C#01 -=== RUN TestJumpIfNotEqual/eBPF ---- PASS: TestTAX (0.11s) - --- SKIP: TestTAX/C (0.05s) - --- SKIP: TestTAX/eBPF (0.00s) - --- PASS: TestTAX/kernel (0.00s) -=== NAME TestScratchX/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -2024,7 +1630,35 @@ return: 20: Exit === RUN TestScratchX/kernel -=== NAME TestJumpIfNotEqual/eBPF +=== RUN TestScratchX/C#01 +=== RUN TestJumpIfBitsSet/eBPF#01 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 6 + 3: JEqImm dst: r4 off: -1 imm: 0 + filter_block_2: + 4: JSetImm dst: r4 off: -1 imm: 4 + 5: JaImm dst: r0 off: -1 imm: 0 + filter_block_3: + 6: Mov32Imm dst: r4 imm: 1 + 7: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 8: Mov32Imm dst: r4 imm: 0 + 9: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 10: Mov32Imm dst: r4 imm: 1 + 11: JaImm dst: r0 off: -1 imm: 0 + result: + 12: MovImm dst: r0 imm: 2 + 13: JEqImm dst: r4 off: -1 imm: 0 + 14: MovImm dst: r0 imm: 1 + return: + 15: Exit +=== RUN TestJumpIfBitsSet/kernel#01 +=== RUN TestJumpIfBitsSet/C#02 +=== RUN TestJumpIfNotEqual/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -2044,78 +1678,120 @@ return: 11: Exit === RUN TestJumpIfNotEqual/kernel -=== RUN TestScratchX/C#01 ---- PASS: TestJump (0.12s) - --- SKIP: TestJump/C (0.05s) - --- SKIP: TestJump/eBPF (0.00s) - --- PASS: TestJump/kernel (0.05s) -=== RUN TestLoadAbsoluteBigOffset/C#01 -=== RUN TestScratchZero/eBPF ---- PASS: TestZeroInitA (0.12s) - --- SKIP: TestZeroInitA/C (0.06s) - --- SKIP: TestZeroInitA/eBPF (0.00s) - --- PASS: TestZeroInitA/kernel (0.05s) -=== NAME TestScratchZero/eBPF +=== RUN TestJumpIfGreaterOrEqual/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 4 - 3: StXMemW dst: rfp src: r4 off: -4 imm: 0 - 4: Mov32Imm dst: r4 imm: 0 - 5: LdXMemW dst: r4 src: rfp off: -4 imm: 0 - 6: JEqImm dst: r4 off: -1 imm: 4 + 2: Mov32Imm dst: r4 imm: 24 + 3: JEqImm dst: r4 off: -1 imm: 0 + filter_block_2: + 4: JGEImm dst: r4 off: -1 imm: 23 + 5: JaImm dst: r0 off: -1 imm: 0 + filter_block_3: + 6: Mov32Imm dst: r4 imm: 1 + 7: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 8: Mov32Imm dst: r4 imm: 0 + 9: JaImm dst: r0 off: -1 imm: 0 filter_block_5: + 10: Mov32Imm dst: r4 imm: 1 + 11: JaImm dst: r0 off: -1 imm: 0 + result: + 12: MovImm dst: r0 imm: 2 + 13: JEqImm dst: r4 off: -1 imm: 0 + 14: MovImm dst: r0 imm: 1 + return: + 15: Exit +=== RUN TestJumpIfGreaterOrEqual/kernel#01 +=== RUN TestJumpIfGreaterOrEqual/C#02 +=== RUN TestJumpIfNotEqual/C#01 +=== RUN TestJumpIfLessThan/C#02 +--- PASS: TestNegateA (0.58s) + --- SKIP: TestNegateA/C (0.41s) + --- SKIP: TestNegateA/eBPF (0.00s) + --- PASS: TestNegateA/kernel (0.08s) +=== CONT TestALUDiv +=== RUN TestALUDiv/C +=== RUN TestRetConstant/eBPF + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 1 + 3: JaImm dst: r0 off: -1 imm: 0 + result: + 4: MovImm dst: r0 imm: 2 + 5: JEqImm dst: r4 off: -1 imm: 0 + 6: MovImm dst: r0 imm: 1 + return: + 7: Exit +=== RUN TestRetConstant/kernel +=== RUN TestRetConstant/C#01 +--- PASS: TestJump (0.61s) + --- SKIP: TestJump/C (0.46s) + --- SKIP: TestJump/eBPF (0.00s) + --- PASS: TestJump/kernel (0.10s) +=== CONT TestALUMul +=== RUN TestALUMul/C +=== RUN TestALUMod/eBPF#01 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 16 + 3: Mov32Imm dst: r5 imm: 4 + 4: JEqImm dst: r5 off: -1 imm: 0 + 5: Mod32Reg dst: r4 src: r5 + 6: JEqImm dst: r4 off: -1 imm: 0 + filter_block_4: 7: Mov32Imm dst: r4 imm: 0 8: JaImm dst: r0 off: -1 imm: 0 - filter_block_6: + filter_block_5: 9: Mov32Imm dst: r4 imm: 1 10: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 11: MovImm dst: r4 imm: 0 + 12: JaImm dst: r0 off: -1 imm: 0 result: - 11: MovImm dst: r0 imm: 2 - 12: JEqImm dst: r4 off: -1 imm: 0 - 13: MovImm dst: r0 imm: 1 + 13: MovImm dst: r0 imm: 2 + 14: JEqImm dst: r4 off: -1 imm: 0 + 15: MovImm dst: r0 imm: 1 return: - 14: Exit -=== RUN TestScratchZero/kernel ---- PASS: TestScratchZero (0.11s) - --- SKIP: TestScratchZero/C (0.06s) - --- SKIP: TestScratchZero/eBPF (0.00s) - --- PASS: TestScratchZero/kernel (0.00s) -=== RUN TestALUDivZero/C#01 -=== RUN TestLoadConstantA/eBPF#01 + 16: Exit +=== RUN TestALUMod/kernel#01 +=== RUN TestALUMod/C#02 +=== RUN TestALUShiftRight/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 28 - 3: JEqImm dst: r4 off: -1 imm: 28 - filter_block_2: - 4: Mov32Imm dst: r4 imm: 0 - 5: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 240 + 3: RSh32Imm dst: r4 imm: 4 + 4: JEqImm dst: r4 off: -1 imm: 15 filter_block_3: - 6: Mov32Imm dst: r4 imm: 1 - 7: JaImm dst: r0 off: -1 imm: 0 + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 result: - 8: MovImm dst: r0 imm: 2 - 9: JEqImm dst: r4 off: -1 imm: 0 - 10: MovImm dst: r0 imm: 1 + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 return: - 11: Exit -=== RUN TestLoadConstantA/kernel#01 -=== RUN TestALUShiftRight/eBPF#01 -=== RUN TestALUAdd/eBPF#01 -=== RUN TestLoadConstantA/C#02 -=== RUN TestALUMul/eBPF#01 -=== NAME TestALUShiftRight/eBPF#01 + 12: Exit +=== RUN TestALUShiftRight/kernel +=== RUN TestALUShiftRight/C#01 +=== RUN TestALUShiftLeft/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 240 - 3: Mov32Imm dst: r5 imm: 4 - 4: RSh32Reg dst: r4 src: r5 - 5: JEqImm dst: r4 off: -1 imm: 15 + 2: Mov32Imm dst: r4 imm: 1 + 3: Mov32Imm dst: r5 imm: 0 + 4: LSh32Reg dst: r4 src: r5 + 5: JEqImm dst: r4 off: -1 imm: 1 filter_block_4: 6: Mov32Imm dst: r4 imm: 0 7: JaImm dst: r0 off: -1 imm: 0 @@ -2128,31 +1804,31 @@ 12: MovImm dst: r0 imm: 1 return: 13: Exit -=== RUN TestJumpIfGreaterThan/eBPF#01 -=== RUN TestALUShiftRight/kernel#01 -=== NAME TestALUMul/eBPF#01 +=== RUN TestALUShiftLeft/kernel#01 +=== RUN TestALUShiftLeft/C#02 +=== RUN TestALUOr/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 0 - 3: Mov32Imm dst: r5 imm: 1 - 4: Mul32Reg dst: r4 src: r5 - 5: JEqImm dst: r4 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 1 + 3: Or32Imm dst: r4 imm: 0 + 4: JEqImm dst: r4 off: -1 imm: 1 + filter_block_3: + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 6: Mov32Imm dst: r4 imm: 0 - 7: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 8: Mov32Imm dst: r4 imm: 1 - 9: JaImm dst: r0 off: -1 imm: 0 + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 result: - 10: MovImm dst: r0 imm: 2 - 11: JEqImm dst: r4 off: -1 imm: 0 - 12: MovImm dst: r0 imm: 1 + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 return: - 13: Exit -=== RUN TestALUMul/kernel#01 -=== NAME TestJumpIfGreaterThan/eBPF#01 + 12: Exit +=== RUN TestALUOr/kernel +=== RUN TestALUOr/C#01 +=== RUN TestJumpIfLessOrEqual/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -2160,7 +1836,7 @@ 2: Mov32Imm dst: r4 imm: 24 3: JEqImm dst: r4 off: -1 imm: 0 filter_block_2: - 4: JGTImm dst: r4 off: -1 imm: 23 + 4: JLEImm dst: r4 off: -1 imm: 23 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: 6: Mov32Imm dst: r4 imm: 1 @@ -2177,41 +1853,17 @@ 14: MovImm dst: r0 imm: 1 return: 15: Exit -=== RUN TestJumpIfGreaterThan/kernel#01 -=== RUN TestALUShiftRight/C#02 -=== RUN TestJumpIfGreaterOrEqual/eBPF#01 -=== NAME TestALUAdd/eBPF#01 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 1 - 3: Mov32Imm dst: r5 imm: 0 - 4: Add32Reg dst: r4 src: r5 - 5: JEqImm dst: r4 off: -1 imm: 1 - filter_block_4: - 6: Mov32Imm dst: r4 imm: 0 - 7: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 8: Mov32Imm dst: r4 imm: 1 - 9: JaImm dst: r0 off: -1 imm: 0 - result: - 10: MovImm dst: r0 imm: 2 - 11: JEqImm dst: r4 off: -1 imm: 0 - 12: MovImm dst: r0 imm: 1 - return: - 13: Exit -=== RUN TestALUAdd/kernel#01 -=== RUN TestALUMul/C#02 -=== NAME TestJumpIfGreaterOrEqual/eBPF#01 +=== RUN TestJumpIfLessOrEqual/kernel#01 +=== RUN TestJumpIfLessOrEqual/C#02 +=== RUN TestJumpIfEqual/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 24 + 2: Mov32Imm dst: r4 imm: 23 3: JEqImm dst: r4 off: -1 imm: 0 filter_block_2: - 4: JGEImm dst: r4 off: -1 imm: 23 + 4: JEqImm dst: r4 off: -1 imm: 23 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: 6: Mov32Imm dst: r4 imm: 1 @@ -2228,40 +1880,9 @@ 14: MovImm dst: r0 imm: 1 return: 15: Exit -=== RUN TestLoadAbsolute/eBPF#01 -=== RUN TestJumpIfGreaterOrEqual/kernel#01 -=== RUN TestJumpIfGreaterThan/C#02 -=== RUN TestALUAdd/C#02 -=== RUN TestJumpIfGreaterOrEqual/C#02 -=== NAME TestLoadAbsolute/eBPF#01 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 3 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: LdXMemB dst: r4 src: r2 off: 2 imm: 0 - 6: JEqImm dst: r4 off: -1 imm: 6 - filter_block_2: - 7: Mov32Imm dst: r4 imm: 0 - 8: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 9: Mov32Imm dst: r4 imm: 1 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 11: MovImm dst: r4 imm: 0 - 12: JaImm dst: r0 off: -1 imm: 0 - result: - 13: MovImm dst: r0 imm: 2 - 14: JEqImm dst: r4 off: -1 imm: 0 - 15: MovImm dst: r0 imm: 1 - return: - 16: Exit -=== RUN TestLoadAbsolute/kernel#01 -=== RUN TestPartialZeroInitX/eBPF -=== RUN TestLoadConstantX/eBPF#01 -=== NAME TestPartialZeroInitX/eBPF +=== RUN TestJumpIfEqual/kernel#01 +=== RUN TestJumpIfEqual/C#02 +=== RUN TestALUDivZero/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -2269,14 +1890,12 @@ 2: MovReg dst: r6 src: r2 3: AddImm dst: r6 imm: 1 4: JGTReg dst: r6 off: -1 src: r3 - 5: Mov32Imm dst: r5 imm: 0 - 6: LdXMemB dst: r4 src: r2 off: 0 imm: 0 - 7: JNEImm dst: r4 off: -1 imm: 3 - filter_block_2: - 8: Mov32Reg dst: r5 src: r4 - filter_block_3: - 9: Mov32Reg dst: r4 src: r5 - 10: Mov32Reg dst: r4 src: r4 + 5: LdXMemB dst: r4 src: r2 off: 0 imm: 0 + 6: Mov32Reg dst: r5 src: r4 + 7: Mov32Imm dst: r4 imm: 10 + 8: JEqImm dst: r5 off: -1 imm: 0 + 9: Div32Reg dst: r4 src: r5 + 10: Mov32Imm dst: r4 imm: 1 11: JaImm dst: r0 off: -1 imm: 0 filter_nomatch: 12: MovImm dst: r4 imm: 0 @@ -2287,15 +1906,15 @@ 16: MovImm dst: r0 imm: 1 return: 17: Exit -=== RUN TestPartialZeroInitX/kernel -=== NAME TestLoadConstantX/eBPF#01 +=== RUN TestALUDivZero/kernel +=== RUN TestJumpIfBitsSet/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r5 imm: 28 - 3: Mov32Reg dst: r4 src: r5 - 4: JEqImm dst: r4 off: -1 imm: 28 + 2: Mov32Imm dst: r4 imm: 6 + 3: Mov32Imm dst: r5 imm: 4 + 4: JSetReg dst: r4 off: -1 src: r5 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -2308,125 +1927,106 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestLoadConstantX/kernel#01 -=== RUN TestLoadConstantX/C#02 -=== RUN TestRetConstant/eBPF#01 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 0 - 3: JaImm dst: r0 off: -1 imm: 0 - result: - 4: MovImm dst: r0 imm: 2 - 5: JEqImm dst: r4 off: -1 imm: 0 - 6: MovImm dst: r0 imm: 1 - return: - 7: Exit -=== RUN TestALUOr/eBPF#01 -=== RUN TestMemShift/eBPF#01 -=== RUN TestRetConstant/kernel#01 -=== RUN TestLoadIndirect/constant_valid/eBPF#01 -=== NAME TestALUOr/eBPF#01 +=== RUN TestJumpIfBitsSet/kernel#02 +=== RUN TestJumpIfBitsSet/C#03 +=== RUN TestJumpIfGreaterThan/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 1 - 3: Mov32Imm dst: r5 imm: 0 - 4: Or32Reg dst: r4 src: r5 - 5: JEqImm dst: r4 off: -1 imm: 1 - filter_block_4: - 6: Mov32Imm dst: r4 imm: 0 + 2: Mov32Imm dst: r4 imm: 24 + 3: JEqImm dst: r4 off: -1 imm: 0 + filter_block_2: + 4: JGTImm dst: r4 off: -1 imm: 23 + 5: JaImm dst: r0 off: -1 imm: 0 + filter_block_3: + 6: Mov32Imm dst: r4 imm: 1 7: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 8: Mov32Imm dst: r4 imm: 1 + filter_block_4: + 8: Mov32Imm dst: r4 imm: 0 9: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 10: Mov32Imm dst: r4 imm: 1 + 11: JaImm dst: r0 off: -1 imm: 0 result: - 10: MovImm dst: r0 imm: 2 - 11: JEqImm dst: r4 off: -1 imm: 0 - 12: MovImm dst: r0 imm: 1 + 12: MovImm dst: r0 imm: 2 + 13: JEqImm dst: r4 off: -1 imm: 0 + 14: MovImm dst: r0 imm: 1 return: - 13: Exit -=== NAME TestMemShift/eBPF#01 + 15: Exit +=== RUN TestJump0/eBPF#01 +=== RUN TestJumpIfGreaterThan/kernel#01 +=== RUN TestJumpIfGreaterThan/C#02 +=== RUN TestALUDivZero/C#01 +=== NAME TestJump0/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 3 + 3: AddImm dst: r6 imm: 1 4: JGTReg dst: r6 off: -1 src: r3 - 5: Mov32Imm dst: r4 imm: 0 - 6: LdXMemB dst: r5 src: r2 off: 2 imm: 0 - 7: And32Imm dst: r5 imm: 15 - 8: LSh32Imm dst: r5 imm: 2 - 9: JEqReg dst: r4 off: -1 src: r5 + 5: Mov32Imm dst: r5 imm: 0 + 6: LdXMemB dst: r4 src: r2 off: 0 imm: 0 + 7: JaImm dst: r0 off: -1 imm: 0 filter_block_3: - 10: Mov32Imm dst: r4 imm: 0 - 11: JaImm dst: r0 off: -1 imm: 0 + 8: JEqReg dst: r4 off: -1 src: r5 filter_block_4: - 12: Mov32Imm dst: r4 imm: 1 - 13: JaImm dst: r0 off: -1 imm: 0 + 9: Mov32Reg dst: r4 src: r4 + 10: JaImm dst: r0 off: -1 imm: 0 filter_nomatch: - 14: MovImm dst: r4 imm: 0 - 15: JaImm dst: r0 off: -1 imm: 0 + 11: MovImm dst: r4 imm: 0 + 12: JaImm dst: r0 off: -1 imm: 0 result: - 16: MovImm dst: r0 imm: 2 - 17: JEqImm dst: r4 off: -1 imm: 0 - 18: MovImm dst: r0 imm: 1 + 13: MovImm dst: r0 imm: 2 + 14: JEqImm dst: r4 off: -1 imm: 0 + 15: MovImm dst: r0 imm: 1 return: - 19: Exit -=== RUN TestALUOr/kernel#01 -=== RUN TestMemShift/kernel#01 -=== NAME TestLoadIndirect/constant_valid/eBPF#01 + 16: Exit +=== RUN TestJump0/kernel#01 +--- PASS: TestJump0 (0.83s) + --- SKIP: TestJump0/C (0.37s) + --- SKIP: TestJump0/eBPF (0.00s) + --- PASS: TestJump0/kernel (0.06s) + --- SKIP: TestJump0/C#01 (0.31s) + --- SKIP: TestJump0/eBPF#01 (0.02s) + --- PASS: TestJump0/kernel#01 (0.00s) +=== CONT TestALUSub +=== RUN TestALUSub/C +=== RUN TestJumpIfNotEqual/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r5 imm: -2147483644 - 3: MovReg dst: r7 src: r5 - 4: LShImm dst: r7 imm: 32 - 5: ArShImm dst: r7 imm: 32 - 6: AddImm dst: r7 imm: 2147483647 - 7: JGEImm dst: r7 off: -1 imm: 65535 - 8: AddReg dst: r7 src: r2 - 9: MovReg dst: r6 src: r7 - 10: AddImm dst: r6 imm: 1 - 11: JGTReg dst: r6 off: -1 src: r3 - 12: LdXMemB dst: r4 src: r7 off: 0 imm: 0 - 13: JEqImm dst: r4 off: -1 imm: 6 + 2: Mov32Imm dst: r4 imm: 23 + 3: JEqImm dst: r4 off: -1 imm: 0 + filter_block_2: + 4: JNEImm dst: r4 off: -1 imm: 23 + 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: - 14: Mov32Imm dst: r4 imm: 0 - 15: JaImm dst: r0 off: -1 imm: 0 + 6: Mov32Imm dst: r4 imm: 1 + 7: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 16: Mov32Imm dst: r4 imm: 1 - 17: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 18: MovImm dst: r4 imm: 0 - 19: JaImm dst: r0 off: -1 imm: 0 + 8: Mov32Imm dst: r4 imm: 0 + 9: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 10: Mov32Imm dst: r4 imm: 1 + 11: JaImm dst: r0 off: -1 imm: 0 result: - 20: MovImm dst: r0 imm: 2 - 21: JEqImm dst: r4 off: -1 imm: 0 - 22: MovImm dst: r0 imm: 1 + 12: MovImm dst: r0 imm: 2 + 13: JEqImm dst: r4 off: -1 imm: 0 + 14: MovImm dst: r0 imm: 1 return: - 23: Exit -=== RUN TestLoadIndirect/constant_valid/kernel#01 -=== RUN TestALUOr/C#02 ---- PASS: TestMemShift (0.13s) - --- SKIP: TestMemShift/C (0.06s) - --- SKIP: TestMemShift/eBPF (0.00s) - --- PASS: TestMemShift/kernel (0.00s) - --- SKIP: TestMemShift/C#01 (0.07s) - --- SKIP: TestMemShift/eBPF#01 (0.00s) - --- PASS: TestMemShift/kernel#01 (0.00s) -=== RUN TestALUSub/eBPF#01 + 15: Exit +=== RUN TestJumpIfNotEqual/kernel#01 +=== RUN TestALUXor/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 1 3: Mov32Imm dst: r5 imm: 1 - 4: Sub32Reg dst: r4 src: r5 + 4: Xor32Reg dst: r4 src: r5 5: JEqImm dst: r4 off: -1 imm: 0 filter_block_4: 6: Mov32Imm dst: r4 imm: 0 @@ -2440,43 +2040,16 @@ 12: MovImm dst: r0 imm: 1 return: 13: Exit -=== RUN TestALUSub/kernel#01 -=== RUN TestALUSub/C#02 -=== RUN TestALUMod/eBPF#01 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 16 - 3: Mov32Imm dst: r5 imm: 4 - 4: JEqImm dst: r5 off: -1 imm: 0 - 5: Mod32Reg dst: r4 src: r5 - 6: JEqImm dst: r4 off: -1 imm: 0 - filter_block_4: - 7: Mov32Imm dst: r4 imm: 0 - 8: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 9: Mov32Imm dst: r4 imm: 1 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 11: MovImm dst: r4 imm: 0 - 12: JaImm dst: r0 off: -1 imm: 0 - result: - 13: MovImm dst: r0 imm: 2 - 14: JEqImm dst: r4 off: -1 imm: 0 - 15: MovImm dst: r0 imm: 1 - return: - 16: Exit -=== RUN TestALUMod/kernel#01 -=== RUN TestALUMod/C#02 -=== RUN TestALUXor/eBPF#01 +=== RUN TestALUXor/kernel#01 +=== RUN TestALUXor/C#02 +=== RUN TestALUAnd/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 1 - 3: Mov32Imm dst: r5 imm: 1 - 4: Xor32Reg dst: r4 src: r5 + 3: Mov32Imm dst: r5 imm: 0 + 4: And32Reg dst: r4 src: r5 5: JEqImm dst: r4 off: -1 imm: 0 filter_block_4: 6: Mov32Imm dst: r4 imm: 0 @@ -2490,51 +2063,56 @@ 12: MovImm dst: r0 imm: 1 return: 13: Exit -=== RUN TestALUXor/kernel#01 -=== RUN TestALUXor/C#02 -=== RUN TestScratchX/eBPF#01 +=== RUN TestALUAnd/kernel#01 +=== RUN TestJumpIfGreaterOrEqual/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r5 imm: 0 - 3: StXMemW dst: rfp src: r5 off: -32 imm: 0 - 4: Mov32Imm dst: r5 imm: 0 - 5: Mov32Imm dst: r5 imm: -1 - 6: StXMemW dst: rfp src: r5 off: -28 imm: 0 - 7: Mov32Imm dst: r5 imm: -1 - 8: StXMemW dst: rfp src: r5 off: -36 imm: 0 - 9: LdXMemW dst: r5 src: rfp off: -32 imm: 0 - 10: Mov32Reg dst: r4 src: r5 - 11: JEqImm dst: r4 off: -1 imm: 0 - filter_block_10: - 12: Mov32Imm dst: r4 imm: 0 - 13: JaImm dst: r0 off: -1 imm: 0 - filter_block_11: - 14: Mov32Imm dst: r4 imm: 1 - 15: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 24 + 3: Mov32Imm dst: r5 imm: 23 + 4: JGEReg dst: r4 off: -1 src: r5 + filter_block_3: + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 result: - 16: MovImm dst: r0 imm: 2 - 17: JEqImm dst: r4 off: -1 imm: 0 - 18: MovImm dst: r0 imm: 1 + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 return: - 19: Exit -=== RUN TestScratchX/kernel#01 ---- PASS: TestScratchX (0.15s) - --- SKIP: TestScratchX/C (0.10s) - --- SKIP: TestScratchX/eBPF (0.00s) - --- PASS: TestScratchX/kernel (0.00s) - --- SKIP: TestScratchX/C#01 (0.04s) - --- SKIP: TestScratchX/eBPF#01 (0.00s) - --- PASS: TestScratchX/kernel#01 (0.00s) ---- PASS: TestZeroInitX (0.16s) - --- SKIP: TestZeroInitX/C (0.05s) - --- SKIP: TestZeroInitX/eBPF (0.00s) - --- PASS: TestZeroInitX/kernel (0.05s) -=== RUN TestJumpIfBitsNotSet/C#01 -=== RUN TestJumpIfLessThan/C#01 -=== RUN TestJump0/C#01 -=== RUN TestJumpIfBitsSet/eBPF#01 + 12: Exit +=== RUN TestJumpIfGreaterOrEqual/kernel#02 +=== RUN TestALUAnd/C#02 +=== RUN TestJumpIfGreaterOrEqual/C#03 +=== RUN TestJumpIfNotEqual/C#02 +=== RUN TestALUMod/eBPF#02 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 17 + 3: Mod32Imm dst: r4 imm: 4 + 4: JEqImm dst: r4 off: -1 imm: 1 + filter_block_3: + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 + result: + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 + return: + 12: Exit +=== RUN TestALUMod/kernel#02 +=== RUN TestALUMod/C#03 +=== RUN TestJumpIfBitsNotSet/eBPF#01 +=== RUN TestJumpIfLessThan/eBPF#02 +=== NAME TestJumpIfBitsNotSet/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -2542,8 +2120,8 @@ 2: Mov32Imm dst: r4 imm: 6 3: JEqImm dst: r4 off: -1 imm: 0 filter_block_2: - 4: JSetImm dst: r4 off: -1 imm: 4 - 5: JaImm dst: r0 off: -1 imm: 0 + 4: JSetImm dst: r4 off: -1 imm: 4 + 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: 6: Mov32Imm dst: r4 imm: 1 7: JaImm dst: r0 off: -1 imm: 0 @@ -2559,73 +2137,107 @@ 14: MovImm dst: r0 imm: 1 return: 15: Exit -=== RUN TestJumpIfBitsSet/kernel#01 ---- PASS: TestNegateA (0.16s) - --- SKIP: TestNegateA/C (0.10s) - --- SKIP: TestNegateA/eBPF (0.00s) - --- PASS: TestNegateA/kernel (0.05s) -=== RUN TestJumpIfBitsSet/C#02 -=== RUN TestScratchA/eBPF#01 -=== RUN TestLoadAbsoluteBigOffset/eBPF#01 +=== RUN TestJumpIfBitsNotSet/kernel#01 +=== NAME TestJumpIfLessThan/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 0 - 3: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 24 + 3: Mov32Imm dst: r5 imm: 23 + 4: JLTReg dst: r4 off: -1 src: r5 + filter_block_3: + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 result: - 4: MovImm dst: r0 imm: 2 - 5: JEqImm dst: r4 off: -1 imm: 0 - 6: MovImm dst: r0 imm: 1 + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 return: - 7: Exit -=== NAME TestScratchA/eBPF#01 + 12: Exit +=== RUN TestJumpIfLessThan/kernel#02 +=== RUN TestScratchX/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 0 - 3: StXMemW dst: rfp src: r4 off: -32 imm: 0 - 4: Mov32Imm dst: r4 imm: 0 - 5: Mov32Imm dst: r4 imm: -1 - 6: StXMemW dst: rfp src: r4 off: -28 imm: 0 - 7: Mov32Imm dst: r4 imm: -1 - 8: StXMemW dst: rfp src: r4 off: -36 imm: 0 - 9: LdXMemW dst: r4 src: rfp off: -32 imm: 0 - 10: JEqImm dst: r4 off: -1 imm: 0 - filter_block_9: - 11: Mov32Imm dst: r4 imm: 0 - 12: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r5 imm: 0 + 3: StXMemW dst: rfp src: r5 off: -32 imm: 0 + 4: Mov32Imm dst: r5 imm: 0 + 5: Mov32Imm dst: r5 imm: -1 + 6: StXMemW dst: rfp src: r5 off: -28 imm: 0 + 7: Mov32Imm dst: r5 imm: -1 + 8: StXMemW dst: rfp src: r5 off: -36 imm: 0 + 9: LdXMemW dst: r5 src: rfp off: -32 imm: 0 + 10: Mov32Reg dst: r4 src: r5 + 11: JEqImm dst: r4 off: -1 imm: 0 filter_block_10: - 13: Mov32Imm dst: r4 imm: 1 - 14: JaImm dst: r0 off: -1 imm: 0 + 12: Mov32Imm dst: r4 imm: 0 + 13: JaImm dst: r0 off: -1 imm: 0 + filter_block_11: + 14: Mov32Imm dst: r4 imm: 1 + 15: JaImm dst: r0 off: -1 imm: 0 result: - 15: MovImm dst: r0 imm: 2 - 16: JEqImm dst: r4 off: -1 imm: 0 - 17: MovImm dst: r0 imm: 1 + 16: MovImm dst: r0 imm: 2 + 17: JEqImm dst: r4 off: -1 imm: 0 + 18: MovImm dst: r0 imm: 1 return: - 18: Exit -=== RUN TestLoadAbsoluteBigOffset/kernel#01 -=== RUN TestScratchA/kernel#01 -=== RUN TestALUAnd/eBPF#01 -=== RUN TestALUDiv/eBPF#01 + 19: Exit +=== RUN TestScratchX/kernel#01 +--- PASS: TestScratchX (0.67s) + --- SKIP: TestScratchX/C (0.22s) + --- SKIP: TestScratchX/eBPF (0.00s) + --- PASS: TestScratchX/kernel (0.00s) + --- SKIP: TestScratchX/C#01 (0.44s) + --- SKIP: TestScratchX/eBPF#01 (0.00s) + --- PASS: TestScratchX/kernel#01 (0.00s) +=== CONT TestALUAdd +=== RUN TestALUAdd/C +=== RUN TestALUShiftRight/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 2 - 3: Mov32Imm dst: r5 imm: 2 - 4: JEqImm dst: r5 off: -1 imm: 0 - 5: Div32Reg dst: r4 src: r5 - 6: JEqImm dst: r4 off: -1 imm: 1 + 2: Mov32Imm dst: r4 imm: 240 + 3: Mov32Imm dst: r5 imm: 4 + 4: RSh32Reg dst: r4 src: r5 + 5: JEqImm dst: r4 off: -1 imm: 15 filter_block_4: - 7: Mov32Imm dst: r4 imm: 0 + 6: Mov32Imm dst: r4 imm: 0 + 7: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 8: Mov32Imm dst: r4 imm: 1 + 9: JaImm dst: r0 off: -1 imm: 0 + result: + 10: MovImm dst: r0 imm: 2 + 11: JEqImm dst: r4 off: -1 imm: 0 + 12: MovImm dst: r0 imm: 1 + return: + 13: Exit +=== RUN TestALUShiftRight/kernel#01 +=== RUN TestALUShiftRight/C#02 +=== RUN TestJumpIfBitsSet/eBPF#03 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 6 + 3: Mov32Imm dst: r5 imm: 4 + 4: JEqImm dst: r4 off: -1 imm: 0 + filter_block_3: + 5: JSetReg dst: r4 off: -1 src: r5 + 6: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 7: Mov32Imm dst: r4 imm: 1 8: JaImm dst: r0 off: -1 imm: 0 filter_block_5: - 9: Mov32Imm dst: r4 imm: 1 + 9: Mov32Imm dst: r4 imm: 0 10: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 11: MovImm dst: r4 imm: 0 + filter_block_6: + 11: Mov32Imm dst: r4 imm: 1 12: JaImm dst: r0 off: -1 imm: 0 result: 13: MovImm dst: r0 imm: 2 @@ -2633,76 +2245,62 @@ 15: MovImm dst: r0 imm: 1 return: 16: Exit -=== RUN TestALUDiv/kernel#01 ---- PASS: TestScratchA (0.16s) - --- SKIP: TestScratchA/C (0.09s) - --- SKIP: TestScratchA/eBPF (0.00s) - --- PASS: TestScratchA/kernel (0.00s) - --- SKIP: TestScratchA/C#01 (0.06s) - --- SKIP: TestScratchA/eBPF#01 (0.00s) - --- PASS: TestScratchA/kernel#01 (0.00s) -=== NAME TestALUAnd/eBPF#01 +=== RUN TestJumpIfBitsSet/kernel#03 +=== RUN TestJumpIfBitsSet/C#04 +=== RUN TestALUMul/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 1 - 3: Mov32Imm dst: r5 imm: 0 - 4: And32Reg dst: r4 src: r5 - 5: JEqImm dst: r4 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 0 + 3: Mul32Imm dst: r4 imm: 1 + 4: JEqImm dst: r4 off: -1 imm: 0 + filter_block_3: + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 6: Mov32Imm dst: r4 imm: 0 - 7: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 8: Mov32Imm dst: r4 imm: 1 - 9: JaImm dst: r0 off: -1 imm: 0 + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 result: - 10: MovImm dst: r0 imm: 2 - 11: JEqImm dst: r4 off: -1 imm: 0 - 12: MovImm dst: r0 imm: 1 + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 return: - 13: Exit -=== RUN TestALUAnd/kernel#01 -=== RUN TestJumpIfLessOrEqual/C#01 -=== RUN TestALUDiv/C#02 -=== RUN TestALUAnd/C#02 -=== RUN TestJumpIfEqual/eBPF#01 -=== RUN TestJumpIfNotEqual/C#01 -=== NAME TestJumpIfEqual/eBPF#01 + 12: Exit +=== RUN TestALUMul/kernel +=== RUN TestALUMul/C#01 +=== RUN TestJumpIfBitsNotSet/C#02 +=== RUN TestJumpIfLessThan/C#03 +=== RUN TestJumpIfGreaterThan/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: JEqImm dst: r4 off: -1 imm: 0 - filter_block_2: - 4: JEqImm dst: r4 off: -1 imm: 23 - 5: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 24 + 3: Mov32Imm dst: r5 imm: 23 + 4: JGTReg dst: r4 off: -1 src: r5 filter_block_3: - 6: Mov32Imm dst: r4 imm: 1 - 7: JaImm dst: r0 off: -1 imm: 0 + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 8: Mov32Imm dst: r4 imm: 0 - 9: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 10: Mov32Imm dst: r4 imm: 1 - 11: JaImm dst: r0 off: -1 imm: 0 + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 result: - 12: MovImm dst: r0 imm: 2 - 13: JEqImm dst: r4 off: -1 imm: 0 - 14: MovImm dst: r0 imm: 1 + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 return: - 15: Exit -=== RUN TestALUShiftLeft/eBPF#01 -=== RUN TestJumpIfEqual/kernel#01 -=== NAME TestALUShiftLeft/eBPF#01 + 12: Exit +=== RUN TestJumpIfGreaterThan/kernel#02 +=== RUN TestJumpIfGreaterThan/C#03 +=== RUN TestALUOr/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 1 3: Mov32Imm dst: r5 imm: 0 - 4: LSh32Reg dst: r4 src: r5 + 4: Or32Reg dst: r4 src: r5 5: JEqImm dst: r4 off: -1 imm: 1 filter_block_4: 6: Mov32Imm dst: r4 imm: 0 @@ -2716,53 +2314,38 @@ 12: MovImm dst: r0 imm: 1 return: 13: Exit -=== RUN TestALUShiftLeft/kernel#01 -=== RUN TestJumpIfEqual/C#02 -=== RUN TestALUShiftLeft/C#02 -=== RUN TestALUDivZero/eBPF#01 +=== RUN TestALUOr/kernel#01 +=== RUN TestALUOr/C#02 +=== RUN TestJumpIfEqual/eBPF#02 +=== RUN TestALUDiv/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 1 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: LdXMemB dst: r4 src: r2 off: 0 imm: 0 - 6: Mov32Reg dst: r5 src: r4 - 7: Mov32Imm dst: r4 imm: 10 - 8: JEqImm dst: r5 off: -1 imm: 0 - 9: Div32Reg dst: r4 src: r5 - 10: Mov32Imm dst: r4 imm: 1 - 11: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 12: MovImm dst: r4 imm: 0 - 13: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 2 + 3: Div32Imm dst: r4 imm: 2 + 4: JEqImm dst: r4 off: -1 imm: 1 + filter_block_3: + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 result: - 14: MovImm dst: r0 imm: 2 - 15: JEqImm dst: r4 off: -1 imm: 0 - 16: MovImm dst: r0 imm: 1 + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 return: - 17: Exit -=== RUN TestALUDivZero/kernel#01 ---- PASS: TestALUDivZero (0.17s) - --- SKIP: TestALUDivZero/C (0.06s) - --- SKIP: TestALUDivZero/eBPF (0.00s) - --- PASS: TestALUDivZero/kernel (0.05s) - --- SKIP: TestALUDivZero/C#01 (0.04s) - --- SKIP: TestALUDivZero/eBPF#01 (0.00s) - --- PASS: TestALUDivZero/kernel#01 (0.00s) -=== RUN TestLoadConstantX/eBPF#02 -=== RUN TestJumpIfGreaterThan/eBPF#02 -=== RUN TestALUMul/eBPF#02 -=== RUN TestALUAdd/eBPF#02 -=== NAME TestJumpIfGreaterThan/eBPF#02 + 12: Exit +=== RUN TestALUDiv/kernel +=== NAME TestJumpIfEqual/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 24 + 2: Mov32Imm dst: r4 imm: 23 3: Mov32Imm dst: r5 imm: 23 - 4: JGTReg dst: r4 off: -1 src: r5 + 4: JEqReg dst: r4 off: -1 src: r5 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -2775,14 +2358,31 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== NAME TestALUMul/eBPF#02 +=== RUN TestJumpIfEqual/kernel#02 +=== RUN TestALUDiv/C#01 +=== RUN TestJumpIfEqual/C#03 +=== RUN TestRetConstant/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 4 - 3: Mul32Imm dst: r4 imm: 13 - 4: JEqImm dst: r4 off: -1 imm: 52 + 2: Mov32Imm dst: r4 imm: 0 + 3: JaImm dst: r0 off: -1 imm: 0 + result: + 4: MovImm dst: r0 imm: 2 + 5: JEqImm dst: r4 off: -1 imm: 0 + 6: MovImm dst: r0 imm: 1 + return: + 7: Exit +=== RUN TestRetConstant/kernel#01 +=== RUN TestJumpIfLessOrEqual/eBPF#02 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 24 + 3: Mov32Imm dst: r5 imm: 23 + 4: JLEReg dst: r4 off: -1 src: r5 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -2795,16 +2395,24 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestJumpIfGreaterThan/kernel#02 -=== RUN TestALUMul/kernel#02 -=== NAME TestALUAdd/eBPF#02 +=== RUN TestJumpIfLessOrEqual/kernel#02 +--- PASS: TestRetConstant (1.24s) + --- SKIP: TestRetConstant/C (0.65s) + --- SKIP: TestRetConstant/eBPF (0.00s) + --- PASS: TestRetConstant/kernel (0.00s) + --- SKIP: TestRetConstant/C#01 (0.52s) + --- SKIP: TestRetConstant/eBPF#01 (0.00s) + --- PASS: TestRetConstant/kernel#01 (0.05s) +=== CONT TestLoadExtLen +=== RUN TestLoadExtLen/C +=== RUN TestALUShiftLeft/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 4 - 3: Add32Imm dst: r4 imm: 13 - 4: JEqImm dst: r4 off: -1 imm: 17 + 2: Mov32Imm dst: r4 imm: 1 + 3: LSh32Imm dst: r4 imm: 4 + 4: JEqImm dst: r4 off: -1 imm: 16 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -2817,15 +2425,16 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestALUAdd/kernel#02 -=== NAME TestLoadConstantX/eBPF#02 +=== RUN TestALUShiftLeft/kernel#02 +=== RUN TestALUShiftLeft/C#03 +=== RUN TestALUAnd/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r5 imm: 0 - 3: Mov32Reg dst: r4 src: r5 - 4: JEqImm dst: r4 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 240 + 3: And32Imm dst: r4 imm: 128 + 4: JEqImm dst: r4 off: -1 imm: 128 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -2838,28 +2447,15 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestLoadConstantX/kernel#02 -=== RUN TestLoadConstantA/eBPF#02 -=== RUN TestJumpIfGreaterThan/C#03 -=== RUN TestALUMul/C#03 -=== RUN TestALUShiftRight/eBPF#02 ---- PASS: TestLoadConstantX (0.18s) - --- SKIP: TestLoadConstantX/C (0.06s) - --- SKIP: TestLoadConstantX/eBPF (0.00s) - --- PASS: TestLoadConstantX/kernel (0.00s) - --- SKIP: TestLoadConstantX/C#01 (0.06s) - --- SKIP: TestLoadConstantX/eBPF#01 (0.00s) - --- PASS: TestLoadConstantX/kernel#01 (0.00s) - --- SKIP: TestLoadConstantX/C#02 (0.05s) - --- SKIP: TestLoadConstantX/eBPF#02 (0.00s) - --- PASS: TestLoadConstantX/kernel#02 (0.00s) -=== NAME TestLoadConstantA/eBPF#02 +=== RUN TestALUAnd/kernel#02 +=== RUN TestALUAnd/C#03 +=== RUN TestJumpIfBitsSet/eBPF#04 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 0 - 3: JEqImm dst: r4 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 6 + 3: JSetImm dst: r4 off: -1 imm: 2 filter_block_2: 4: Mov32Imm dst: r4 imm: 0 5: JaImm dst: r0 off: -1 imm: 0 @@ -2872,73 +2468,101 @@ 10: MovImm dst: r0 imm: 1 return: 11: Exit -=== RUN TestLoadConstantA/kernel#02 -=== RUN TestALUAdd/C#03 -=== NAME TestALUShiftRight/eBPF#02 +=== RUN TestJumpIfBitsSet/kernel#04 +=== RUN TestJumpIfBitsSet/C#05 +=== RUN TestJumpIfLessOrEqual/C#03 +=== RUN TestALUDivZero/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 240 - 3: RSh32Imm dst: r4 imm: 8 + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 1 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: LdXMemB dst: r4 src: r2 off: 0 imm: 0 + 6: Mov32Reg dst: r5 src: r4 + 7: Mov32Imm dst: r4 imm: 10 + 8: JEqImm dst: r5 off: -1 imm: 0 + 9: Div32Reg dst: r4 src: r5 + 10: Mov32Imm dst: r4 imm: 1 + 11: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 12: MovImm dst: r4 imm: 0 + 13: JaImm dst: r0 off: -1 imm: 0 + result: + 14: MovImm dst: r0 imm: 2 + 15: JEqImm dst: r4 off: -1 imm: 0 + 16: MovImm dst: r0 imm: 1 + return: + 17: Exit +=== RUN TestALUDivZero/kernel#01 +--- PASS: TestALUDivZero (0.91s) + --- SKIP: TestALUDivZero/C (0.45s) + --- SKIP: TestALUDivZero/eBPF (0.00s) + --- PASS: TestALUDivZero/kernel (0.05s) + --- SKIP: TestALUDivZero/C#01 (0.41s) + --- SKIP: TestALUDivZero/eBPF#01 (0.00s) + --- PASS: TestALUDivZero/kernel#01 (0.00s) +=== CONT TestMemShift +=== RUN TestMemShift/C +=== RUN TestJumpIfGreaterOrEqual/eBPF#03 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 24 + 3: Mov32Imm dst: r5 imm: 23 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 + 5: JGEReg dst: r4 off: -1 src: r5 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: 7: Mov32Imm dst: r4 imm: 1 8: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 9: Mov32Imm dst: r4 imm: 0 + 10: JaImm dst: r0 off: -1 imm: 0 + filter_block_6: + 11: Mov32Imm dst: r4 imm: 1 + 12: JaImm dst: r0 off: -1 imm: 0 result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 + 13: MovImm dst: r0 imm: 2 + 14: JEqImm dst: r4 off: -1 imm: 0 + 15: MovImm dst: r0 imm: 1 return: - 12: Exit -=== RUN TestALUShiftRight/kernel#02 ---- PASS: TestLoadConstantA (0.18s) - --- SKIP: TestLoadConstantA/C (0.06s) - --- SKIP: TestLoadConstantA/eBPF (0.00s) - --- PASS: TestLoadConstantA/kernel (0.00s) - --- SKIP: TestLoadConstantA/C#01 (0.05s) - --- SKIP: TestLoadConstantA/eBPF#01 (0.00s) - --- PASS: TestLoadConstantA/kernel#01 (0.00s) - --- SKIP: TestLoadConstantA/C#02 (0.05s) - --- SKIP: TestLoadConstantA/eBPF#02 (0.00s) - --- PASS: TestLoadConstantA/kernel#02 (0.00s) -=== RUN TestALUShiftRight/C#03 -=== RUN TestALUOr/eBPF#02 -=== RUN TestPartialZeroInitX/C#01 -=== NAME TestALUOr/eBPF#02 + 16: Exit +=== RUN TestJumpIfGreaterOrEqual/kernel#03 +=== RUN TestJumpIfGreaterOrEqual/C#04 +=== RUN TestJumpIfBitsNotSet/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 240 - 3: Or32Imm dst: r4 imm: 15 - 4: JEqImm dst: r4 off: -1 imm: 255 + 2: Mov32Imm dst: r4 imm: 6 + 3: Mov32Imm dst: r5 imm: 4 + 4: JSetReg dst: r4 off: -1 src: r5 + 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 + 6: Mov32Imm dst: r4 imm: 0 + 7: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 + 8: Mov32Imm dst: r4 imm: 1 + 9: JaImm dst: r0 off: -1 imm: 0 result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 + 10: MovImm dst: r0 imm: 2 + 11: JEqImm dst: r4 off: -1 imm: 0 + 12: MovImm dst: r0 imm: 1 return: - 12: Exit -=== RUN TestALUOr/kernel#02 -=== RUN TestJumpIfGreaterOrEqual/eBPF#02 -=== RUN TestALUOr/C#03 -=== NAME TestJumpIfGreaterOrEqual/eBPF#02 + 13: Exit +=== RUN TestJumpIfBitsNotSet/kernel#02 +=== RUN TestALUShiftRight/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 24 - 3: Mov32Imm dst: r5 imm: 23 - 4: JGEReg dst: r4 off: -1 src: r5 + 2: Mov32Imm dst: r4 imm: 240 + 3: RSh32Imm dst: r4 imm: 8 + 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -2951,26 +2575,16 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestJumpIfGreaterOrEqual/kernel#02 -=== RUN TestJumpIfGreaterOrEqual/C#03 -=== RUN TestLoadAbsolute/C#02 ---- PASS: TestRetConstant (0.18s) - --- SKIP: TestRetConstant/C (0.06s) - --- SKIP: TestRetConstant/eBPF (0.00s) - --- PASS: TestRetConstant/kernel (0.00s) - --- SKIP: TestRetConstant/C#01 (0.06s) - --- SKIP: TestRetConstant/eBPF#01 (0.00s) - --- PASS: TestRetConstant/kernel#01 (0.05s) -=== RUN TestALUSub/eBPF#02 -=== RUN TestLoadIndirect/constant_valid/C#02 -=== NAME TestALUSub/eBPF#02 +=== RUN TestALUShiftRight/kernel#02 +=== RUN TestALUShiftRight/C#03 +=== RUN TestALUSub/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 13 - 3: Sub32Imm dst: r4 imm: 9 - 4: JEqImm dst: r4 off: -1 imm: 4 + 2: Mov32Imm dst: r4 imm: 1 + 3: Sub32Imm dst: r4 imm: 1 + 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -2983,15 +2597,15 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestALUSub/kernel#02 -=== RUN TestALUSub/C#03 -=== RUN TestALUMod/eBPF#02 +=== RUN TestALUSub/kernel +=== RUN TestALUSub/C#01 +=== RUN TestALUAdd/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 17 - 3: Mod32Imm dst: r4 imm: 4 + 2: Mov32Imm dst: r4 imm: 1 + 3: Add32Imm dst: r4 imm: 0 4: JEqImm dst: r4 off: -1 imm: 1 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 @@ -3005,38 +2619,10 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestALUMod/kernel#02 -=== RUN TestALUMod/C#03 -=== RUN TestJumpIfBitsNotSet/eBPF#01 +=== RUN TestALUAdd/kernel +=== RUN TestALUAdd/C#01 +=== RUN TestJumpIfBitsNotSet/C#03 === RUN TestALUXor/eBPF#02 -=== NAME TestJumpIfBitsNotSet/eBPF#01 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: JEqImm dst: r4 off: -1 imm: 0 - filter_block_2: - 4: JSetImm dst: r4 off: -1 imm: 4 - 5: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 6: Mov32Imm dst: r4 imm: 1 - 7: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 8: Mov32Imm dst: r4 imm: 0 - 9: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 10: Mov32Imm dst: r4 imm: 1 - 11: JaImm dst: r0 off: -1 imm: 0 - result: - 12: MovImm dst: r0 imm: 2 - 13: JEqImm dst: r4 off: -1 imm: 0 - 14: MovImm dst: r0 imm: 1 - return: - 15: Exit -=== RUN TestJumpIfLessThan/eBPF#01 -=== RUN TestJumpIfBitsNotSet/kernel#01 -=== NAME TestALUXor/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -3057,97 +2643,22 @@ return: 12: Exit === RUN TestALUXor/kernel#02 -=== NAME TestJumpIfLessThan/eBPF#01 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 24 - 3: JEqImm dst: r4 off: -1 imm: 0 - filter_block_2: - 4: JLTImm dst: r4 off: -1 imm: 23 - 5: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 6: Mov32Imm dst: r4 imm: 1 - 7: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 8: Mov32Imm dst: r4 imm: 0 - 9: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 10: Mov32Imm dst: r4 imm: 1 - 11: JaImm dst: r0 off: -1 imm: 0 - result: - 12: MovImm dst: r0 imm: 2 - 13: JEqImm dst: r4 off: -1 imm: 0 - 14: MovImm dst: r0 imm: 1 - return: - 15: Exit -=== RUN TestJumpIfLessThan/kernel#01 === RUN TestALUXor/C#03 -=== RUN TestALUAnd/eBPF#02 -=== RUN TestJump0/eBPF#01 -=== RUN TestJumpIfLessOrEqual/eBPF#01 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 24 - 3: JEqImm dst: r4 off: -1 imm: 0 - filter_block_2: - 4: JLEImm dst: r4 off: -1 imm: 23 - 5: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 6: Mov32Imm dst: r4 imm: 1 - 7: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 8: Mov32Imm dst: r4 imm: 0 - 9: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 10: Mov32Imm dst: r4 imm: 1 - 11: JaImm dst: r0 off: -1 imm: 0 - result: - 12: MovImm dst: r0 imm: 2 - 13: JEqImm dst: r4 off: -1 imm: 0 - 14: MovImm dst: r0 imm: 1 - return: - 15: Exit -=== RUN TestJumpIfLessOrEqual/kernel#01 -=== NAME TestALUAnd/eBPF#02 +=== RUN TestALUMod/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 240 - 3: And32Imm dst: r4 imm: 128 - 4: JEqImm dst: r4 off: -1 imm: 128 - filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 17 + 3: Mov32Imm dst: r5 imm: 4 + 4: JEqImm dst: r5 off: -1 imm: 0 + 5: Mod32Reg dst: r4 src: r5 + 6: JEqImm dst: r4 off: -1 imm: 1 filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 + 7: Mov32Imm dst: r4 imm: 0 8: JaImm dst: r0 off: -1 imm: 0 - result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 - return: - 12: Exit -=== RUN TestALUAnd/kernel#02 -=== NAME TestJump0/eBPF#01 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 1 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: Mov32Imm dst: r5 imm: 0 - 6: LdXMemB dst: r4 src: r2 off: 0 imm: 0 - 7: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 8: JEqReg dst: r4 off: -1 src: r5 - filter_block_4: - 9: Mov32Reg dst: r4 src: r4 + filter_block_5: + 9: Mov32Imm dst: r4 imm: 1 10: JaImm dst: r0 off: -1 imm: 0 filter_nomatch: 11: MovImm dst: r4 imm: 0 @@ -3158,16 +2669,30 @@ 15: MovImm dst: r0 imm: 1 return: 16: Exit -=== RUN TestALUDiv/eBPF#02 -=== RUN TestJump0/kernel#01 -=== NAME TestALUDiv/eBPF#02 +=== RUN TestALUMod/kernel#03 +--- PASS: TestALUMod (1.31s) + --- SKIP: TestALUMod/C (0.35s) + --- SKIP: TestALUMod/eBPF (0.00s) + --- PASS: TestALUMod/kernel (0.00s) + --- SKIP: TestALUMod/C#01 (0.24s) + --- SKIP: TestALUMod/eBPF#01 (0.00s) + --- PASS: TestALUMod/kernel#01 (0.00s) + --- SKIP: TestALUMod/C#02 (0.32s) + --- SKIP: TestALUMod/eBPF#02 (0.00s) + --- PASS: TestALUMod/kernel#02 (0.00s) + --- SKIP: TestALUMod/C#03 (0.40s) + --- SKIP: TestALUMod/eBPF#03 (0.00s) + --- PASS: TestALUMod/kernel#03 (0.00s) +=== CONT TestLoadAbsolute +=== RUN TestLoadAbsolute/C +=== RUN TestALUOr/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 19 - 3: Div32Imm dst: r4 imm: 3 - 4: JEqImm dst: r4 off: -1 imm: 6 + 2: Mov32Imm dst: r4 imm: 240 + 3: Or32Imm dst: r4 imm: 15 + 4: JEqImm dst: r4 off: -1 imm: 255 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -3180,50 +2705,48 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestALUDiv/kernel#02 -=== RUN TestALUAnd/C#03 -=== RUN TestALUDiv/C#03 ---- PASS: TestJump0 (0.21s) - --- SKIP: TestJump0/C (0.05s) - --- SKIP: TestJump0/eBPF (0.00s) - --- PASS: TestJump0/kernel (0.05s) - --- SKIP: TestJump0/C#01 (0.05s) - --- SKIP: TestJump0/eBPF#01 (0.00s) - --- PASS: TestJump0/kernel#01 (0.00s) -=== RUN TestLoadAbsoluteBigOffset/C#02 -=== RUN TestJumpIfBitsSet/eBPF#02 +=== RUN TestALUOr/kernel#02 +=== RUN TestALUOr/C#03 +=== RUN TestJumpIfEqual/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: Mov32Imm dst: r5 imm: 4 - 4: JSetReg dst: r4 off: -1 src: r5 + 2: Mov32Imm dst: r4 imm: 23 + 3: Mov32Imm dst: r5 imm: 23 + 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 + 5: JEqReg dst: r4 off: -1 src: r5 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: 7: Mov32Imm dst: r4 imm: 1 8: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 9: Mov32Imm dst: r4 imm: 0 + 10: JaImm dst: r0 off: -1 imm: 0 + filter_block_6: + 11: Mov32Imm dst: r4 imm: 1 + 12: JaImm dst: r0 off: -1 imm: 0 result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 + 13: MovImm dst: r0 imm: 2 + 14: JEqImm dst: r4 off: -1 imm: 0 + 15: MovImm dst: r0 imm: 1 return: - 12: Exit -=== RUN TestJumpIfBitsSet/kernel#02 -=== RUN TestJumpIfBitsSet/C#03 -=== RUN TestALUMul/eBPF#03 -=== RUN TestALUShiftRight/eBPF#03 -=== NAME TestALUMul/eBPF#03 + 16: Exit +=== RUN TestJumpIfEqual/kernel#03 +=== RUN TestJumpIfEqual/C#04 +=== RUN TestJumpIfLessThan/eBPF#03 +=== RUN TestALUMul/eBPF#01 +=== RUN TestJumpIfNotEqual/eBPF#02 +=== NAME TestALUMul/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 4 - 3: Mov32Imm dst: r5 imm: 13 + 2: Mov32Imm dst: r4 imm: 0 + 3: Mov32Imm dst: r5 imm: 1 4: Mul32Reg dst: r4 src: r5 - 5: JEqImm dst: r4 off: -1 imm: 52 + 5: JEqImm dst: r4 off: -1 imm: 0 filter_block_4: 6: Mov32Imm dst: r4 imm: 0 7: JaImm dst: r0 off: -1 imm: 0 @@ -3236,33 +2759,30 @@ 12: MovImm dst: r0 imm: 1 return: 13: Exit -=== RUN TestALUMul/kernel#03 -=== NAME TestALUShiftRight/eBPF#03 +=== RUN TestALUMul/kernel#01 +=== NAME TestJumpIfNotEqual/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 240 - 3: Mov32Imm dst: r5 imm: 8 - 4: RSh32Reg dst: r4 src: r5 - 5: JEqImm dst: r4 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 23 + 3: Mov32Imm dst: r5 imm: 23 + 4: JNEReg dst: r4 off: -1 src: r5 + filter_block_3: + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 6: Mov32Imm dst: r4 imm: 0 - 7: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 8: Mov32Imm dst: r4 imm: 1 - 9: JaImm dst: r0 off: -1 imm: 0 + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 result: - 10: MovImm dst: r0 imm: 2 - 11: JEqImm dst: r4 off: -1 imm: 0 - 12: MovImm dst: r0 imm: 1 + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 return: - 13: Exit -=== RUN TestALUShiftRight/kernel#03 -=== RUN TestJumpIfGreaterOrEqual/eBPF#03 -=== RUN TestJumpIfGreaterThan/eBPF#03 -=== RUN TestALUMul/C#04 -=== NAME TestJumpIfGreaterOrEqual/eBPF#03 + 12: Exit +=== RUN TestJumpIfNotEqual/kernel#02 +=== RUN TestALUMul/C#02 +=== RUN TestJumpIfLessOrEqual/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -3271,7 +2791,7 @@ 3: Mov32Imm dst: r5 imm: 23 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 5: JGEReg dst: r4 off: -1 src: r5 + 5: JLEReg dst: r4 off: -1 src: r5 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: 7: Mov32Imm dst: r4 imm: 1 @@ -3288,8 +2808,8 @@ 15: MovImm dst: r0 imm: 1 return: 16: Exit -=== RUN TestJumpIfGreaterOrEqual/kernel#03 -=== NAME TestJumpIfGreaterThan/eBPF#03 +=== RUN TestJumpIfLessOrEqual/kernel#03 +=== NAME TestJumpIfLessThan/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -3298,7 +2818,7 @@ 3: Mov32Imm dst: r5 imm: 23 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 5: JGTReg dst: r4 off: -1 src: r5 + 5: JLTReg dst: r4 off: -1 src: r5 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: 7: Mov32Imm dst: r4 imm: 1 @@ -3315,138 +2835,122 @@ 15: MovImm dst: r0 imm: 1 return: 16: Exit -=== RUN TestJumpIfGreaterThan/kernel#03 -=== RUN TestJumpIfGreaterThan/C#04 -=== RUN TestPartialZeroInitX/eBPF#01 -=== RUN TestJumpIfNotEqual/eBPF#01 -=== NAME TestPartialZeroInitX/eBPF#01 +=== RUN TestJumpIfLessThan/kernel#03 +=== RUN TestLoadExtLen/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 1 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: Mov32Imm dst: r5 imm: 0 - 6: LdXMemB dst: r4 src: r2 off: 0 imm: 0 - 7: JNEImm dst: r4 off: -1 imm: 3 + 2: MovReg dst: r4 src: r3 + 3: Sub32Reg dst: r4 src: r2 + 4: JEqImm dst: r4 off: -1 imm: 16 filter_block_2: - 8: Mov32Reg dst: r5 src: r4 + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_3: - 9: Mov32Reg dst: r4 src: r5 - 10: Mov32Reg dst: r4 src: r4 - 11: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 12: MovImm dst: r4 imm: 0 - 13: JaImm dst: r0 off: -1 imm: 0 + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 result: - 14: MovImm dst: r0 imm: 2 - 15: JEqImm dst: r4 off: -1 imm: 0 - 16: MovImm dst: r0 imm: 1 + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 return: - 17: Exit -=== RUN TestPartialZeroInitX/kernel#01 -=== RUN TestALUShiftLeft/eBPF#02 -=== NAME TestJumpIfNotEqual/eBPF#01 + 12: Exit +=== RUN TestLoadExtLen/kernel +--- PASS: TestLoadExtLen (0.27s) + --- SKIP: TestLoadExtLen/C (0.26s) + --- SKIP: TestLoadExtLen/eBPF (0.00s) + --- PASS: TestLoadExtLen/kernel (0.00s) +=== CONT TestScratchA +=== RUN TestScratchA/C +=== RUN TestALUDiv/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: JEqImm dst: r4 off: -1 imm: 0 - filter_block_2: - 4: JNEImm dst: r4 off: -1 imm: 23 - 5: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 6: Mov32Imm dst: r4 imm: 1 - 7: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 2 + 3: Mov32Imm dst: r5 imm: 2 + 4: JEqImm dst: r5 off: -1 imm: 0 + 5: Div32Reg dst: r4 src: r5 + 6: JEqImm dst: r4 off: -1 imm: 1 filter_block_4: - 8: Mov32Imm dst: r4 imm: 0 - 9: JaImm dst: r0 off: -1 imm: 0 + 7: Mov32Imm dst: r4 imm: 0 + 8: JaImm dst: r0 off: -1 imm: 0 filter_block_5: - 10: Mov32Imm dst: r4 imm: 1 - 11: JaImm dst: r0 off: -1 imm: 0 + 9: Mov32Imm dst: r4 imm: 1 + 10: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 11: MovImm dst: r4 imm: 0 + 12: JaImm dst: r0 off: -1 imm: 0 result: - 12: MovImm dst: r0 imm: 2 - 13: JEqImm dst: r4 off: -1 imm: 0 - 14: MovImm dst: r0 imm: 1 + 13: MovImm dst: r0 imm: 2 + 14: JEqImm dst: r4 off: -1 imm: 0 + 15: MovImm dst: r0 imm: 1 return: - 15: Exit -=== RUN TestJumpIfNotEqual/kernel#01 -=== NAME TestALUShiftLeft/eBPF#02 + 16: Exit +=== RUN TestALUDiv/kernel#01 +=== RUN TestALUDiv/C#02 +=== RUN TestJumpIfGreaterThan/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 1 - 3: LSh32Imm dst: r4 imm: 4 - 4: JEqImm dst: r4 off: -1 imm: 16 + 2: Mov32Imm dst: r4 imm: 24 + 3: Mov32Imm dst: r5 imm: 23 + 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 + 5: JGTReg dst: r4 off: -1 src: r5 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: 7: Mov32Imm dst: r4 imm: 1 8: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 9: Mov32Imm dst: r4 imm: 0 + 10: JaImm dst: r0 off: -1 imm: 0 + filter_block_6: + 11: Mov32Imm dst: r4 imm: 1 + 12: JaImm dst: r0 off: -1 imm: 0 result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 + 13: MovImm dst: r0 imm: 2 + 14: JEqImm dst: r4 off: -1 imm: 0 + 15: MovImm dst: r0 imm: 1 return: - 12: Exit ---- PASS: TestPartialZeroInitX (0.22s) - --- SKIP: TestPartialZeroInitX/C (0.06s) - --- SKIP: TestPartialZeroInitX/eBPF (0.00s) - --- PASS: TestPartialZeroInitX/kernel (0.05s) - --- SKIP: TestPartialZeroInitX/C#01 (0.04s) - --- SKIP: TestPartialZeroInitX/eBPF#01 (0.00s) - --- PASS: TestPartialZeroInitX/kernel#01 (0.00s) -=== RUN TestALUShiftLeft/kernel#02 ---- PASS: TestALUShiftRight (0.22s) - --- SKIP: TestALUShiftRight/C (0.05s) - --- SKIP: TestALUShiftRight/eBPF (0.00s) - --- PASS: TestALUShiftRight/kernel (0.00s) - --- SKIP: TestALUShiftRight/C#01 (0.05s) - --- SKIP: TestALUShiftRight/eBPF#01 (0.00s) - --- PASS: TestALUShiftRight/kernel#01 (0.00s) - --- SKIP: TestALUShiftRight/C#02 (0.05s) - --- SKIP: TestALUShiftRight/eBPF#02 (0.00s) - --- PASS: TestALUShiftRight/kernel#02 (0.00s) - --- SKIP: TestALUShiftRight/C#03 (0.05s) - --- SKIP: TestALUShiftRight/eBPF#03 (0.00s) - --- PASS: TestALUShiftRight/kernel#03 (0.00s) -=== RUN TestJumpIfGreaterOrEqual/C#04 -=== RUN TestJumpIfEqual/eBPF#02 + 16: Exit +=== RUN TestJumpIfGreaterThan/kernel#03 +=== RUN TestJumpIfGreaterThan/C#04 +=== RUN TestJumpIfNotEqual/C#03 +=== RUN TestJumpIfLessThan/C#04 +=== RUN TestJumpIfLessOrEqual/C#04 +=== RUN TestJumpIfGreaterOrEqual/eBPF#04 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 23 - 3: Mov32Imm dst: r5 imm: 23 - 4: JEqReg dst: r4 off: -1 src: r5 + 3: JGEImm dst: r4 off: -1 imm: 23 + filter_block_2: + 4: Mov32Imm dst: r4 imm: 0 + 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 + 6: Mov32Imm dst: r4 imm: 1 + 7: JaImm dst: r0 off: -1 imm: 0 result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 + 8: MovImm dst: r0 imm: 2 + 9: JEqImm dst: r4 off: -1 imm: 0 + 10: MovImm dst: r0 imm: 1 return: - 12: Exit -=== RUN TestJumpIfEqual/kernel#02 -=== RUN TestALUOr/eBPF#03 -=== RUN TestALUShiftLeft/C#03 -=== NAME TestALUOr/eBPF#03 + 11: Exit +=== RUN TestJumpIfGreaterOrEqual/kernel#04 +=== RUN TestJumpIfGreaterOrEqual/C#05 +=== RUN TestALUShiftLeft/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 240 - 3: Mov32Imm dst: r5 imm: 15 - 4: Or32Reg dst: r4 src: r5 - 5: JEqImm dst: r4 off: -1 imm: 255 + 2: Mov32Imm dst: r4 imm: 1 + 3: Mov32Imm dst: r5 imm: 4 + 4: LSh32Reg dst: r4 src: r5 + 5: JEqImm dst: r4 off: -1 imm: 16 filter_block_4: 6: Mov32Imm dst: r4 imm: 0 7: JaImm dst: r0 off: -1 imm: 0 @@ -3459,30 +2963,63 @@ 12: MovImm dst: r0 imm: 1 return: 13: Exit -=== RUN TestALUOr/kernel#03 -=== RUN TestJumpIfEqual/C#03 ---- PASS: TestALUOr (0.22s) - --- SKIP: TestALUOr/C (0.05s) - --- SKIP: TestALUOr/eBPF (0.00s) - --- PASS: TestALUOr/kernel (0.00s) - --- SKIP: TestALUOr/C#01 (0.07s) - --- SKIP: TestALUOr/eBPF#01 (0.00s) - --- PASS: TestALUOr/kernel#01 (0.00s) - --- SKIP: TestALUOr/C#02 (0.04s) - --- SKIP: TestALUOr/eBPF#02 (0.00s) - --- PASS: TestALUOr/kernel#02 (0.00s) - --- SKIP: TestALUOr/C#03 (0.05s) - --- SKIP: TestALUOr/eBPF#03 (0.00s) - --- PASS: TestALUOr/kernel#03 (0.00s) -=== RUN TestALUAdd/eBPF#03 +=== RUN TestALUShiftLeft/kernel#03 +--- PASS: TestALUShiftLeft (1.65s) + --- SKIP: TestALUShiftLeft/C (0.35s) + --- SKIP: TestALUShiftLeft/eBPF (0.00s) + --- PASS: TestALUShiftLeft/kernel (0.00s) + --- SKIP: TestALUShiftLeft/C#01 (0.40s) + --- SKIP: TestALUShiftLeft/eBPF#01 (0.00s) + --- PASS: TestALUShiftLeft/kernel#01 (0.00s) + --- SKIP: TestALUShiftLeft/C#02 (0.56s) + --- SKIP: TestALUShiftLeft/eBPF#02 (0.00s) + --- PASS: TestALUShiftLeft/kernel#02 (0.00s) + --- SKIP: TestALUShiftLeft/C#03 (0.34s) + --- SKIP: TestALUShiftLeft/eBPF#03 (0.00s) + --- PASS: TestALUShiftLeft/kernel#03 (0.00s) +=== CONT TestScratchZero +=== RUN TestScratchZero/C +=== RUN TestMemShift/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 4 - 3: Mov32Imm dst: r5 imm: 13 - 4: Add32Reg dst: r4 src: r5 - 5: JEqImm dst: r4 off: -1 imm: 17 + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 3 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: Mov32Imm dst: r4 imm: 40 + 6: LdXMemB dst: r5 src: r2 off: 2 imm: 0 + 7: And32Imm dst: r5 imm: 15 + 8: LSh32Imm dst: r5 imm: 2 + 9: JEqReg dst: r4 off: -1 src: r5 + filter_block_3: + 10: Mov32Imm dst: r4 imm: 0 + 11: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 12: Mov32Imm dst: r4 imm: 1 + 13: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 14: MovImm dst: r4 imm: 0 + 15: JaImm dst: r0 off: -1 imm: 0 + result: + 16: MovImm dst: r0 imm: 2 + 17: JEqImm dst: r4 off: -1 imm: 0 + 18: MovImm dst: r0 imm: 1 + return: + 19: Exit +=== RUN TestMemShift/kernel +=== RUN TestMemShift/C#01 +=== RUN TestALUSub/eBPF#01 +=== RUN TestALUAnd/eBPF#03 +=== NAME TestALUSub/eBPF#01 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 1 + 3: Mov32Imm dst: r5 imm: 1 + 4: Sub32Reg dst: r4 src: r5 + 5: JEqImm dst: r4 off: -1 imm: 0 filter_block_4: 6: Mov32Imm dst: r4 imm: 0 7: JaImm dst: r0 off: -1 imm: 0 @@ -3495,103 +3032,78 @@ 12: MovImm dst: r0 imm: 1 return: 13: Exit -=== RUN TestALUAdd/kernel#03 ---- PASS: TestALUAdd (0.22s) - --- SKIP: TestALUAdd/C (0.05s) - --- SKIP: TestALUAdd/eBPF (0.00s) - --- PASS: TestALUAdd/kernel (0.00s) - --- SKIP: TestALUAdd/C#01 (0.05s) - --- SKIP: TestALUAdd/eBPF#01 (0.00s) - --- PASS: TestALUAdd/kernel#01 (0.00s) - --- SKIP: TestALUAdd/C#02 (0.05s) - --- SKIP: TestALUAdd/eBPF#02 (0.00s) - --- PASS: TestALUAdd/kernel#02 (0.00s) - --- SKIP: TestALUAdd/C#03 (0.05s) - --- SKIP: TestALUAdd/eBPF#03 (0.00s) - --- PASS: TestALUAdd/kernel#03 (0.00s) -=== RUN TestLoadAbsolute/eBPF#02 +=== RUN TestALUSub/kernel#01 +=== RUN TestALUSub/C#02 +=== RUN TestJumpIfBitsSet/eBPF#05 +=== NAME TestALUAnd/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 4 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: LdXMemH dst: r4 src: r2 off: 2 imm: 0 - 6: SwapBE dst: r4 imm: 16 - 7: JEqImm dst: r4 off: -1 imm: 57005 - filter_block_2: - 8: Mov32Imm dst: r4 imm: 0 + 2: Mov32Imm dst: r4 imm: 240 + 3: Mov32Imm dst: r5 imm: 128 + 4: And32Reg dst: r4 src: r5 + 5: JEqImm dst: r4 off: -1 imm: 128 + filter_block_4: + 6: Mov32Imm dst: r4 imm: 0 + 7: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 8: Mov32Imm dst: r4 imm: 1 9: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 10: Mov32Imm dst: r4 imm: 1 - 11: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 12: MovImm dst: r4 imm: 0 - 13: JaImm dst: r0 off: -1 imm: 0 result: - 14: MovImm dst: r0 imm: 2 - 15: JEqImm dst: r4 off: -1 imm: 0 - 16: MovImm dst: r0 imm: 1 + 10: MovImm dst: r0 imm: 2 + 11: JEqImm dst: r4 off: -1 imm: 0 + 12: MovImm dst: r0 imm: 1 return: - 17: Exit -=== RUN TestLoadAbsolute/kernel#02 -=== RUN TestLoadAbsolute/C#03 -=== RUN TestLoadIndirect/constant_valid/eBPF#02 + 13: Exit +=== RUN TestALUAnd/kernel#03 +=== RUN TestALUAnd/C#04 +=== NAME TestJumpIfBitsSet/eBPF#05 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r5 imm: 3 - 3: MovReg dst: r7 src: r5 - 4: LShImm dst: r7 imm: 32 - 5: ArShImm dst: r7 imm: 32 - 6: AddImm dst: r7 imm: -1 - 7: JGEImm dst: r7 off: -1 imm: 65534 - 8: AddReg dst: r7 src: r2 - 9: MovReg dst: r6 src: r7 - 10: AddImm dst: r6 imm: 2 - 11: JGTReg dst: r6 off: -1 src: r3 - 12: LdXMemH dst: r4 src: r7 off: 0 imm: 0 - 13: SwapBE dst: r4 imm: 16 - 14: JEqImm dst: r4 off: -1 imm: 57005 + 2: Mov32Imm dst: r4 imm: 6 + 3: JEqImm dst: r4 off: -1 imm: 0 + filter_block_2: + 4: JSetImm dst: r4 off: -1 imm: 2 + 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: - 15: Mov32Imm dst: r4 imm: 0 - 16: JaImm dst: r0 off: -1 imm: 0 + 6: Mov32Imm dst: r4 imm: 1 + 7: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 17: Mov32Imm dst: r4 imm: 1 - 18: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 19: MovImm dst: r4 imm: 0 - 20: JaImm dst: r0 off: -1 imm: 0 + 8: Mov32Imm dst: r4 imm: 0 + 9: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 10: Mov32Imm dst: r4 imm: 1 + 11: JaImm dst: r0 off: -1 imm: 0 result: - 21: MovImm dst: r0 imm: 2 - 22: JEqImm dst: r4 off: -1 imm: 0 - 23: MovImm dst: r0 imm: 1 + 12: MovImm dst: r0 imm: 2 + 13: JEqImm dst: r4 off: -1 imm: 0 + 14: MovImm dst: r0 imm: 1 return: - 24: Exit -=== RUN TestLoadIndirect/constant_valid/kernel#02 -=== RUN TestLoadIndirect/constant_valid/C#03 -=== RUN TestALUMod/eBPF#03 -=== RUN TestALUSub/eBPF#03 -=== NAME TestALUMod/eBPF#03 + 15: Exit +=== RUN TestJumpIfBitsSet/kernel#05 +=== RUN TestJumpIfBitsSet/C#06 +=== RUN TestJumpIfBitsNotSet/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 17 + 2: Mov32Imm dst: r4 imm: 6 3: Mov32Imm dst: r5 imm: 4 - 4: JEqImm dst: r5 off: -1 imm: 0 - 5: Mod32Reg dst: r4 src: r5 - 6: JEqImm dst: r4 off: -1 imm: 1 + 4: JEqImm dst: r4 off: -1 imm: 0 + filter_block_3: + 5: JSetReg dst: r4 off: -1 src: r5 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 7: Mov32Imm dst: r4 imm: 0 + 7: Mov32Imm dst: r4 imm: 1 8: JaImm dst: r0 off: -1 imm: 0 filter_block_5: - 9: Mov32Imm dst: r4 imm: 1 + 9: Mov32Imm dst: r4 imm: 0 10: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 11: MovImm dst: r4 imm: 0 + filter_block_6: + 11: Mov32Imm dst: r4 imm: 1 12: JaImm dst: r0 off: -1 imm: 0 result: 13: MovImm dst: r0 imm: 2 @@ -3599,16 +3111,18 @@ 15: MovImm dst: r0 imm: 1 return: 16: Exit -=== RUN TestALUMod/kernel#03 -=== NAME TestALUSub/eBPF#03 +=== RUN TestJumpIfBitsNotSet/kernel#03 +=== RUN TestALUShiftRight/eBPF#03 +=== RUN TestALUAdd/eBPF#01 +=== NAME TestALUShiftRight/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 13 - 3: Mov32Imm dst: r5 imm: 9 - 4: Sub32Reg dst: r4 src: r5 - 5: JEqImm dst: r4 off: -1 imm: 4 + 2: Mov32Imm dst: r4 imm: 240 + 3: Mov32Imm dst: r5 imm: 8 + 4: RSh32Reg dst: r4 src: r5 + 5: JEqImm dst: r4 off: -1 imm: 0 filter_block_4: 6: Mov32Imm dst: r4 imm: 0 7: JaImm dst: r0 off: -1 imm: 0 @@ -3621,47 +3135,60 @@ 12: MovImm dst: r0 imm: 1 return: 13: Exit -=== RUN TestALUSub/kernel#03 ---- PASS: TestALUMod (0.24s) - --- SKIP: TestALUMod/C (0.09s) - --- SKIP: TestALUMod/eBPF (0.00s) - --- PASS: TestALUMod/kernel (0.00s) - --- SKIP: TestALUMod/C#01 (0.05s) - --- SKIP: TestALUMod/eBPF#01 (0.00s) - --- PASS: TestALUMod/kernel#01 (0.00s) - --- SKIP: TestALUMod/C#02 (0.05s) - --- SKIP: TestALUMod/eBPF#02 (0.00s) - --- PASS: TestALUMod/kernel#02 (0.00s) - --- SKIP: TestALUMod/C#03 (0.04s) - --- SKIP: TestALUMod/eBPF#03 (0.00s) - --- PASS: TestALUMod/kernel#03 (0.00s) ---- PASS: TestALUSub (0.24s) - --- SKIP: TestALUSub/C (0.06s) - --- SKIP: TestALUSub/eBPF (0.00s) - --- PASS: TestALUSub/kernel (0.00s) - --- SKIP: TestALUSub/C#01 (0.06s) - --- SKIP: TestALUSub/eBPF#01 (0.00s) - --- PASS: TestALUSub/kernel#01 (0.00s) - --- SKIP: TestALUSub/C#02 (0.05s) - --- SKIP: TestALUSub/eBPF#02 (0.00s) - --- PASS: TestALUSub/kernel#02 (0.00s) - --- SKIP: TestALUSub/C#03 (0.05s) - --- SKIP: TestALUSub/eBPF#03 (0.00s) - --- PASS: TestALUSub/kernel#03 (0.00s) -=== RUN TestALUXor/eBPF#03 +=== RUN TestALUShiftRight/kernel#03 +=== NAME TestALUAdd/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: Mov32Imm dst: r5 imm: 4 - 4: JEqImm dst: r5 off: -1 imm: 0 - 5: Mod32Reg dst: r4 src: r5 - 6: JEqImm dst: r4 off: -1 imm: 2 + 2: Mov32Imm dst: r4 imm: 1 + 3: Mov32Imm dst: r5 imm: 0 + 4: Add32Reg dst: r4 src: r5 + 5: JEqImm dst: r4 off: -1 imm: 1 filter_block_4: + 6: Mov32Imm dst: r4 imm: 0 + 7: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 8: Mov32Imm dst: r4 imm: 1 + 9: JaImm dst: r0 off: -1 imm: 0 + result: + 10: MovImm dst: r0 imm: 2 + 11: JEqImm dst: r4 off: -1 imm: 0 + 12: MovImm dst: r0 imm: 1 + return: + 13: Exit +=== RUN TestALUAdd/kernel#01 +--- PASS: TestALUShiftRight (1.35s) + --- SKIP: TestALUShiftRight/C (0.33s) + --- SKIP: TestALUShiftRight/eBPF (0.00s) + --- PASS: TestALUShiftRight/kernel (0.00s) + --- SKIP: TestALUShiftRight/C#01 (0.34s) + --- SKIP: TestALUShiftRight/eBPF#01 (0.00s) + --- PASS: TestALUShiftRight/kernel#01 (0.00s) + --- SKIP: TestALUShiftRight/C#02 (0.32s) + --- SKIP: TestALUShiftRight/eBPF#02 (0.00s) + --- PASS: TestALUShiftRight/kernel#02 (0.00s) + --- SKIP: TestALUShiftRight/C#03 (0.35s) + --- SKIP: TestALUShiftRight/eBPF#03 (0.00s) + --- PASS: TestALUShiftRight/kernel#03 (0.00s) +=== CONT TestLoadIndirect +=== RUN TestLoadIndirect/constant_valid +=== RUN TestLoadIndirect/constant_valid/C +=== RUN TestALUAdd/C#02 +=== RUN TestLoadAbsolute/eBPF + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 3 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: LdXMemB dst: r4 src: r2 off: 2 imm: 0 + 6: JEqImm dst: r4 off: -1 imm: 5 + filter_block_2: 7: Mov32Imm dst: r4 imm: 0 8: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: + filter_block_3: 9: Mov32Imm dst: r4 imm: 1 10: JaImm dst: r0 off: -1 imm: 0 filter_nomatch: @@ -3673,33 +3200,90 @@ 15: MovImm dst: r0 imm: 1 return: 16: Exit -=== RUN TestALUXor/kernel#03 ---- PASS: TestALUXor (0.24s) - --- SKIP: TestALUXor/C (0.10s) - --- SKIP: TestALUXor/eBPF (0.00s) - --- PASS: TestALUXor/kernel (0.00s) - --- SKIP: TestALUXor/C#01 (0.05s) - --- SKIP: TestALUXor/eBPF#01 (0.00s) - --- PASS: TestALUXor/kernel#01 (0.00s) - --- SKIP: TestALUXor/C#02 (0.04s) - --- SKIP: TestALUXor/eBPF#02 (0.00s) - --- PASS: TestALUXor/kernel#02 (0.00s) - --- SKIP: TestALUXor/C#03 (0.04s) - --- SKIP: TestALUXor/eBPF#03 (0.00s) - --- PASS: TestALUXor/kernel#03 (0.00s) -=== RUN TestJumpIfBitsNotSet/C#02 -=== RUN TestJumpIfLessThan/C#02 -=== RUN TestALUAnd/eBPF#03 -=== RUN TestJumpIfBitsSet/eBPF#03 -=== NAME TestALUAnd/eBPF#03 +=== RUN TestLoadAbsolute/kernel +=== RUN TestLoadAbsolute/C#01 +=== RUN TestJumpIfLessOrEqual/eBPF#04 +=== RUN TestJumpIfEqual/eBPF#04 +=== NAME TestJumpIfLessOrEqual/eBPF#04 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 23 + 3: JLEImm dst: r4 off: -1 imm: 23 + filter_block_2: + 4: Mov32Imm dst: r4 imm: 0 + 5: JaImm dst: r0 off: -1 imm: 0 + filter_block_3: + 6: Mov32Imm dst: r4 imm: 1 + 7: JaImm dst: r0 off: -1 imm: 0 + result: + 8: MovImm dst: r0 imm: 2 + 9: JEqImm dst: r4 off: -1 imm: 0 + 10: MovImm dst: r0 imm: 1 + return: + 11: Exit +=== RUN TestJumpIfLessOrEqual/kernel#04 +=== NAME TestJumpIfEqual/eBPF#04 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 23 + 3: JEqImm dst: r4 off: -1 imm: 21 + filter_block_2: + 4: Mov32Imm dst: r4 imm: 0 + 5: JaImm dst: r0 off: -1 imm: 0 + filter_block_3: + 6: Mov32Imm dst: r4 imm: 1 + 7: JaImm dst: r0 off: -1 imm: 0 + result: + 8: MovImm dst: r0 imm: 2 + 9: JEqImm dst: r4 off: -1 imm: 0 + 10: MovImm dst: r0 imm: 1 + return: + 11: Exit +=== RUN TestJumpIfEqual/kernel#04 +=== RUN TestJumpIfLessOrEqual/C#05 +=== RUN TestJumpIfBitsNotSet/C#04 +=== RUN TestScratchA/eBPF + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: -559038737 + 3: StXMemW dst: rfp src: r4 off: -32 imm: 0 + 4: Mov32Imm dst: r4 imm: 0 + 5: Mov32Imm dst: r4 imm: -1 + 6: StXMemW dst: rfp src: r4 off: -28 imm: 0 + 7: Mov32Imm dst: r4 imm: -1 + 8: StXMemW dst: rfp src: r4 off: -36 imm: 0 + 9: LdXMemW dst: r4 src: rfp off: -32 imm: 0 + 10: Mov32Imm dst: r6 imm: -559038737 + 11: JEqReg dst: r4 off: -1 src: r6 + filter_block_9: + 12: Mov32Imm dst: r4 imm: 0 + 13: JaImm dst: r0 off: -1 imm: 0 + filter_block_10: + 14: Mov32Imm dst: r4 imm: 1 + 15: JaImm dst: r0 off: -1 imm: 0 + result: + 16: MovImm dst: r0 imm: 2 + 17: JEqImm dst: r4 off: -1 imm: 0 + 18: MovImm dst: r0 imm: 1 + return: + 19: Exit +=== RUN TestScratchA/kernel +=== RUN TestScratchA/C#01 +=== RUN TestALUOr/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 240 - 3: Mov32Imm dst: r5 imm: 128 - 4: And32Reg dst: r4 src: r5 - 5: JEqImm dst: r4 off: -1 imm: 128 + 3: Mov32Imm dst: r5 imm: 15 + 4: Or32Reg dst: r4 src: r5 + 5: JEqImm dst: r4 off: -1 imm: 255 filter_block_4: 6: Mov32Imm dst: r4 imm: 0 7: JaImm dst: r0 off: -1 imm: 0 @@ -3712,16 +3296,33 @@ 12: MovImm dst: r0 imm: 1 return: 13: Exit -=== NAME TestJumpIfBitsSet/eBPF#03 +=== RUN TestALUOr/kernel#03 +=== RUN TestJumpIfEqual/C#05 +--- PASS: TestALUOr (1.42s) + --- SKIP: TestALUOr/C (0.35s) + --- SKIP: TestALUOr/eBPF (0.00s) + --- PASS: TestALUOr/kernel (0.00s) + --- SKIP: TestALUOr/C#01 (0.35s) + --- SKIP: TestALUOr/eBPF#01 (0.01s) + --- PASS: TestALUOr/kernel#01 (0.00s) + --- SKIP: TestALUOr/C#02 (0.34s) + --- SKIP: TestALUOr/eBPF#02 (0.00s) + --- PASS: TestALUOr/kernel#02 (0.00s) + --- SKIP: TestALUOr/C#03 (0.35s) + --- SKIP: TestALUOr/eBPF#03 (0.00s) + --- PASS: TestALUOr/kernel#03 (0.00s) +=== CONT TestLoadAbsoluteBigOffset +=== RUN TestLoadAbsoluteBigOffset/C +=== RUN TestJumpIfNotEqual/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: Mov32Imm dst: r5 imm: 4 + 2: Mov32Imm dst: r4 imm: 23 + 3: Mov32Imm dst: r5 imm: 23 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 5: JSetReg dst: r4 off: -1 src: r5 + 5: JNEReg dst: r4 off: -1 src: r5 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: 7: Mov32Imm dst: r4 imm: 1 @@ -3738,22 +3339,40 @@ 15: MovImm dst: r0 imm: 1 return: 16: Exit -=== RUN TestJumpIfBitsSet/kernel#03 -=== RUN TestALUAnd/kernel#03 -=== RUN TestALUAnd/C#04 -=== RUN TestJumpIfBitsSet/C#04 -=== RUN TestALUDiv/eBPF#03 -=== RUN TestLoadAbsoluteBigOffset/eBPF#02 -=== NAME TestALUDiv/eBPF#03 +=== RUN TestJumpIfNotEqual/kernel#03 +=== RUN TestALUMul/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 19 - 3: Mov32Imm dst: r5 imm: 3 + 2: Mov32Imm dst: r4 imm: 4 + 3: Mul32Imm dst: r4 imm: 13 + 4: JEqImm dst: r4 off: -1 imm: 52 + filter_block_3: + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 + result: + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 + return: + 12: Exit +=== RUN TestALUMul/kernel#02 +=== RUN TestALUXor/eBPF#03 +=== RUN TestALUMul/C#03 +=== NAME TestALUXor/eBPF#03 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 6 + 3: Mov32Imm dst: r5 imm: 4 4: JEqImm dst: r5 off: -1 imm: 0 - 5: Div32Reg dst: r4 src: r5 - 6: JEqImm dst: r4 off: -1 imm: 6 + 5: Mod32Reg dst: r4 src: r5 + 6: JEqImm dst: r4 off: -1 imm: 2 filter_block_4: 7: Mov32Imm dst: r4 imm: 0 8: JaImm dst: r0 off: -1 imm: 0 @@ -3769,56 +3388,168 @@ 15: MovImm dst: r0 imm: 1 return: 16: Exit -=== NAME TestLoadAbsoluteBigOffset/eBPF#02 +=== RUN TestALUXor/kernel#03 +--- PASS: TestALUXor (1.76s) + --- SKIP: TestALUXor/C (0.37s) + --- SKIP: TestALUXor/eBPF (0.00s) + --- PASS: TestALUXor/kernel (0.00s) + --- SKIP: TestALUXor/C#01 (0.44s) + --- SKIP: TestALUXor/eBPF#01 (0.00s) + --- PASS: TestALUXor/kernel#01 (0.00s) + --- SKIP: TestALUXor/C#02 (0.45s) + --- SKIP: TestALUXor/eBPF#02 (0.00s) + --- PASS: TestALUXor/kernel#02 (0.00s) + --- SKIP: TestALUXor/C#03 (0.44s) + --- SKIP: TestALUXor/eBPF#03 (0.00s) + --- PASS: TestALUXor/kernel#03 (0.00s) +=== CONT TestLoadConstantA +=== RUN TestLoadConstantA/C +=== RUN TestJumpIfNotEqual/C#04 +=== RUN TestJumpIfGreaterOrEqual/eBPF#05 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 23 + 3: JEqImm dst: r4 off: -1 imm: 0 + filter_block_2: + 4: JGEImm dst: r4 off: -1 imm: 23 + 5: JaImm dst: r0 off: -1 imm: 0 + filter_block_3: + 6: Mov32Imm dst: r4 imm: 1 + 7: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 8: Mov32Imm dst: r4 imm: 0 + 9: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 10: Mov32Imm dst: r4 imm: 1 + 11: JaImm dst: r0 off: -1 imm: 0 + result: + 12: MovImm dst: r0 imm: 2 + 13: JEqImm dst: r4 off: -1 imm: 0 + 14: MovImm dst: r0 imm: 1 + return: + 15: Exit +=== RUN TestJumpIfGreaterOrEqual/kernel#05 +=== RUN TestJumpIfGreaterOrEqual/C#06 +=== RUN TestMemShift/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 65535 + 3: AddImm dst: r6 imm: 3 4: JGTReg dst: r6 off: -1 src: r3 - 5: MovReg dst: r6 src: r2 - 6: AddImm dst: r6 imm: 65533 - 7: LdXMemH dst: r4 src: r6 off: 0 imm: 0 - 8: SwapBE dst: r4 imm: 16 - 9: Add32Imm dst: r4 imm: 2 - 10: Mov32Reg dst: r4 src: r4 + 5: Mov32Imm dst: r4 imm: 0 + 6: LdXMemB dst: r5 src: r2 off: 2 imm: 0 + 7: And32Imm dst: r5 imm: 15 + 8: LSh32Imm dst: r5 imm: 2 + 9: JEqReg dst: r4 off: -1 src: r5 + filter_block_3: + 10: Mov32Imm dst: r4 imm: 0 11: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 12: MovImm dst: r4 imm: 0 + filter_block_4: + 12: Mov32Imm dst: r4 imm: 1 13: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 14: MovImm dst: r4 imm: 0 + 15: JaImm dst: r0 off: -1 imm: 0 result: - 14: MovImm dst: r0 imm: 2 - 15: JEqImm dst: r4 off: -1 imm: 0 - 16: MovImm dst: r0 imm: 1 + 16: MovImm dst: r0 imm: 2 + 17: JEqImm dst: r4 off: -1 imm: 0 + 18: MovImm dst: r0 imm: 1 return: - 17: Exit -=== RUN TestALUDiv/kernel#03 -=== RUN TestLoadAbsoluteBigOffset/kernel#02 ---- PASS: TestALUDiv (0.26s) - --- SKIP: TestALUDiv/C (0.10s) - --- SKIP: TestALUDiv/eBPF (0.00s) - --- PASS: TestALUDiv/kernel (0.00s) - --- SKIP: TestALUDiv/C#01 (0.06s) - --- SKIP: TestALUDiv/eBPF#01 (0.00s) - --- PASS: TestALUDiv/kernel#01 (0.00s) - --- SKIP: TestALUDiv/C#02 (0.05s) - --- SKIP: TestALUDiv/eBPF#02 (0.00s) - --- PASS: TestALUDiv/kernel#02 (0.00s) - --- SKIP: TestALUDiv/C#03 (0.05s) - --- SKIP: TestALUDiv/eBPF#03 (0.00s) - --- PASS: TestALUDiv/kernel#03 (0.00s) -=== RUN TestJumpIfLessOrEqual/C#02 -=== RUN TestJumpIfGreaterOrEqual/eBPF#04 -=== RUN TestJumpIfGreaterThan/eBPF#04 -=== RUN TestALUMul/eBPF#04 -=== NAME TestJumpIfGreaterOrEqual/eBPF#04 + 19: Exit +=== RUN TestMemShift/kernel#01 +--- PASS: TestMemShift (0.60s) + --- SKIP: TestMemShift/C (0.30s) + --- SKIP: TestMemShift/eBPF (0.00s) + --- PASS: TestMemShift/kernel (0.00s) + --- SKIP: TestMemShift/C#01 (0.30s) + --- SKIP: TestMemShift/eBPF#01 (0.00s) + --- PASS: TestMemShift/kernel#01 (0.00s) +=== CONT TestLoadConstantX +=== RUN TestLoadConstantX/C +=== RUN TestJumpIfBitsSet/eBPF#06 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 6 + 3: Mov32Imm dst: r5 imm: 2 + 4: JSetReg dst: r4 off: -1 src: r5 + filter_block_3: + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 + result: + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 + return: + 12: Exit +=== RUN TestJumpIfBitsSet/kernel#06 +=== RUN TestJumpIfBitsSet/C#07 +=== RUN TestALUDiv/eBPF#02 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 19 + 3: Div32Imm dst: r4 imm: 3 + 4: JEqImm dst: r4 off: -1 imm: 6 + filter_block_3: + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 + result: + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 + return: + 12: Exit +=== RUN TestALUDiv/kernel#02 +=== RUN TestALUDiv/C#03 +=== RUN TestScratchZero/eBPF + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 4 + 3: StXMemW dst: rfp src: r4 off: -4 imm: 0 + 4: Mov32Imm dst: r4 imm: 0 + 5: LdXMemW dst: r4 src: rfp off: -4 imm: 0 + 6: JEqImm dst: r4 off: -1 imm: 4 + filter_block_5: + 7: Mov32Imm dst: r4 imm: 0 + 8: JaImm dst: r0 off: -1 imm: 0 + filter_block_6: + 9: Mov32Imm dst: r4 imm: 1 + 10: JaImm dst: r0 off: -1 imm: 0 + result: + 11: MovImm dst: r0 imm: 2 + 12: JEqImm dst: r4 off: -1 imm: 0 + 13: MovImm dst: r0 imm: 1 + return: + 14: Exit +=== RUN TestScratchZero/kernel +--- PASS: TestScratchZero (0.37s) + --- SKIP: TestScratchZero/C (0.37s) + --- SKIP: TestScratchZero/eBPF (0.00s) + --- PASS: TestScratchZero/kernel (0.00s) +=== CONT TestPartialZeroInitX +=== RUN TestPartialZeroInitX/C +=== RUN TestJumpIfLessThan/eBPF#04 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 23 - 3: JGEImm dst: r4 off: -1 imm: 23 + 3: JLTImm dst: r4 off: -1 imm: 23 filter_block_2: 4: Mov32Imm dst: r4 imm: 0 5: JaImm dst: r0 off: -1 imm: 0 @@ -3831,8 +3562,8 @@ 10: MovImm dst: r0 imm: 1 return: 11: Exit -=== RUN TestJumpIfGreaterOrEqual/kernel#04 -=== NAME TestJumpIfGreaterThan/eBPF#04 +=== RUN TestJumpIfLessThan/kernel#04 +=== RUN TestJumpIfGreaterThan/eBPF#04 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -3852,14 +3583,14 @@ return: 11: Exit === RUN TestJumpIfGreaterThan/kernel#04 -=== NAME TestALUMul/eBPF#04 +=== RUN TestALUSub/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 2 - 3: Mul32Imm dst: r4 imm: -2147483648 - 4: JEqImm dst: r4 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 13 + 3: Sub32Imm dst: r4 imm: 9 + 4: JEqImm dst: r4 off: -1 imm: 4 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -3872,143 +3603,119 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestALUMul/kernel#04 -=== RUN TestALUShiftLeft/eBPF#03 -=== RUN TestJumpIfGreaterOrEqual/C#05 -=== NAME TestALUShiftLeft/eBPF#03 +=== RUN TestALUSub/kernel#02 +=== RUN TestALUSub/C#03 +=== RUN TestJumpIfLessOrEqual/eBPF#05 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 1 - 3: Mov32Imm dst: r5 imm: 4 - 4: LSh32Reg dst: r4 src: r5 - 5: JEqImm dst: r4 off: -1 imm: 16 - filter_block_4: - 6: Mov32Imm dst: r4 imm: 0 + 2: Mov32Imm dst: r4 imm: 23 + 3: JEqImm dst: r4 off: -1 imm: 0 + filter_block_2: + 4: JLEImm dst: r4 off: -1 imm: 23 + 5: JaImm dst: r0 off: -1 imm: 0 + filter_block_3: + 6: Mov32Imm dst: r4 imm: 1 7: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 8: Mov32Imm dst: r4 imm: 1 + filter_block_4: + 8: Mov32Imm dst: r4 imm: 0 9: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 10: Mov32Imm dst: r4 imm: 1 + 11: JaImm dst: r0 off: -1 imm: 0 result: - 10: MovImm dst: r0 imm: 2 - 11: JEqImm dst: r4 off: -1 imm: 0 - 12: MovImm dst: r0 imm: 1 + 12: MovImm dst: r0 imm: 2 + 13: JEqImm dst: r4 off: -1 imm: 0 + 14: MovImm dst: r0 imm: 1 return: - 13: Exit -=== RUN TestALUShiftLeft/kernel#03 -=== RUN TestALUMul/C#05 ---- PASS: TestALUShiftLeft (0.26s) - --- SKIP: TestALUShiftLeft/C (0.05s) - --- SKIP: TestALUShiftLeft/eBPF (0.00s) - --- PASS: TestALUShiftLeft/kernel (0.00s) - --- SKIP: TestALUShiftLeft/C#01 (0.06s) - --- SKIP: TestALUShiftLeft/eBPF#01 (0.00s) - --- PASS: TestALUShiftLeft/kernel#01 (0.00s) - --- SKIP: TestALUShiftLeft/C#02 (0.06s) - --- SKIP: TestALUShiftLeft/eBPF#02 (0.00s) - --- PASS: TestALUShiftLeft/kernel#02 (0.00s) - --- SKIP: TestALUShiftLeft/C#03 (0.04s) - --- SKIP: TestALUShiftLeft/eBPF#03 (0.00s) - --- PASS: TestALUShiftLeft/kernel#03 (0.00s) -=== RUN TestJumpIfEqual/eBPF#03 + 15: Exit +=== RUN TestJumpIfLessOrEqual/kernel#05 +=== RUN TestJumpIfLessOrEqual/C#06 +=== RUN TestJumpIfLessThan/C#05 +=== RUN TestJumpIfBitsNotSet/eBPF#04 +=== RUN TestALUAnd/eBPF#04 +=== NAME TestJumpIfBitsNotSet/eBPF#04 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: Mov32Imm dst: r5 imm: 23 - 4: JEqImm dst: r4 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 6 + 3: JSetImm dst: r4 off: -1 imm: 2 + 4: JaImm dst: r0 off: -1 imm: 0 + filter_block_2: + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_3: - 5: JEqReg dst: r4 off: -1 src: r5 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: 7: Mov32Imm dst: r4 imm: 1 8: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 9: Mov32Imm dst: r4 imm: 0 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_block_6: - 11: Mov32Imm dst: r4 imm: 1 - 12: JaImm dst: r0 off: -1 imm: 0 result: - 13: MovImm dst: r0 imm: 2 - 14: JEqImm dst: r4 off: -1 imm: 0 - 15: MovImm dst: r0 imm: 1 + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 return: - 16: Exit -=== RUN TestJumpIfEqual/kernel#03 -=== RUN TestJumpIfEqual/C#04 -=== RUN TestJumpIfNotEqual/C#02 -=== RUN TestLoadAbsolute/eBPF#03 + 12: Exit +=== RUN TestJumpIfBitsNotSet/kernel#04 +=== NAME TestALUAnd/eBPF#04 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 4 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: LdXMemH dst: r4 src: r2 off: 2 imm: 0 - 6: SwapBE dst: r4 imm: 16 - 7: JEqImm dst: r4 off: -1 imm: 57007 - filter_block_2: - 8: Mov32Imm dst: r4 imm: 0 - 9: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 240 + 3: And32Imm dst: r4 imm: 15 + 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 10: Mov32Imm dst: r4 imm: 1 - 11: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 12: MovImm dst: r4 imm: 0 - 13: JaImm dst: r0 off: -1 imm: 0 + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 result: - 14: MovImm dst: r0 imm: 2 - 15: JEqImm dst: r4 off: -1 imm: 0 - 16: MovImm dst: r0 imm: 1 + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 return: - 17: Exit -=== RUN TestLoadAbsolute/kernel#03 -=== RUN TestLoadIndirect/constant_valid/eBPF#03 + 12: Exit +=== RUN TestALUAnd/kernel#04 +=== RUN TestALUAnd/C#05 +=== RUN TestJumpIfGreaterThan/C#05 +=== RUN TestJumpIfBitsNotSet/C#05 +=== RUN TestLoadAbsolute/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r5 imm: 3 - 3: MovReg dst: r7 src: r5 - 4: LShImm dst: r7 imm: 32 - 5: ArShImm dst: r7 imm: 32 - 6: AddImm dst: r7 imm: -1 - 7: JGEImm dst: r7 off: -1 imm: 65534 - 8: AddReg dst: r7 src: r2 - 9: MovReg dst: r6 src: r7 - 10: AddImm dst: r6 imm: 2 - 11: JGTReg dst: r6 off: -1 src: r3 - 12: LdXMemH dst: r4 src: r7 off: 0 imm: 0 - 13: SwapBE dst: r4 imm: 16 - 14: JEqImm dst: r4 off: -1 imm: 57005 + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 3 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: LdXMemB dst: r4 src: r2 off: 2 imm: 0 + 6: JEqImm dst: r4 off: -1 imm: 6 + filter_block_2: + 7: Mov32Imm dst: r4 imm: 0 + 8: JaImm dst: r0 off: -1 imm: 0 filter_block_3: - 15: Mov32Imm dst: r4 imm: 0 - 16: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 17: Mov32Imm dst: r4 imm: 1 - 18: JaImm dst: r0 off: -1 imm: 0 + 9: Mov32Imm dst: r4 imm: 1 + 10: JaImm dst: r0 off: -1 imm: 0 filter_nomatch: - 19: MovImm dst: r4 imm: 0 - 20: JaImm dst: r0 off: -1 imm: 0 + 11: MovImm dst: r4 imm: 0 + 12: JaImm dst: r0 off: -1 imm: 0 result: - 21: MovImm dst: r0 imm: 2 - 22: JEqImm dst: r4 off: -1 imm: 0 - 23: MovImm dst: r0 imm: 1 + 13: MovImm dst: r0 imm: 2 + 14: JEqImm dst: r4 off: -1 imm: 0 + 15: MovImm dst: r0 imm: 1 return: - 24: Exit -=== RUN TestLoadIndirect/constant_valid/kernel#03 -=== RUN TestJumpIfLessThan/eBPF#02 + 16: Exit +=== RUN TestLoadAbsolute/kernel#01 +=== RUN TestALUAdd/eBPF#02 +=== RUN TestScratchA/eBPF#01 +=== NAME TestALUAdd/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 24 - 3: Mov32Imm dst: r5 imm: 23 - 4: JLTReg dst: r4 off: -1 src: r5 + 2: Mov32Imm dst: r4 imm: 4 + 3: Add32Imm dst: r4 imm: 13 + 4: JEqImm dst: r4 off: -1 imm: 17 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -4021,103 +3728,137 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestJumpIfLessThan/kernel#02 -=== RUN TestJumpIfBitsNotSet/eBPF#02 +=== RUN TestALUAdd/kernel#02 +=== NAME TestScratchA/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: Mov32Imm dst: r5 imm: 4 - 4: JSetReg dst: r4 off: -1 src: r5 - 5: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 6: Mov32Imm dst: r4 imm: 0 - 7: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 8: Mov32Imm dst: r4 imm: 1 - 9: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 0 + 3: StXMemW dst: rfp src: r4 off: -32 imm: 0 + 4: Mov32Imm dst: r4 imm: 0 + 5: Mov32Imm dst: r4 imm: -1 + 6: StXMemW dst: rfp src: r4 off: -28 imm: 0 + 7: Mov32Imm dst: r4 imm: -1 + 8: StXMemW dst: rfp src: r4 off: -36 imm: 0 + 9: LdXMemW dst: r4 src: rfp off: -32 imm: 0 + 10: JEqImm dst: r4 off: -1 imm: 0 + filter_block_9: + 11: Mov32Imm dst: r4 imm: 0 + 12: JaImm dst: r0 off: -1 imm: 0 + filter_block_10: + 13: Mov32Imm dst: r4 imm: 1 + 14: JaImm dst: r0 off: -1 imm: 0 result: - 10: MovImm dst: r0 imm: 2 - 11: JEqImm dst: r4 off: -1 imm: 0 - 12: MovImm dst: r0 imm: 1 + 15: MovImm dst: r0 imm: 2 + 16: JEqImm dst: r4 off: -1 imm: 0 + 17: MovImm dst: r0 imm: 1 return: - 13: Exit -=== RUN TestJumpIfBitsNotSet/kernel#02 -=== RUN TestALUAnd/eBPF#04 + 18: Exit +=== RUN TestScratchA/kernel#01 +=== RUN TestALUAdd/C#03 +--- PASS: TestScratchA (0.64s) + --- SKIP: TestScratchA/C (0.28s) + --- SKIP: TestScratchA/eBPF (0.00s) + --- PASS: TestScratchA/kernel (0.00s) + --- SKIP: TestScratchA/C#01 (0.36s) + --- SKIP: TestScratchA/eBPF#01 (0.00s) + --- PASS: TestScratchA/kernel#01 (0.00s) +=== CONT TestZeroInitX +=== RUN TestZeroInitX/C +=== RUN TestLoadAbsoluteBigOffset/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 240 - 3: And32Imm dst: r4 imm: 15 - 4: JEqImm dst: r4 off: -1 imm: 0 - filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 65535 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: MovReg dst: r6 src: r2 + 6: AddImm dst: r6 imm: 65534 + 7: LdXMemB dst: r4 src: r6 off: 0 imm: 0 + 8: Add32Imm dst: r4 imm: 2 + 9: Mov32Reg dst: r4 src: r4 + 10: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 11: MovImm dst: r4 imm: 0 + 12: JaImm dst: r0 off: -1 imm: 0 result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 + 13: MovImm dst: r0 imm: 2 + 14: JEqImm dst: r4 off: -1 imm: 0 + 15: MovImm dst: r0 imm: 1 return: - 12: Exit -=== RUN TestALUAnd/kernel#04 -=== RUN TestALUAnd/C#05 -=== RUN TestJumpIfLessOrEqual/eBPF#02 + 16: Exit +=== RUN TestLoadAbsoluteBigOffset/kernel +=== RUN TestLoadIndirect/constant_valid/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 24 - 3: Mov32Imm dst: r5 imm: 23 - 4: JLEReg dst: r4 off: -1 src: r5 + 2: Mov32Imm dst: r5 imm: -2147483644 + 3: MovReg dst: r7 src: r5 + 4: LShImm dst: r7 imm: 32 + 5: ArShImm dst: r7 imm: 32 + 6: AddImm dst: r7 imm: 2147483647 + 7: JGEImm dst: r7 off: -1 imm: 65535 + 8: AddReg dst: r7 src: r2 + 9: MovReg dst: r6 src: r7 + 10: AddImm dst: r6 imm: 1 + 11: JGTReg dst: r6 off: -1 src: r3 + 12: LdXMemB dst: r4 src: r7 off: 0 imm: 0 + 13: JEqImm dst: r4 off: -1 imm: 5 filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 + 14: Mov32Imm dst: r4 imm: 0 + 15: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 + 16: Mov32Imm dst: r4 imm: 1 + 17: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 18: MovImm dst: r4 imm: 0 + 19: JaImm dst: r0 off: -1 imm: 0 result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 + 20: MovImm dst: r0 imm: 2 + 21: JEqImm dst: r4 off: -1 imm: 0 + 22: MovImm dst: r0 imm: 1 return: - 12: Exit -=== RUN TestJumpIfLessOrEqual/kernel#02 -=== RUN TestJumpIfBitsSet/eBPF#04 + 23: Exit +=== RUN TestLoadIndirect/constant_valid/kernel +=== RUN TestLoadIndirect/constant_valid/C#01 +=== RUN TestJumpIfEqual/eBPF#05 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: JSetImm dst: r4 off: -1 imm: 2 + 2: Mov32Imm dst: r4 imm: 23 + 3: JEqImm dst: r4 off: -1 imm: 0 filter_block_2: - 4: Mov32Imm dst: r4 imm: 0 - 5: JaImm dst: r0 off: -1 imm: 0 + 4: JEqImm dst: r4 off: -1 imm: 21 + 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: 6: Mov32Imm dst: r4 imm: 1 7: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 8: Mov32Imm dst: r4 imm: 0 + 9: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 10: Mov32Imm dst: r4 imm: 1 + 11: JaImm dst: r0 off: -1 imm: 0 result: - 8: MovImm dst: r0 imm: 2 - 9: JEqImm dst: r4 off: -1 imm: 0 - 10: MovImm dst: r0 imm: 1 + 12: MovImm dst: r0 imm: 2 + 13: JEqImm dst: r4 off: -1 imm: 0 + 14: MovImm dst: r0 imm: 1 return: - 11: Exit -=== RUN TestJumpIfBitsSet/kernel#04 -=== RUN TestJumpIfBitsSet/C#05 -=== RUN TestJumpIfGreaterOrEqual/eBPF#05 -=== RUN TestJumpIfEqual/eBPF#04 -=== RUN TestLoadAbsoluteBigOffset/C#03 -=== NAME TestJumpIfEqual/eBPF#04 + 15: Exit +=== RUN TestJumpIfEqual/kernel#05 +=== RUN TestLoadConstantA/eBPF +=== RUN TestLoadConstantX/eBPF +=== NAME TestLoadConstantA/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: JEqImm dst: r4 off: -1 imm: 21 + 2: Mov32Imm dst: r4 imm: 1 + 3: JEqImm dst: r4 off: -1 imm: 1 filter_block_2: 4: Mov32Imm dst: r4 imm: 0 5: JaImm dst: r0 off: -1 imm: 0 @@ -4130,42 +3871,62 @@ 10: MovImm dst: r0 imm: 1 return: 11: Exit -=== NAME TestJumpIfGreaterOrEqual/eBPF#05 +=== NAME TestLoadConstantX/eBPF + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r5 imm: 1 + 3: Mov32Reg dst: r4 src: r5 + 4: JEqImm dst: r4 off: -1 imm: 1 + filter_block_3: + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 + result: + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 + return: + 12: Exit +=== RUN TestLoadConstantX/kernel +=== RUN TestLoadConstantA/kernel +=== RUN TestLoadConstantX/C#01 +=== RUN TestLoadConstantA/C#01 +=== RUN TestJumpIfNotEqual/eBPF#04 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 23 - 3: JEqImm dst: r4 off: -1 imm: 0 + 3: JNEImm dst: r4 off: -1 imm: 21 filter_block_2: - 4: JGEImm dst: r4 off: -1 imm: 23 - 5: JaImm dst: r0 off: -1 imm: 0 + 4: Mov32Imm dst: r4 imm: 0 + 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: 6: Mov32Imm dst: r4 imm: 1 7: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 8: Mov32Imm dst: r4 imm: 0 - 9: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 10: Mov32Imm dst: r4 imm: 1 - 11: JaImm dst: r0 off: -1 imm: 0 result: - 12: MovImm dst: r0 imm: 2 - 13: JEqImm dst: r4 off: -1 imm: 0 - 14: MovImm dst: r0 imm: 1 + 8: MovImm dst: r0 imm: 2 + 9: JEqImm dst: r4 off: -1 imm: 0 + 10: MovImm dst: r0 imm: 1 return: - 15: Exit -=== RUN TestJumpIfEqual/kernel#04 -=== RUN TestJumpIfGreaterOrEqual/kernel#05 -=== RUN TestALUMul/eBPF#05 + 11: Exit +=== RUN TestJumpIfNotEqual/kernel#04 +=== RUN TestJumpIfNotEqual/C#05 +=== RUN TestLoadAbsoluteBigOffset/C#01 +=== RUN TestLoadAbsolute/C#02 +=== RUN TestALUMul/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 2 - 3: Mov32Imm dst: r5 imm: -2147483648 + 2: Mov32Imm dst: r4 imm: 4 + 3: Mov32Imm dst: r5 imm: 13 4: Mul32Reg dst: r4 src: r5 - 5: JEqImm dst: r4 off: -1 imm: 0 + 5: JEqImm dst: r4 off: -1 imm: 52 filter_block_4: 6: Mov32Imm dst: r4 imm: 0 7: JaImm dst: r0 off: -1 imm: 0 @@ -4178,35 +3939,17 @@ 12: MovImm dst: r0 imm: 1 return: 13: Exit -=== RUN TestJumpIfGreaterOrEqual/C#06 -=== RUN TestALUMul/kernel#05 ---- PASS: TestALUMul (0.31s) - --- SKIP: TestALUMul/C (0.06s) - --- SKIP: TestALUMul/eBPF (0.00s) - --- PASS: TestALUMul/kernel (0.00s) - --- SKIP: TestALUMul/C#01 (0.06s) - --- SKIP: TestALUMul/eBPF#01 (0.00s) - --- PASS: TestALUMul/kernel#01 (0.00s) - --- SKIP: TestALUMul/C#02 (0.05s) - --- SKIP: TestALUMul/eBPF#02 (0.00s) - --- PASS: TestALUMul/kernel#02 (0.00s) - --- SKIP: TestALUMul/C#03 (0.05s) - --- SKIP: TestALUMul/eBPF#03 (0.00s) - --- PASS: TestALUMul/kernel#03 (0.00s) - --- SKIP: TestALUMul/C#04 (0.05s) - --- SKIP: TestALUMul/eBPF#04 (0.00s) - --- PASS: TestALUMul/kernel#04 (0.00s) - --- SKIP: TestALUMul/C#05 (0.04s) - --- SKIP: TestALUMul/eBPF#05 (0.00s) - --- PASS: TestALUMul/kernel#05 (0.00s) -=== RUN TestJumpIfNotEqual/eBPF#02 +=== RUN TestALUMul/kernel#03 +=== RUN TestALUMul/C#04 +=== RUN TestJumpIfEqual/C#06 +=== RUN TestJumpIfGreaterOrEqual/eBPF#06 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 23 3: Mov32Imm dst: r5 imm: 23 - 4: JNEReg dst: r4 off: -1 src: r5 + 4: JGEReg dst: r4 off: -1 src: r5 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -4219,39 +3962,61 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestJumpIfNotEqual/kernel#02 -=== RUN TestJumpIfGreaterThan/C#05 -=== RUN TestLoadAbsolute/C#04 -=== RUN TestLoadIndirect/constant_valid/C#04 -=== RUN TestJumpIfBitsSet/eBPF#05 -=== RUN TestALUAnd/eBPF#05 -=== NAME TestJumpIfBitsSet/eBPF#05 +=== RUN TestJumpIfGreaterOrEqual/kernel#06 +=== RUN TestJumpIfGreaterOrEqual/C#07 +=== RUN TestJumpIfLessOrEqual/eBPF#06 +=== RUN TestJumpIfBitsSet/eBPF#07 +=== NAME TestJumpIfLessOrEqual/eBPF#06 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 23 + 3: Mov32Imm dst: r5 imm: 23 + 4: JLEReg dst: r4 off: -1 src: r5 + filter_block_3: + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 + result: + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 + return: + 12: Exit +=== RUN TestJumpIfLessOrEqual/kernel#06 +=== NAME TestJumpIfBitsSet/eBPF#07 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 6 - 3: JEqImm dst: r4 off: -1 imm: 0 - filter_block_2: - 4: JSetImm dst: r4 off: -1 imm: 2 - 5: JaImm dst: r0 off: -1 imm: 0 + 3: Mov32Imm dst: r5 imm: 2 + 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 6: Mov32Imm dst: r4 imm: 1 - 7: JaImm dst: r0 off: -1 imm: 0 + 5: JSetReg dst: r4 off: -1 src: r5 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 8: Mov32Imm dst: r4 imm: 0 - 9: JaImm dst: r0 off: -1 imm: 0 + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 filter_block_5: - 10: Mov32Imm dst: r4 imm: 1 - 11: JaImm dst: r0 off: -1 imm: 0 + 9: Mov32Imm dst: r4 imm: 0 + 10: JaImm dst: r0 off: -1 imm: 0 + filter_block_6: + 11: Mov32Imm dst: r4 imm: 1 + 12: JaImm dst: r0 off: -1 imm: 0 result: - 12: MovImm dst: r0 imm: 2 - 13: JEqImm dst: r4 off: -1 imm: 0 - 14: MovImm dst: r0 imm: 1 + 13: MovImm dst: r0 imm: 2 + 14: JEqImm dst: r4 off: -1 imm: 0 + 15: MovImm dst: r0 imm: 1 return: - 15: Exit -=== RUN TestJumpIfBitsSet/kernel#05 -=== NAME TestALUAnd/eBPF#05 + 16: Exit +=== RUN TestJumpIfBitsSet/kernel#07 +=== RUN TestJumpIfLessOrEqual/C#07 +=== RUN TestJumpIfBitsSet/C#08 +=== RUN TestALUAnd/eBPF#05 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -4273,67 +4038,68 @@ return: 13: Exit === RUN TestALUAnd/kernel#05 -=== RUN TestJumpIfBitsSet/C#06 ---- PASS: TestALUAnd (0.34s) - --- SKIP: TestALUAnd/C (0.05s) +--- PASS: TestALUAnd (2.33s) + --- SKIP: TestALUAnd/C (0.53s) --- SKIP: TestALUAnd/eBPF (0.00s) --- PASS: TestALUAnd/kernel (0.00s) - --- SKIP: TestALUAnd/C#01 (0.05s) + --- SKIP: TestALUAnd/C#01 (0.44s) --- SKIP: TestALUAnd/eBPF#01 (0.00s) --- PASS: TestALUAnd/kernel#01 (0.00s) - --- SKIP: TestALUAnd/C#02 (0.05s) + --- SKIP: TestALUAnd/C#02 (0.30s) --- SKIP: TestALUAnd/eBPF#02 (0.00s) --- PASS: TestALUAnd/kernel#02 (0.00s) - --- SKIP: TestALUAnd/C#03 (0.05s) - --- SKIP: TestALUAnd/eBPF#03 (0.00s) + --- SKIP: TestALUAnd/C#03 (0.38s) + --- SKIP: TestALUAnd/eBPF#03 (0.01s) --- PASS: TestALUAnd/kernel#03 (0.00s) - --- SKIP: TestALUAnd/C#04 (0.04s) + --- SKIP: TestALUAnd/C#04 (0.40s) --- SKIP: TestALUAnd/eBPF#04 (0.00s) --- PASS: TestALUAnd/kernel#04 (0.00s) - --- SKIP: TestALUAnd/C#05 (0.04s) + --- SKIP: TestALUAnd/C#05 (0.26s) --- SKIP: TestALUAnd/eBPF#05 (0.00s) --- PASS: TestALUAnd/kernel#05 (0.00s) -=== RUN TestJumpIfLessThan/C#03 -=== RUN TestJumpIfBitsNotSet/C#03 -=== RUN TestLoadAbsoluteBigOffset/eBPF#03 +=== RUN TestZeroInitX/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 0 - 3: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r5 imm: 0 + 3: Mov32Reg dst: r4 src: r5 + 4: Mov32Reg dst: r4 src: r4 + 5: JaImm dst: r0 off: -1 imm: 0 result: - 4: MovImm dst: r0 imm: 2 - 5: JEqImm dst: r4 off: -1 imm: 0 - 6: MovImm dst: r0 imm: 1 + 6: MovImm dst: r0 imm: 2 + 7: JEqImm dst: r4 off: -1 imm: 0 + 8: MovImm dst: r0 imm: 1 return: - 7: Exit -=== RUN TestLoadAbsoluteBigOffset/kernel#03 -=== RUN TestJumpIfGreaterOrEqual/eBPF#06 -=== RUN TestJumpIfLessOrEqual/C#03 -=== NAME TestJumpIfGreaterOrEqual/eBPF#06 + 9: Exit +=== RUN TestZeroInitX/kernel +=== RUN TestPartialZeroInitX/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: Mov32Imm dst: r5 imm: 23 - 4: JGEReg dst: r4 off: -1 src: r5 + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 1 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: Mov32Imm dst: r5 imm: 0 + 6: LdXMemB dst: r4 src: r2 off: 0 imm: 0 + 7: JNEImm dst: r4 off: -1 imm: 3 + filter_block_2: + 8: Mov32Reg dst: r5 src: r4 filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 + 9: Mov32Reg dst: r4 src: r5 + 10: Mov32Reg dst: r4 src: r4 + 11: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 12: MovImm dst: r4 imm: 0 + 13: JaImm dst: r0 off: -1 imm: 0 result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 + 14: MovImm dst: r0 imm: 2 + 15: JEqImm dst: r4 off: -1 imm: 0 + 16: MovImm dst: r0 imm: 1 return: - 12: Exit -=== RUN TestJumpIfGreaterOrEqual/kernel#06 -=== RUN TestJumpIfGreaterOrEqual/C#07 -=== RUN TestJumpIfGreaterThan/eBPF#05 + 17: Exit +=== RUN TestJumpIfLessThan/eBPF#05 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -4341,7 +4107,7 @@ 2: Mov32Imm dst: r4 imm: 23 3: JEqImm dst: r4 off: -1 imm: 0 filter_block_2: - 4: JGTImm dst: r4 off: -1 imm: 23 + 4: JLTImm dst: r4 off: -1 imm: 23 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: 6: Mov32Imm dst: r4 imm: 1 @@ -4358,117 +4124,91 @@ 14: MovImm dst: r0 imm: 1 return: 15: Exit -=== RUN TestJumpIfGreaterThan/kernel#05 -=== RUN TestJumpIfEqual/C#05 -=== RUN TestJumpIfNotEqual/C#03 -=== RUN TestLoadAbsolute/eBPF#04 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 6 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: LdXMemW dst: r4 src: r2 off: 2 imm: 0 - 6: SwapBE dst: r4 imm: 32 - 7: Mov32Imm dst: r6 imm: -559038737 - 8: JEqReg dst: r4 off: -1 src: r6 - filter_block_2: - 9: Mov32Imm dst: r4 imm: 0 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 11: Mov32Imm dst: r4 imm: 1 - 12: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 13: MovImm dst: r4 imm: 0 - 14: JaImm dst: r0 off: -1 imm: 0 - result: - 15: MovImm dst: r0 imm: 2 - 16: JEqImm dst: r4 off: -1 imm: 0 - 17: MovImm dst: r0 imm: 1 - return: - 18: Exit -=== RUN TestLoadAbsolute/kernel#04 -=== RUN TestLoadAbsolute/C#05 -=== RUN TestLoadIndirect/constant_valid/eBPF#04 +=== RUN TestJumpIfLessThan/kernel#05 +--- PASS: TestZeroInitX (0.25s) + --- SKIP: TestZeroInitX/C (0.19s) + --- SKIP: TestZeroInitX/eBPF (0.00s) + --- PASS: TestZeroInitX/kernel (0.06s) +=== RUN TestPartialZeroInitX/kernel +=== RUN TestALUSub/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r5 imm: 1 - 3: MovReg dst: r7 src: r5 - 4: LShImm dst: r7 imm: 32 - 5: ArShImm dst: r7 imm: 32 - 6: AddImm dst: r7 imm: 2 - 7: JGEImm dst: r7 off: -1 imm: 65532 - 8: AddReg dst: r7 src: r2 - 9: MovReg dst: r6 src: r7 - 10: AddImm dst: r6 imm: 4 - 11: JGTReg dst: r6 off: -1 src: r3 - 12: LdXMemW dst: r4 src: r7 off: 0 imm: 0 - 13: SwapBE dst: r4 imm: 32 - 14: Mov32Imm dst: r6 imm: -559038737 - 15: JEqReg dst: r4 off: -1 src: r6 - filter_block_3: - 16: Mov32Imm dst: r4 imm: 0 - 17: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 13 + 3: Mov32Imm dst: r5 imm: 9 + 4: Sub32Reg dst: r4 src: r5 + 5: JEqImm dst: r4 off: -1 imm: 4 filter_block_4: - 18: Mov32Imm dst: r4 imm: 1 - 19: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 20: MovImm dst: r4 imm: 0 - 21: JaImm dst: r0 off: -1 imm: 0 + 6: Mov32Imm dst: r4 imm: 0 + 7: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 8: Mov32Imm dst: r4 imm: 1 + 9: JaImm dst: r0 off: -1 imm: 0 result: - 22: MovImm dst: r0 imm: 2 - 23: JEqImm dst: r4 off: -1 imm: 0 - 24: MovImm dst: r0 imm: 1 + 10: MovImm dst: r0 imm: 2 + 11: JEqImm dst: r4 off: -1 imm: 0 + 12: MovImm dst: r0 imm: 1 return: - 25: Exit -=== RUN TestLoadIndirect/constant_valid/kernel#04 -=== RUN TestLoadIndirect/constant_valid/C#05 -=== RUN TestJumpIfBitsSet/eBPF#06 -=== RUN TestJumpIfLessThan/eBPF#03 -=== NAME TestJumpIfBitsSet/eBPF#06 + 13: Exit +=== RUN TestALUSub/kernel#03 +--- PASS: TestALUSub (1.52s) + --- SKIP: TestALUSub/C (0.45s) + --- SKIP: TestALUSub/eBPF (0.00s) + --- PASS: TestALUSub/kernel (0.00s) + --- SKIP: TestALUSub/C#01 (0.28s) + --- SKIP: TestALUSub/eBPF#01 (0.00s) + --- PASS: TestALUSub/kernel#01 (0.00s) + --- SKIP: TestALUSub/C#02 (0.37s) + --- SKIP: TestALUSub/eBPF#02 (0.00s) + --- PASS: TestALUSub/kernel#02 (0.00s) + --- SKIP: TestALUSub/C#03 (0.41s) + --- SKIP: TestALUSub/eBPF#03 (0.00s) + --- PASS: TestALUSub/kernel#03 (0.00s) +=== RUN TestJumpIfBitsNotSet/eBPF#05 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 6 - 3: Mov32Imm dst: r5 imm: 2 - 4: JSetReg dst: r4 off: -1 src: r5 + 3: JEqImm dst: r4 off: -1 imm: 0 + filter_block_2: + 4: JSetImm dst: r4 off: -1 imm: 2 + 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 + 6: Mov32Imm dst: r4 imm: 1 + 7: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 + 8: Mov32Imm dst: r4 imm: 0 + 9: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 10: Mov32Imm dst: r4 imm: 1 + 11: JaImm dst: r0 off: -1 imm: 0 result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 + 12: MovImm dst: r0 imm: 2 + 13: JEqImm dst: r4 off: -1 imm: 0 + 14: MovImm dst: r0 imm: 1 return: - 12: Exit -=== RUN TestJumpIfBitsSet/kernel#06 -=== RUN TestJumpIfBitsNotSet/eBPF#03 -=== NAME TestJumpIfLessThan/eBPF#03 + 15: Exit +=== RUN TestJumpIfBitsNotSet/kernel#05 +=== RUN TestALUDiv/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 24 - 3: Mov32Imm dst: r5 imm: 23 - 4: JEqImm dst: r4 off: -1 imm: 0 - filter_block_3: - 5: JLTReg dst: r4 off: -1 src: r5 - 6: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 19 + 3: Mov32Imm dst: r5 imm: 3 + 4: JEqImm dst: r5 off: -1 imm: 0 + 5: Div32Reg dst: r4 src: r5 + 6: JEqImm dst: r4 off: -1 imm: 6 filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 + 7: Mov32Imm dst: r4 imm: 0 8: JaImm dst: r0 off: -1 imm: 0 filter_block_5: - 9: Mov32Imm dst: r4 imm: 0 + 9: Mov32Imm dst: r4 imm: 1 10: JaImm dst: r0 off: -1 imm: 0 - filter_block_6: - 11: Mov32Imm dst: r4 imm: 1 + filter_nomatch: + 11: MovImm dst: r4 imm: 0 12: JaImm dst: r0 off: -1 imm: 0 result: 13: MovImm dst: r0 imm: 2 @@ -4476,92 +4216,109 @@ 15: MovImm dst: r0 imm: 1 return: 16: Exit -=== RUN TestJumpIfLessThan/kernel#03 -=== NAME TestJumpIfBitsNotSet/eBPF#03 +=== RUN TestALUDiv/kernel#03 +=== RUN TestALUAdd/eBPF#03 +--- PASS: TestALUDiv (1.76s) + --- SKIP: TestALUDiv/C (0.49s) + --- SKIP: TestALUDiv/eBPF (0.00s) + --- PASS: TestALUDiv/kernel (0.00s) + --- SKIP: TestALUDiv/C#01 (0.34s) + --- SKIP: TestALUDiv/eBPF#01 (0.00s) + --- PASS: TestALUDiv/kernel#01 (0.00s) + --- SKIP: TestALUDiv/C#02 (0.42s) + --- SKIP: TestALUDiv/eBPF#02 (0.00s) + --- PASS: TestALUDiv/kernel#02 (0.00s) + --- SKIP: TestALUDiv/C#03 (0.45s) + --- SKIP: TestALUDiv/eBPF#03 (0.00s) + --- PASS: TestALUDiv/kernel#03 (0.00s) +=== NAME TestALUAdd/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: Mov32Imm dst: r5 imm: 4 - 4: JEqImm dst: r4 off: -1 imm: 0 - filter_block_3: - 5: JSetReg dst: r4 off: -1 src: r5 - 6: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 4 + 3: Mov32Imm dst: r5 imm: 13 + 4: Add32Reg dst: r4 src: r5 + 5: JEqImm dst: r4 off: -1 imm: 17 filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 + 6: Mov32Imm dst: r4 imm: 0 + 7: JaImm dst: r0 off: -1 imm: 0 filter_block_5: - 9: Mov32Imm dst: r4 imm: 0 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_block_6: - 11: Mov32Imm dst: r4 imm: 1 - 12: JaImm dst: r0 off: -1 imm: 0 + 8: Mov32Imm dst: r4 imm: 1 + 9: JaImm dst: r0 off: -1 imm: 0 result: - 13: MovImm dst: r0 imm: 2 - 14: JEqImm dst: r4 off: -1 imm: 0 - 15: MovImm dst: r0 imm: 1 + 10: MovImm dst: r0 imm: 2 + 11: JEqImm dst: r4 off: -1 imm: 0 + 12: MovImm dst: r0 imm: 1 return: - 16: Exit -=== RUN TestJumpIfBitsNotSet/kernel#03 -=== RUN TestJumpIfBitsSet/C#07 -=== RUN TestJumpIfGreaterOrEqual/eBPF#07 + 13: Exit +=== RUN TestALUAdd/kernel#03 +--- PASS: TestALUAdd (1.39s) + --- SKIP: TestALUAdd/C (0.33s) + --- SKIP: TestALUAdd/eBPF (0.00s) + --- PASS: TestALUAdd/kernel (0.00s) + --- SKIP: TestALUAdd/C#01 (0.34s) + --- SKIP: TestALUAdd/eBPF#01 (0.00s) + --- PASS: TestALUAdd/kernel#01 (0.00s) + --- SKIP: TestALUAdd/C#02 (0.44s) + --- SKIP: TestALUAdd/eBPF#02 (0.00s) + --- PASS: TestALUAdd/kernel#02 (0.00s) + --- SKIP: TestALUAdd/C#03 (0.28s) + --- SKIP: TestALUAdd/eBPF#03 (0.00s) + --- PASS: TestALUAdd/kernel#03 (0.00s) +=== RUN TestJumpIfLessThan/C#06 +=== RUN TestPartialZeroInitX/C#01 +=== RUN TestJumpIfBitsNotSet/C#06 +=== RUN TestLoadConstantX/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: Mov32Imm dst: r5 imm: 23 - 4: JEqImm dst: r4 off: -1 imm: 0 + 2: Mov32Imm dst: r5 imm: 28 + 3: Mov32Reg dst: r4 src: r5 + 4: JEqImm dst: r4 off: -1 imm: 28 filter_block_3: - 5: JGEReg dst: r4 off: -1 src: r5 - 6: JaImm dst: r0 off: -1 imm: 0 + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: 7: Mov32Imm dst: r4 imm: 1 8: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 9: Mov32Imm dst: r4 imm: 0 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_block_6: - 11: Mov32Imm dst: r4 imm: 1 - 12: JaImm dst: r0 off: -1 imm: 0 result: - 13: MovImm dst: r0 imm: 2 - 14: JEqImm dst: r4 off: -1 imm: 0 - 15: MovImm dst: r0 imm: 1 + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 return: - 16: Exit -=== RUN TestJumpIfGreaterOrEqual/kernel#07 -=== RUN TestJumpIfGreaterOrEqual/C#08 -=== RUN TestJumpIfLessOrEqual/eBPF#03 + 12: Exit +=== RUN TestLoadConstantX/kernel#01 +=== RUN TestLoadConstantX/C#02 +=== RUN TestJumpIfGreaterThan/eBPF#05 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 24 - 3: Mov32Imm dst: r5 imm: 23 - 4: JEqImm dst: r4 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 23 + 3: JEqImm dst: r4 off: -1 imm: 0 + filter_block_2: + 4: JGTImm dst: r4 off: -1 imm: 23 + 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: - 5: JLEReg dst: r4 off: -1 src: r5 - 6: JaImm dst: r0 off: -1 imm: 0 + 6: Mov32Imm dst: r4 imm: 1 + 7: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 + 8: Mov32Imm dst: r4 imm: 0 + 9: JaImm dst: r0 off: -1 imm: 0 filter_block_5: - 9: Mov32Imm dst: r4 imm: 0 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_block_6: - 11: Mov32Imm dst: r4 imm: 1 - 12: JaImm dst: r0 off: -1 imm: 0 + 10: Mov32Imm dst: r4 imm: 1 + 11: JaImm dst: r0 off: -1 imm: 0 result: - 13: MovImm dst: r0 imm: 2 - 14: JEqImm dst: r4 off: -1 imm: 0 - 15: MovImm dst: r0 imm: 1 + 12: MovImm dst: r0 imm: 2 + 13: JEqImm dst: r4 off: -1 imm: 0 + 14: MovImm dst: r0 imm: 1 return: - 16: Exit -=== RUN TestJumpIfLessOrEqual/kernel#03 -=== RUN TestLoadAbsoluteBigOffset/C#04 -=== RUN TestJumpIfEqual/eBPF#05 + 15: Exit +=== RUN TestJumpIfGreaterThan/kernel#05 +=== RUN TestLoadConstantA/eBPF#01 +=== RUN TestJumpIfNotEqual/eBPF#05 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -4569,7 +4326,7 @@ 2: Mov32Imm dst: r4 imm: 23 3: JEqImm dst: r4 off: -1 imm: 0 filter_block_2: - 4: JEqImm dst: r4 off: -1 imm: 21 + 4: JNEImm dst: r4 off: -1 imm: 21 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: 6: Mov32Imm dst: r4 imm: 1 @@ -4586,9 +4343,9 @@ 14: MovImm dst: r0 imm: 1 return: 15: Exit -=== RUN TestJumpIfEqual/kernel#05 -=== RUN TestJumpIfGreaterThan/C#06 -=== RUN TestJumpIfNotEqual/eBPF#03 +=== RUN TestJumpIfNotEqual/kernel#05 +=== RUN TestJumpIfNotEqual/C#06 +=== RUN TestJumpIfLessOrEqual/eBPF#07 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -4597,7 +4354,7 @@ 3: Mov32Imm dst: r5 imm: 23 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 5: JNEReg dst: r4 off: -1 src: r5 + 5: JLEReg dst: r4 off: -1 src: r5 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: 7: Mov32Imm dst: r4 imm: 1 @@ -4614,42 +4371,15 @@ 15: MovImm dst: r0 imm: 1 return: 16: Exit -=== RUN TestJumpIfNotEqual/kernel#03 -=== RUN TestLoadAbsolute/eBPF#05 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 6 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: LdXMemW dst: r4 src: r2 off: 2 imm: 0 - 6: SwapBE dst: r4 imm: 32 - 7: Mov32Imm dst: r6 imm: -558907665 - 8: JEqReg dst: r4 off: -1 src: r6 - filter_block_2: - 9: Mov32Imm dst: r4 imm: 0 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 11: Mov32Imm dst: r4 imm: 1 - 12: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 13: MovImm dst: r4 imm: 0 - 14: JaImm dst: r0 off: -1 imm: 0 - result: - 15: MovImm dst: r0 imm: 2 - 16: JEqImm dst: r4 off: -1 imm: 0 - 17: MovImm dst: r0 imm: 1 - return: - 18: Exit -=== RUN TestLoadAbsolute/kernel#05 -=== RUN TestJumpIfGreaterOrEqual/eBPF#08 +=== RUN TestJumpIfLessOrEqual/kernel#07 +=== RUN TestJumpIfLessOrEqual/C#08 +=== NAME TestLoadConstantA/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 22 - 3: JGEImm dst: r4 off: -1 imm: 23 + 2: Mov32Imm dst: r4 imm: 28 + 3: JEqImm dst: r4 off: -1 imm: 28 filter_block_2: 4: Mov32Imm dst: r4 imm: 0 5: JaImm dst: r0 off: -1 imm: 0 @@ -4662,87 +4392,61 @@ 10: MovImm dst: r0 imm: 1 return: 11: Exit -=== RUN TestJumpIfBitsSet/eBPF#07 -=== RUN TestJumpIfGreaterOrEqual/kernel#08 -=== NAME TestJumpIfBitsSet/eBPF#07 +=== RUN TestLoadConstantA/kernel#01 +=== RUN TestLoadConstantA/C#02 +=== RUN TestJumpIfEqual/eBPF#06 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: Mov32Imm dst: r5 imm: 2 - 4: JEqImm dst: r4 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 23 + 3: Mov32Imm dst: r5 imm: 21 + 4: JEqReg dst: r4 off: -1 src: r5 filter_block_3: - 5: JSetReg dst: r4 off: -1 src: r5 - 6: JaImm dst: r0 off: -1 imm: 0 + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: 7: Mov32Imm dst: r4 imm: 1 8: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 9: Mov32Imm dst: r4 imm: 0 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_block_6: - 11: Mov32Imm dst: r4 imm: 1 - 12: JaImm dst: r0 off: -1 imm: 0 result: - 13: MovImm dst: r0 imm: 2 - 14: JEqImm dst: r4 off: -1 imm: 0 - 15: MovImm dst: r0 imm: 1 + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 return: - 16: Exit -=== RUN TestJumpIfBitsSet/kernel#07 -=== RUN TestJumpIfBitsSet/C#08 -=== RUN TestLoadIndirect/constant_valid/eBPF#05 + 12: Exit +=== RUN TestJumpIfEqual/kernel#06 +=== RUN TestLoadAbsoluteBigOffset/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r5 imm: 1 - 3: MovReg dst: r7 src: r5 - 4: LShImm dst: r7 imm: 32 - 5: ArShImm dst: r7 imm: 32 - 6: AddImm dst: r7 imm: 2 - 7: JGEImm dst: r7 off: -1 imm: 65532 - 8: AddReg dst: r7 src: r2 - 9: MovReg dst: r6 src: r7 - 10: AddImm dst: r6 imm: 4 - 11: JGTReg dst: r6 off: -1 src: r3 - 12: LdXMemW dst: r4 src: r7 off: 0 imm: 0 - 13: SwapBE dst: r4 imm: 32 - 14: Mov32Imm dst: r6 imm: -559038737 - 15: JEqReg dst: r4 off: -1 src: r6 - filter_block_3: - 16: Mov32Imm dst: r4 imm: 0 - 17: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 18: Mov32Imm dst: r4 imm: 1 - 19: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 20: MovImm dst: r4 imm: 0 - 21: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 0 + 3: JaImm dst: r0 off: -1 imm: 0 result: - 22: MovImm dst: r0 imm: 2 - 23: JEqImm dst: r4 off: -1 imm: 0 - 24: MovImm dst: r0 imm: 1 + 4: MovImm dst: r0 imm: 2 + 5: JEqImm dst: r4 off: -1 imm: 0 + 6: MovImm dst: r0 imm: 1 return: - 25: Exit -=== RUN TestLoadIndirect/constant_valid/kernel#05 -=== RUN TestJumpIfLessThan/C#04 -=== RUN TestJumpIfBitsNotSet/C#04 -=== RUN TestLoadAbsoluteBigOffset/eBPF#04 + 7: Exit +=== RUN TestLoadAbsoluteBigOffset/kernel#01 +=== RUN TestJumpIfGreaterThan/C#06 +=== RUN TestJumpIfEqual/C#07 +=== RUN TestLoadAbsolute/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 65535 + 3: AddImm dst: r6 imm: 4 4: JGTReg dst: r6 off: -1 src: r3 - 5: MovReg dst: r6 src: r2 - 6: AddImm dst: r6 imm: 65531 - 7: LdXMemW dst: r4 src: r6 off: 0 imm: 0 - 8: SwapBE dst: r4 imm: 32 - 9: Add32Imm dst: r4 imm: 2 - 10: Mov32Reg dst: r4 src: r4 + 5: LdXMemH dst: r4 src: r2 off: 2 imm: 0 + 6: SwapBE dst: r4 imm: 16 + 7: JEqImm dst: r4 off: -1 imm: 57005 + filter_block_2: + 8: Mov32Imm dst: r4 imm: 0 + 9: JaImm dst: r0 off: -1 imm: 0 + filter_block_3: + 10: Mov32Imm dst: r4 imm: 1 11: JaImm dst: r0 off: -1 imm: 0 filter_nomatch: 12: MovImm dst: r4 imm: 0 @@ -4753,17 +4457,49 @@ 16: MovImm dst: r0 imm: 1 return: 17: Exit -=== RUN TestLoadAbsoluteBigOffset/kernel#04 -=== RUN TestJumpIfLessOrEqual/C#04 -=== RUN TestJumpIfEqual/C#06 -=== RUN TestJumpIfGreaterThan/eBPF#06 +=== RUN TestLoadAbsolute/kernel#02 +=== RUN TestLoadAbsolute/C#03 +=== RUN TestLoadIndirect/constant_valid/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: Mov32Imm dst: r5 imm: 23 - 4: JGTReg dst: r4 off: -1 src: r5 + 2: Mov32Imm dst: r5 imm: -2147483644 + 3: MovReg dst: r7 src: r5 + 4: LShImm dst: r7 imm: 32 + 5: ArShImm dst: r7 imm: 32 + 6: AddImm dst: r7 imm: 2147483647 + 7: JGEImm dst: r7 off: -1 imm: 65535 + 8: AddReg dst: r7 src: r2 + 9: MovReg dst: r6 src: r7 + 10: AddImm dst: r6 imm: 1 + 11: JGTReg dst: r6 off: -1 src: r3 + 12: LdXMemB dst: r4 src: r7 off: 0 imm: 0 + 13: JEqImm dst: r4 off: -1 imm: 6 + filter_block_3: + 14: Mov32Imm dst: r4 imm: 0 + 15: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 16: Mov32Imm dst: r4 imm: 1 + 17: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 18: MovImm dst: r4 imm: 0 + 19: JaImm dst: r0 off: -1 imm: 0 + result: + 20: MovImm dst: r0 imm: 2 + 21: JEqImm dst: r4 off: -1 imm: 0 + 22: MovImm dst: r0 imm: 1 + return: + 23: Exit +=== RUN TestLoadIndirect/constant_valid/kernel#01 +=== RUN TestALUMul/eBPF#04 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 2 + 3: Mul32Imm dst: r4 imm: -2147483648 + 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -4776,35 +4512,17 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestJumpIfGreaterThan/kernel#06 -=== RUN TestJumpIfNotEqual/C#04 -=== RUN TestJumpIfBitsSet/eBPF#08 ---- PASS: TestLoadAbsolute (0.47s) - --- SKIP: TestLoadAbsolute/C (0.05s) - --- SKIP: TestLoadAbsolute/eBPF (0.00s) - --- PASS: TestLoadAbsolute/kernel (0.00s) - --- SKIP: TestLoadAbsolute/C#01 (0.06s) - --- SKIP: TestLoadAbsolute/eBPF#01 (0.00s) - --- PASS: TestLoadAbsolute/kernel#01 (0.06s) - --- SKIP: TestLoadAbsolute/C#02 (0.05s) - --- SKIP: TestLoadAbsolute/eBPF#02 (0.00s) - --- PASS: TestLoadAbsolute/kernel#02 (0.00s) - --- SKIP: TestLoadAbsolute/C#03 (0.05s) - --- SKIP: TestLoadAbsolute/eBPF#03 (0.00s) - --- PASS: TestLoadAbsolute/kernel#03 (0.05s) - --- SKIP: TestLoadAbsolute/C#04 (0.05s) - --- SKIP: TestLoadAbsolute/eBPF#04 (0.00s) - --- PASS: TestLoadAbsolute/kernel#04 (0.00s) - --- SKIP: TestLoadAbsolute/C#05 (0.04s) - --- SKIP: TestLoadAbsolute/eBPF#05 (0.00s) - --- PASS: TestLoadAbsolute/kernel#05 (0.05s) -=== NAME TestJumpIfBitsSet/eBPF#08 +=== RUN TestALUMul/kernel#04 +=== RUN TestALUMul/C#05 +=== RUN TestLoadAbsoluteBigOffset/C#02 +=== RUN TestLoadIndirect/constant_valid/C#02 +=== RUN TestLoadConstantA/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: JSetImm dst: r4 off: -1 imm: 8 + 2: Mov32Imm dst: r4 imm: 0 + 3: JEqImm dst: r4 off: -1 imm: 0 filter_block_2: 4: Mov32Imm dst: r4 imm: 0 5: JaImm dst: r0 off: -1 imm: 0 @@ -4817,43 +4535,114 @@ 10: MovImm dst: r0 imm: 1 return: 11: Exit -=== RUN TestJumpIfBitsSet/kernel#08 -=== RUN TestJumpIfGreaterOrEqual/C#09 -=== RUN TestLoadIndirect/variable_valid -=== RUN TestLoadIndirect/variable_valid/C -=== RUN TestJumpIfBitsNotSet/eBPF#04 -=== RUN TestJumpIfLessThan/eBPF#04 +=== RUN TestLoadConstantA/kernel#02 +--- PASS: TestLoadConstantA (0.90s) + --- SKIP: TestLoadConstantA/C (0.33s) + --- SKIP: TestLoadConstantA/eBPF (0.00s) + --- PASS: TestLoadConstantA/kernel (0.00s) + --- SKIP: TestLoadConstantA/C#01 (0.33s) + --- SKIP: TestLoadConstantA/eBPF#01 (0.02s) + --- PASS: TestLoadConstantA/kernel#01 (0.00s) + --- SKIP: TestLoadConstantA/C#02 (0.20s) + --- SKIP: TestLoadConstantA/eBPF#02 (0.00s) + --- PASS: TestLoadConstantA/kernel#02 (0.00s) +=== RUN TestJumpIfLessThan/eBPF#06 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 23 - 3: JLTImm dst: r4 off: -1 imm: 23 - filter_block_2: - 4: Mov32Imm dst: r4 imm: 0 - 5: JaImm dst: r0 off: -1 imm: 0 + 3: Mov32Imm dst: r5 imm: 23 + 4: JLTReg dst: r4 off: -1 src: r5 filter_block_3: - 6: Mov32Imm dst: r4 imm: 1 - 7: JaImm dst: r0 off: -1 imm: 0 + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 result: - 8: MovImm dst: r0 imm: 2 - 9: JEqImm dst: r4 off: -1 imm: 0 - 10: MovImm dst: r0 imm: 1 + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 return: - 11: Exit -=== RUN TestJumpIfLessThan/kernel#04 -=== NAME TestJumpIfBitsNotSet/eBPF#04 + 12: Exit +=== RUN TestJumpIfLessThan/kernel#06 +=== RUN TestJumpIfGreaterOrEqual/eBPF#07 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: JSetImm dst: r4 off: -1 imm: 2 - 4: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 23 + 3: Mov32Imm dst: r5 imm: 23 + 4: JEqImm dst: r4 off: -1 imm: 0 + filter_block_3: + 5: JGEReg dst: r4 off: -1 src: r5 + 6: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 9: Mov32Imm dst: r4 imm: 0 + 10: JaImm dst: r0 off: -1 imm: 0 + filter_block_6: + 11: Mov32Imm dst: r4 imm: 1 + 12: JaImm dst: r0 off: -1 imm: 0 + result: + 13: MovImm dst: r0 imm: 2 + 14: JEqImm dst: r4 off: -1 imm: 0 + 15: MovImm dst: r0 imm: 1 + return: + 16: Exit +=== RUN TestJumpIfGreaterOrEqual/kernel#07 +=== RUN TestJumpIfGreaterOrEqual/C#08 +=== RUN TestPartialZeroInitX/eBPF#01 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 1 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: Mov32Imm dst: r5 imm: 0 + 6: LdXMemB dst: r4 src: r2 off: 0 imm: 0 + 7: JNEImm dst: r4 off: -1 imm: 3 filter_block_2: + 8: Mov32Reg dst: r5 src: r4 + filter_block_3: + 9: Mov32Reg dst: r4 src: r5 + 10: Mov32Reg dst: r4 src: r4 + 11: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 12: MovImm dst: r4 imm: 0 + 13: JaImm dst: r0 off: -1 imm: 0 + result: + 14: MovImm dst: r0 imm: 2 + 15: JEqImm dst: r4 off: -1 imm: 0 + 16: MovImm dst: r0 imm: 1 + return: + 17: Exit +=== RUN TestPartialZeroInitX/kernel#01 +--- PASS: TestPartialZeroInitX (0.81s) + --- SKIP: TestPartialZeroInitX/C (0.41s) + --- SKIP: TestPartialZeroInitX/eBPF (0.01s) + --- PASS: TestPartialZeroInitX/kernel (0.06s) + --- SKIP: TestPartialZeroInitX/C#01 (0.31s) + --- SKIP: TestPartialZeroInitX/eBPF#01 (0.00s) + --- PASS: TestPartialZeroInitX/kernel#01 (0.00s) +=== RUN TestJumpIfNotEqual/eBPF#06 +=== RUN TestJumpIfBitsSet/eBPF#08 +=== NAME TestJumpIfNotEqual/eBPF#06 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 23 + 3: Mov32Imm dst: r5 imm: 21 + 4: JNEReg dst: r4 off: -1 src: r5 + filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: + filter_block_4: 7: Mov32Imm dst: r4 imm: 1 8: JaImm dst: r0 off: -1 imm: 0 result: @@ -4862,14 +4651,14 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestJumpIfBitsNotSet/kernel#04 -=== RUN TestJumpIfLessOrEqual/eBPF#04 +=== RUN TestJumpIfNotEqual/kernel#06 +=== NAME TestJumpIfBitsSet/eBPF#08 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: JLEImm dst: r4 off: -1 imm: 23 + 2: Mov32Imm dst: r4 imm: 6 + 3: JSetImm dst: r4 off: -1 imm: 8 filter_block_2: 4: Mov32Imm dst: r4 imm: 0 5: JaImm dst: r0 off: -1 imm: 0 @@ -4882,17 +4671,17 @@ 10: MovImm dst: r0 imm: 1 return: 11: Exit -=== RUN TestJumpIfLessOrEqual/kernel#04 -=== RUN TestJumpIfLessOrEqual/C#05 -=== RUN TestLoadAbsoluteBigOffset/C#05 -=== RUN TestJumpIfEqual/eBPF#06 +=== RUN TestJumpIfBitsSet/kernel#08 +=== RUN TestJumpIfNotEqual/C#07 +=== RUN TestJumpIfLessThan/C#07 +=== RUN TestLoadConstantX/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: Mov32Imm dst: r5 imm: 21 - 4: JEqReg dst: r4 off: -1 src: r5 + 2: Mov32Imm dst: r5 imm: 0 + 3: Mov32Reg dst: r4 src: r5 + 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -4905,15 +4694,24 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestJumpIfEqual/kernel#06 -=== RUN TestJumpIfGreaterThan/C#07 -=== RUN TestJumpIfNotEqual/eBPF#04 +=== RUN TestLoadConstantX/kernel#02 +--- PASS: TestLoadConstantX (0.89s) + --- SKIP: TestLoadConstantX/C (0.28s) + --- SKIP: TestLoadConstantX/eBPF (0.00s) + --- PASS: TestLoadConstantX/kernel (0.00s) + --- SKIP: TestLoadConstantX/C#01 (0.30s) + --- SKIP: TestLoadConstantX/eBPF#01 (0.00s) + --- PASS: TestLoadConstantX/kernel#01 (0.00s) + --- SKIP: TestLoadConstantX/C#02 (0.31s) + --- SKIP: TestLoadConstantX/eBPF#02 (0.00s) + --- PASS: TestLoadConstantX/kernel#02 (0.00s) +=== RUN TestJumpIfLessOrEqual/eBPF#08 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: JNEImm dst: r4 off: -1 imm: 21 + 2: Mov32Imm dst: r4 imm: 22 + 3: JLEImm dst: r4 off: -1 imm: 23 filter_block_2: 4: Mov32Imm dst: r4 imm: 0 5: JaImm dst: r0 off: -1 imm: 0 @@ -4926,129 +4724,105 @@ 10: MovImm dst: r0 imm: 1 return: 11: Exit -=== RUN TestJumpIfNotEqual/kernel#04 -=== RUN TestJumpIfNotEqual/C#05 -=== RUN TestJumpIfGreaterOrEqual/eBPF#09 -=== RUN TestJumpIfBitsSet/C#09 -=== NAME TestJumpIfGreaterOrEqual/eBPF#09 +=== RUN TestJumpIfLessOrEqual/kernel#08 +=== RUN TestJumpIfLessOrEqual/C#09 +=== RUN TestJumpIfBitsNotSet/eBPF#06 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 22 - 3: JEqImm dst: r4 off: -1 imm: 0 - filter_block_2: - 4: JGEImm dst: r4 off: -1 imm: 23 + 2: Mov32Imm dst: r4 imm: 6 + 3: Mov32Imm dst: r5 imm: 2 + 4: JSetReg dst: r4 off: -1 src: r5 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: - 6: Mov32Imm dst: r4 imm: 1 + 6: Mov32Imm dst: r4 imm: 0 7: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 8: Mov32Imm dst: r4 imm: 0 + 8: Mov32Imm dst: r4 imm: 1 9: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 10: Mov32Imm dst: r4 imm: 1 - 11: JaImm dst: r0 off: -1 imm: 0 result: - 12: MovImm dst: r0 imm: 2 - 13: JEqImm dst: r4 off: -1 imm: 0 - 14: MovImm dst: r0 imm: 1 + 10: MovImm dst: r0 imm: 2 + 11: JEqImm dst: r4 off: -1 imm: 0 + 12: MovImm dst: r0 imm: 1 return: - 15: Exit -=== RUN TestJumpIfGreaterOrEqual/kernel#09 -=== RUN TestLoadIndirect/variable_valid/eBPF + 13: Exit +=== RUN TestJumpIfGreaterThan/eBPF#06 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 4 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: LdXMemW dst: r4 src: r2 off: 0 imm: 0 - 6: SwapBE dst: r4 imm: 32 - 7: Mov32Reg dst: r5 src: r4 - 8: MovReg dst: r7 src: r5 - 9: LShImm dst: r7 imm: 32 - 10: ArShImm dst: r7 imm: 32 - 11: AddImm dst: r7 imm: 13 - 12: JGEImm dst: r7 off: -1 imm: 65535 - 13: AddReg dst: r7 src: r2 - 14: MovReg dst: r6 src: r7 - 15: AddImm dst: r6 imm: 1 - 16: JGTReg dst: r6 off: -1 src: r3 - 17: LdXMemB dst: r4 src: r7 off: 0 imm: 0 - 18: JEqImm dst: r4 off: -1 imm: 5 + 2: Mov32Imm dst: r4 imm: 23 + 3: Mov32Imm dst: r5 imm: 23 + 4: JGTReg dst: r4 off: -1 src: r5 + filter_block_3: + 5: Mov32Imm dst: r4 imm: 0 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 19: Mov32Imm dst: r4 imm: 0 - 20: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 21: Mov32Imm dst: r4 imm: 1 - 22: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 23: MovImm dst: r4 imm: 0 - 24: JaImm dst: r0 off: -1 imm: 0 - result: - 25: MovImm dst: r0 imm: 2 - 26: JEqImm dst: r4 off: -1 imm: 0 - 27: MovImm dst: r0 imm: 1 - return: - 28: Exit -=== RUN TestLoadIndirect/variable_valid/kernel -=== RUN TestLoadIndirect/variable_valid/C#01 -=== RUN TestLoadAbsoluteBigOffset/eBPF#05 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 0 - 3: JaImm dst: r0 off: -1 imm: 0 + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 result: - 4: MovImm dst: r0 imm: 2 - 5: JEqImm dst: r4 off: -1 imm: 0 - 6: MovImm dst: r0 imm: 1 + 9: MovImm dst: r0 imm: 2 + 10: JEqImm dst: r4 off: -1 imm: 0 + 11: MovImm dst: r0 imm: 1 return: - 7: Exit -=== RUN TestLoadAbsoluteBigOffset/kernel#05 -=== RUN TestJumpIfLessThan/C#05 -=== RUN TestJumpIfBitsNotSet/C#05 -=== RUN TestJumpIfLessOrEqual/eBPF#05 + 12: Exit +=== RUN TestJumpIfGreaterThan/kernel#06 +=== RUN TestJumpIfBitsNotSet/kernel#06 +=== RUN TestJumpIfBitsSet/C#09 +=== RUN TestALUMul/eBPF#05 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: JEqImm dst: r4 off: -1 imm: 0 - filter_block_2: - 4: JLEImm dst: r4 off: -1 imm: 23 - 5: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 6: Mov32Imm dst: r4 imm: 1 - 7: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 2 + 3: Mov32Imm dst: r5 imm: -2147483648 + 4: Mul32Reg dst: r4 src: r5 + 5: JEqImm dst: r4 off: -1 imm: 0 filter_block_4: - 8: Mov32Imm dst: r4 imm: 0 - 9: JaImm dst: r0 off: -1 imm: 0 + 6: Mov32Imm dst: r4 imm: 0 + 7: JaImm dst: r0 off: -1 imm: 0 filter_block_5: - 10: Mov32Imm dst: r4 imm: 1 - 11: JaImm dst: r0 off: -1 imm: 0 + 8: Mov32Imm dst: r4 imm: 1 + 9: JaImm dst: r0 off: -1 imm: 0 result: - 12: MovImm dst: r0 imm: 2 - 13: JEqImm dst: r4 off: -1 imm: 0 - 14: MovImm dst: r0 imm: 1 + 10: MovImm dst: r0 imm: 2 + 11: JEqImm dst: r4 off: -1 imm: 0 + 12: MovImm dst: r0 imm: 1 return: - 15: Exit -=== RUN TestJumpIfLessOrEqual/kernel#05 -=== RUN TestJumpIfLessOrEqual/C#06 -=== RUN TestJumpIfEqual/C#07 -=== RUN TestJumpIfGreaterThan/eBPF#07 + 13: Exit +=== RUN TestALUMul/kernel#05 +--- PASS: TestALUMul (2.20s) + --- SKIP: TestALUMul/C (0.38s) + --- SKIP: TestALUMul/eBPF (0.00s) + --- PASS: TestALUMul/kernel (0.00s) + --- SKIP: TestALUMul/C#01 (0.41s) + --- SKIP: TestALUMul/eBPF#01 (0.00s) + --- PASS: TestALUMul/kernel#01 (0.00s) + --- SKIP: TestALUMul/C#02 (0.34s) + --- SKIP: TestALUMul/eBPF#02 (0.00s) + --- PASS: TestALUMul/kernel#02 (0.00s) + --- SKIP: TestALUMul/C#03 (0.38s) + --- SKIP: TestALUMul/eBPF#03 (0.00s) + --- PASS: TestALUMul/kernel#03 (0.00s) + --- SKIP: TestALUMul/C#04 (0.41s) + --- SKIP: TestALUMul/eBPF#04 (0.00s) + --- PASS: TestALUMul/kernel#04 (0.00s) + --- SKIP: TestALUMul/C#05 (0.26s) + --- SKIP: TestALUMul/eBPF#05 (0.00s) + --- PASS: TestALUMul/kernel#05 (0.00s) +=== RUN TestJumpIfGreaterThan/C#07 +=== RUN TestJumpIfBitsNotSet/C#07 +=== RUN TestJumpIfEqual/eBPF#07 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 23 - 3: Mov32Imm dst: r5 imm: 23 + 3: Mov32Imm dst: r5 imm: 21 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 5: JGTReg dst: r4 off: -1 src: r5 + 5: JEqReg dst: r4 off: -1 src: r5 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: 7: Mov32Imm dst: r4 imm: 1 @@ -5065,111 +4839,126 @@ 15: MovImm dst: r0 imm: 1 return: 16: Exit -=== RUN TestJumpIfGreaterThan/kernel#07 -=== RUN TestJumpIfNotEqual/eBPF#05 +=== RUN TestJumpIfEqual/kernel#07 +=== RUN TestLoadAbsolute/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: JEqImm dst: r4 off: -1 imm: 0 + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 4 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: LdXMemH dst: r4 src: r2 off: 2 imm: 0 + 6: SwapBE dst: r4 imm: 16 + 7: JEqImm dst: r4 off: -1 imm: 57007 filter_block_2: - 4: JNEImm dst: r4 off: -1 imm: 21 - 5: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 6: Mov32Imm dst: r4 imm: 1 - 7: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: 8: Mov32Imm dst: r4 imm: 0 9: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: + filter_block_3: 10: Mov32Imm dst: r4 imm: 1 11: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 12: MovImm dst: r4 imm: 0 + 13: JaImm dst: r0 off: -1 imm: 0 result: - 12: MovImm dst: r0 imm: 2 - 13: JEqImm dst: r4 off: -1 imm: 0 - 14: MovImm dst: r0 imm: 1 + 14: MovImm dst: r0 imm: 2 + 15: JEqImm dst: r4 off: -1 imm: 0 + 16: MovImm dst: r0 imm: 1 return: - 15: Exit -=== RUN TestJumpIfNotEqual/kernel#05 -=== RUN TestJumpIfNotEqual/C#06 -=== RUN TestJumpIfBitsSet/eBPF#09 + 17: Exit +=== RUN TestLoadAbsolute/kernel#03 +--- PASS: TestJumpIfEqual (2.88s) + --- SKIP: TestJumpIfEqual/C (0.38s) + --- SKIP: TestJumpIfEqual/eBPF (0.00s) + --- PASS: TestJumpIfEqual/kernel (0.00s) + --- SKIP: TestJumpIfEqual/C#01 (0.34s) + --- SKIP: TestJumpIfEqual/eBPF#01 (0.00s) + --- PASS: TestJumpIfEqual/kernel#01 (0.00s) + --- SKIP: TestJumpIfEqual/C#02 (0.30s) + --- SKIP: TestJumpIfEqual/eBPF#02 (0.01s) + --- PASS: TestJumpIfEqual/kernel#02 (0.00s) + --- SKIP: TestJumpIfEqual/C#03 (0.33s) + --- SKIP: TestJumpIfEqual/eBPF#03 (0.00s) + --- PASS: TestJumpIfEqual/kernel#03 (0.00s) + --- SKIP: TestJumpIfEqual/C#04 (0.28s) + --- SKIP: TestJumpIfEqual/eBPF#04 (0.00s) + --- PASS: TestJumpIfEqual/kernel#04 (0.05s) + --- SKIP: TestJumpIfEqual/C#05 (0.37s) + --- SKIP: TestJumpIfEqual/eBPF#05 (0.00s) + --- PASS: TestJumpIfEqual/kernel#05 (0.05s) + --- SKIP: TestJumpIfEqual/C#06 (0.30s) + --- SKIP: TestJumpIfEqual/eBPF#06 (0.00s) + --- PASS: TestJumpIfEqual/kernel#06 (0.05s) + --- SKIP: TestJumpIfEqual/C#07 (0.32s) + --- SKIP: TestJumpIfEqual/eBPF#07 (0.00s) + --- PASS: TestJumpIfEqual/kernel#07 (0.05s) +=== RUN TestJumpIfGreaterOrEqual/eBPF#08 +=== RUN TestLoadIndirect/constant_valid/eBPF#02 +=== NAME TestJumpIfGreaterOrEqual/eBPF#08 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: JEqImm dst: r4 off: -1 imm: 0 + 2: Mov32Imm dst: r4 imm: 22 + 3: JGEImm dst: r4 off: -1 imm: 23 filter_block_2: - 4: JSetImm dst: r4 off: -1 imm: 8 - 5: JaImm dst: r0 off: -1 imm: 0 + 4: Mov32Imm dst: r4 imm: 0 + 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: 6: Mov32Imm dst: r4 imm: 1 7: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 8: Mov32Imm dst: r4 imm: 0 - 9: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 10: Mov32Imm dst: r4 imm: 1 - 11: JaImm dst: r0 off: -1 imm: 0 result: - 12: MovImm dst: r0 imm: 2 - 13: JEqImm dst: r4 off: -1 imm: 0 - 14: MovImm dst: r0 imm: 1 + 8: MovImm dst: r0 imm: 2 + 9: JEqImm dst: r4 off: -1 imm: 0 + 10: MovImm dst: r0 imm: 1 return: - 15: Exit -=== RUN TestJumpIfBitsSet/kernel#09 -=== RUN TestLoadIndirect/variable_valid/eBPF#01 + 11: Exit +=== RUN TestJumpIfGreaterOrEqual/kernel#08 +=== NAME TestLoadIndirect/constant_valid/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 4 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: LdXMemW dst: r4 src: r2 off: 0 imm: 0 - 6: SwapBE dst: r4 imm: 32 - 7: Mov32Reg dst: r5 src: r4 - 8: MovReg dst: r7 src: r5 - 9: LShImm dst: r7 imm: 32 - 10: ArShImm dst: r7 imm: 32 - 11: AddImm dst: r7 imm: 13 - 12: JGEImm dst: r7 off: -1 imm: 65535 - 13: AddReg dst: r7 src: r2 - 14: MovReg dst: r6 src: r7 - 15: AddImm dst: r6 imm: 1 - 16: JGTReg dst: r6 off: -1 src: r3 - 17: LdXMemB dst: r4 src: r7 off: 0 imm: 0 - 18: JEqImm dst: r4 off: -1 imm: 6 + 2: Mov32Imm dst: r5 imm: 3 + 3: MovReg dst: r7 src: r5 + 4: LShImm dst: r7 imm: 32 + 5: ArShImm dst: r7 imm: 32 + 6: AddImm dst: r7 imm: -1 + 7: JGEImm dst: r7 off: -1 imm: 65534 + 8: AddReg dst: r7 src: r2 + 9: MovReg dst: r6 src: r7 + 10: AddImm dst: r6 imm: 2 + 11: JGTReg dst: r6 off: -1 src: r3 + 12: LdXMemH dst: r4 src: r7 off: 0 imm: 0 + 13: SwapBE dst: r4 imm: 16 + 14: JEqImm dst: r4 off: -1 imm: 57005 + filter_block_3: + 15: Mov32Imm dst: r4 imm: 0 + 16: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 19: Mov32Imm dst: r4 imm: 0 - 20: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 21: Mov32Imm dst: r4 imm: 1 - 22: JaImm dst: r0 off: -1 imm: 0 + 17: Mov32Imm dst: r4 imm: 1 + 18: JaImm dst: r0 off: -1 imm: 0 filter_nomatch: - 23: MovImm dst: r4 imm: 0 - 24: JaImm dst: r0 off: -1 imm: 0 + 19: MovImm dst: r4 imm: 0 + 20: JaImm dst: r0 off: -1 imm: 0 result: - 25: MovImm dst: r0 imm: 2 - 26: JEqImm dst: r4 off: -1 imm: 0 - 27: MovImm dst: r0 imm: 1 + 21: MovImm dst: r0 imm: 2 + 22: JEqImm dst: r4 off: -1 imm: 0 + 23: MovImm dst: r0 imm: 1 return: - 28: Exit -=== RUN TestLoadIndirect/variable_valid/kernel#01 -=== RUN TestJumpIfGreaterOrEqual/C#10 -=== RUN TestJumpIfLessThan/eBPF#05 -=== RUN TestJumpIfLessOrEqual/eBPF#06 -=== RUN TestJumpIfBitsNotSet/eBPF#05 -=== NAME TestJumpIfLessThan/eBPF#05 + 24: Exit +=== RUN TestLoadIndirect/constant_valid/kernel#02 +=== RUN TestLoadIndirect/constant_valid/C#03 +=== RUN TestLoadAbsolute/C#04 +=== RUN TestJumpIfLessOrEqual/eBPF#09 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 + 2: Mov32Imm dst: r4 imm: 22 3: JEqImm dst: r4 off: -1 imm: 0 filter_block_2: - 4: JLTImm dst: r4 off: -1 imm: 23 + 4: JLEImm dst: r4 off: -1 imm: 23 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: 6: Mov32Imm dst: r4 imm: 1 @@ -5186,27 +4975,36 @@ 14: MovImm dst: r0 imm: 1 return: 15: Exit -=== NAME TestJumpIfLessOrEqual/eBPF#06 +=== RUN TestJumpIfLessOrEqual/kernel#09 +=== RUN TestJumpIfLessOrEqual/C#10 +=== RUN TestLoadAbsoluteBigOffset/eBPF#02 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: Mov32Imm dst: r5 imm: 23 - 4: JLEReg dst: r4 off: -1 src: r5 - filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 65535 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: MovReg dst: r6 src: r2 + 6: AddImm dst: r6 imm: 65533 + 7: LdXMemH dst: r4 src: r6 off: 0 imm: 0 + 8: SwapBE dst: r4 imm: 16 + 9: Add32Imm dst: r4 imm: 2 + 10: Mov32Reg dst: r4 src: r4 + 11: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 12: MovImm dst: r4 imm: 0 + 13: JaImm dst: r0 off: -1 imm: 0 result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 + 14: MovImm dst: r0 imm: 2 + 15: JEqImm dst: r4 off: -1 imm: 0 + 16: MovImm dst: r0 imm: 1 return: - 12: Exit -=== NAME TestJumpIfBitsNotSet/eBPF#05 + 17: Exit +=== RUN TestLoadAbsoluteBigOffset/kernel#02 +=== RUN TestJumpIfGreaterOrEqual/C#09 +=== RUN TestLoadAbsoluteBigOffset/C#03 +=== RUN TestJumpIfBitsSet/eBPF#09 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -5214,8 +5012,8 @@ 2: Mov32Imm dst: r4 imm: 6 3: JEqImm dst: r4 off: -1 imm: 0 filter_block_2: - 4: JSetImm dst: r4 off: -1 imm: 2 - 5: JaImm dst: r0 off: -1 imm: 0 + 4: JSetImm dst: r4 off: -1 imm: 8 + 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: 6: Mov32Imm dst: r4 imm: 1 7: JaImm dst: r0 off: -1 imm: 0 @@ -5231,34 +5029,35 @@ 14: MovImm dst: r0 imm: 1 return: 15: Exit -=== RUN TestJumpIfLessOrEqual/kernel#06 -=== RUN TestJumpIfBitsNotSet/kernel#05 -=== RUN TestJumpIfLessThan/kernel#05 -=== RUN TestJumpIfLessOrEqual/C#07 -=== RUN TestLoadAbsoluteBigOffset/C#06 -=== RUN TestJumpIfNotEqual/eBPF#06 +=== RUN TestJumpIfBitsSet/kernel#09 +=== RUN TestJumpIfLessThan/eBPF#07 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 23 - 3: Mov32Imm dst: r5 imm: 21 - 4: JNEReg dst: r4 off: -1 src: r5 + 3: Mov32Imm dst: r5 imm: 23 + 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 + 5: JLTReg dst: r4 off: -1 src: r5 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: 7: Mov32Imm dst: r4 imm: 1 8: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 9: Mov32Imm dst: r4 imm: 0 + 10: JaImm dst: r0 off: -1 imm: 0 + filter_block_6: + 11: Mov32Imm dst: r4 imm: 1 + 12: JaImm dst: r0 off: -1 imm: 0 result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 + 13: MovImm dst: r0 imm: 2 + 14: JEqImm dst: r4 off: -1 imm: 0 + 15: MovImm dst: r0 imm: 1 return: - 12: Exit -=== RUN TestJumpIfNotEqual/kernel#06 -=== RUN TestJumpIfNotEqual/C#07 -=== RUN TestJumpIfEqual/eBPF#07 + 16: Exit +=== RUN TestJumpIfLessThan/kernel#07 +=== RUN TestJumpIfNotEqual/eBPF#07 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -5267,7 +5066,7 @@ 3: Mov32Imm dst: r5 imm: 21 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 5: JEqReg dst: r4 off: -1 src: r5 + 5: JNEReg dst: r4 off: -1 src: r5 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: 7: Mov32Imm dst: r4 imm: 1 @@ -5284,43 +5083,44 @@ 15: MovImm dst: r0 imm: 1 return: 16: Exit -=== RUN TestJumpIfEqual/kernel#07 -=== RUN TestJumpIfGreaterThan/C#08 +=== RUN TestJumpIfNotEqual/kernel#07 +--- PASS: TestJumpIfNotEqual (3.07s) + --- SKIP: TestJumpIfNotEqual/C (0.46s) + --- SKIP: TestJumpIfNotEqual/eBPF (0.00s) + --- PASS: TestJumpIfNotEqual/kernel (0.05s) + --- SKIP: TestJumpIfNotEqual/C#01 (0.28s) + --- SKIP: TestJumpIfNotEqual/eBPF#01 (0.00s) + --- PASS: TestJumpIfNotEqual/kernel#01 (0.07s) + --- SKIP: TestJumpIfNotEqual/C#02 (0.50s) + --- SKIP: TestJumpIfNotEqual/eBPF#02 (0.00s) + --- PASS: TestJumpIfNotEqual/kernel#02 (0.05s) + --- SKIP: TestJumpIfNotEqual/C#03 (0.26s) + --- SKIP: TestJumpIfNotEqual/eBPF#03 (0.00s) + --- PASS: TestJumpIfNotEqual/kernel#03 (0.05s) + --- SKIP: TestJumpIfNotEqual/C#04 (0.30s) + --- SKIP: TestJumpIfNotEqual/eBPF#04 (0.00s) + --- PASS: TestJumpIfNotEqual/kernel#04 (0.00s) + --- SKIP: TestJumpIfNotEqual/C#05 (0.33s) + --- SKIP: TestJumpIfNotEqual/eBPF#05 (0.00s) + --- PASS: TestJumpIfNotEqual/kernel#05 (0.00s) + --- SKIP: TestJumpIfNotEqual/C#06 (0.28s) + --- SKIP: TestJumpIfNotEqual/eBPF#06 (0.00s) + --- PASS: TestJumpIfNotEqual/kernel#06 (0.00s) + --- SKIP: TestJumpIfNotEqual/C#07 (0.34s) + --- SKIP: TestJumpIfNotEqual/eBPF#07 (0.00s) + --- PASS: TestJumpIfNotEqual/kernel#07 (0.00s) === RUN TestJumpIfBitsSet/C#10 -=== RUN TestJumpIfGreaterOrEqual/eBPF#10 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 22 - 3: Mov32Imm dst: r5 imm: 23 - 4: JGEReg dst: r4 off: -1 src: r5 - filter_block_3: - 5: Mov32Imm dst: r4 imm: 0 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 - result: - 9: MovImm dst: r0 imm: 2 - 10: JEqImm dst: r4 off: -1 imm: 0 - 11: MovImm dst: r0 imm: 1 - return: - 12: Exit -=== RUN TestJumpIfGreaterOrEqual/kernel#10 -=== RUN TestJumpIfLessOrEqual/eBPF#07 -=== RUN TestLoadIndirect/variable_valid/C#02 -=== NAME TestJumpIfLessOrEqual/eBPF#07 +=== RUN TestJumpIfBitsNotSet/eBPF#07 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: Mov32Imm dst: r5 imm: 23 + 2: Mov32Imm dst: r4 imm: 6 + 3: Mov32Imm dst: r5 imm: 2 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 5: JLEReg dst: r4 off: -1 src: r5 - 6: JaImm dst: r0 off: -1 imm: 0 + 5: JSetReg dst: r4 off: -1 src: r5 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: 7: Mov32Imm dst: r4 imm: 1 8: JaImm dst: r0 off: -1 imm: 0 @@ -5336,47 +5136,47 @@ 15: MovImm dst: r0 imm: 1 return: 16: Exit -=== RUN TestJumpIfLessOrEqual/kernel#07 -=== RUN TestJumpIfLessOrEqual/C#08 -=== RUN TestLoadAbsoluteBigOffset/eBPF#06 +=== RUN TestJumpIfBitsNotSet/kernel#07 +=== RUN TestJumpIfLessThan/C#08 +=== RUN TestLoadAbsolute/eBPF#04 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 65535 + 3: AddImm dst: r6 imm: 6 4: JGTReg dst: r6 off: -1 src: r3 - 5: Mov32Imm dst: r4 imm: 0 - 6: MovReg dst: r6 src: r2 - 7: AddImm dst: r6 imm: 65534 - 8: LdXMemB dst: r5 src: r6 off: 0 imm: 0 - 9: And32Imm dst: r5 imm: 15 - 10: LSh32Imm dst: r5 imm: 2 - 11: Add32Imm dst: r4 imm: 2 - 12: Mov32Reg dst: r4 src: r4 - 13: JaImm dst: r0 off: -1 imm: 0 + 5: LdXMemW dst: r4 src: r2 off: 2 imm: 0 + 6: SwapBE dst: r4 imm: 32 + 7: Mov32Imm dst: r6 imm: -559038737 + 8: JEqReg dst: r4 off: -1 src: r6 + filter_block_2: + 9: Mov32Imm dst: r4 imm: 0 + 10: JaImm dst: r0 off: -1 imm: 0 + filter_block_3: + 11: Mov32Imm dst: r4 imm: 1 + 12: JaImm dst: r0 off: -1 imm: 0 filter_nomatch: - 14: MovImm dst: r4 imm: 0 - 15: JaImm dst: r0 off: -1 imm: 0 + 13: MovImm dst: r4 imm: 0 + 14: JaImm dst: r0 off: -1 imm: 0 result: - 16: MovImm dst: r0 imm: 2 - 17: JEqImm dst: r4 off: -1 imm: 0 - 18: MovImm dst: r0 imm: 1 + 15: MovImm dst: r0 imm: 2 + 16: JEqImm dst: r4 off: -1 imm: 0 + 17: MovImm dst: r0 imm: 1 return: - 19: Exit -=== RUN TestLoadAbsoluteBigOffset/kernel#06 -=== RUN TestJumpIfLessThan/C#06 -=== RUN TestJumpIfBitsNotSet/C#06 -=== RUN TestJumpIfNotEqual/eBPF#07 + 18: Exit +=== RUN TestLoadAbsolute/kernel#04 +=== RUN TestLoadAbsolute/C#05 +=== RUN TestJumpIfGreaterThan/eBPF#07 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 23 - 3: Mov32Imm dst: r5 imm: 21 + 3: Mov32Imm dst: r5 imm: 23 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 5: JNEReg dst: r4 off: -1 src: r5 + 5: JGTReg dst: r4 off: -1 src: r5 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: 7: Mov32Imm dst: r4 imm: 1 @@ -5393,85 +5193,69 @@ 15: MovImm dst: r0 imm: 1 return: 16: Exit -=== RUN TestJumpIfNotEqual/kernel#07 ---- PASS: TestJumpIfNotEqual (0.63s) - --- SKIP: TestJumpIfNotEqual/C (0.05s) - --- SKIP: TestJumpIfNotEqual/eBPF (0.00s) - --- PASS: TestJumpIfNotEqual/kernel (0.05s) - --- SKIP: TestJumpIfNotEqual/C#01 (0.06s) - --- SKIP: TestJumpIfNotEqual/eBPF#01 (0.00s) - --- PASS: TestJumpIfNotEqual/kernel#01 (0.05s) - --- SKIP: TestJumpIfNotEqual/C#02 (0.04s) - --- SKIP: TestJumpIfNotEqual/eBPF#02 (0.00s) - --- PASS: TestJumpIfNotEqual/kernel#02 (0.05s) - --- SKIP: TestJumpIfNotEqual/C#03 (0.05s) - --- SKIP: TestJumpIfNotEqual/eBPF#03 (0.00s) - --- PASS: TestJumpIfNotEqual/kernel#03 (0.05s) - --- SKIP: TestJumpIfNotEqual/C#04 (0.04s) - --- SKIP: TestJumpIfNotEqual/eBPF#04 (0.00s) - --- PASS: TestJumpIfNotEqual/kernel#04 (0.00s) - --- SKIP: TestJumpIfNotEqual/C#05 (0.04s) - --- SKIP: TestJumpIfNotEqual/eBPF#05 (0.00s) - --- PASS: TestJumpIfNotEqual/kernel#05 (0.00s) - --- SKIP: TestJumpIfNotEqual/C#06 (0.04s) - --- SKIP: TestJumpIfNotEqual/eBPF#06 (0.00s) - --- PASS: TestJumpIfNotEqual/kernel#06 (0.00s) - --- SKIP: TestJumpIfNotEqual/C#07 (0.04s) - --- SKIP: TestJumpIfNotEqual/eBPF#07 (0.00s) - --- PASS: TestJumpIfNotEqual/kernel#07 (0.00s) -=== RUN TestJumpIfGreaterThan/eBPF#08 +=== RUN TestJumpIfGreaterThan/kernel#07 +=== RUN TestLoadIndirect/constant_valid/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 22 - 3: JGTImm dst: r4 off: -1 imm: 23 - filter_block_2: - 4: Mov32Imm dst: r4 imm: 0 - 5: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r5 imm: 3 + 3: MovReg dst: r7 src: r5 + 4: LShImm dst: r7 imm: 32 + 5: ArShImm dst: r7 imm: 32 + 6: AddImm dst: r7 imm: -1 + 7: JGEImm dst: r7 off: -1 imm: 65534 + 8: AddReg dst: r7 src: r2 + 9: MovReg dst: r6 src: r7 + 10: AddImm dst: r6 imm: 2 + 11: JGTReg dst: r6 off: -1 src: r3 + 12: LdXMemH dst: r4 src: r7 off: 0 imm: 0 + 13: SwapBE dst: r4 imm: 16 + 14: JEqImm dst: r4 off: -1 imm: 57005 filter_block_3: - 6: Mov32Imm dst: r4 imm: 1 - 7: JaImm dst: r0 off: -1 imm: 0 + 15: Mov32Imm dst: r4 imm: 0 + 16: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 17: Mov32Imm dst: r4 imm: 1 + 18: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 19: MovImm dst: r4 imm: 0 + 20: JaImm dst: r0 off: -1 imm: 0 result: - 8: MovImm dst: r0 imm: 2 - 9: JEqImm dst: r4 off: -1 imm: 0 - 10: MovImm dst: r0 imm: 1 + 21: MovImm dst: r0 imm: 2 + 22: JEqImm dst: r4 off: -1 imm: 0 + 23: MovImm dst: r0 imm: 1 return: - 11: Exit -=== RUN TestJumpIfGreaterThan/kernel#08 ---- PASS: TestJumpIfEqual (0.64s) - --- SKIP: TestJumpIfEqual/C (0.05s) - --- SKIP: TestJumpIfEqual/eBPF (0.00s) - --- PASS: TestJumpIfEqual/kernel (0.00s) - --- SKIP: TestJumpIfEqual/C#01 (0.05s) - --- SKIP: TestJumpIfEqual/eBPF#01 (0.00s) - --- PASS: TestJumpIfEqual/kernel#01 (0.00s) - --- SKIP: TestJumpIfEqual/C#02 (0.06s) - --- SKIP: TestJumpIfEqual/eBPF#02 (0.00s) - --- PASS: TestJumpIfEqual/kernel#02 (0.00s) - --- SKIP: TestJumpIfEqual/C#03 (0.04s) - --- SKIP: TestJumpIfEqual/eBPF#03 (0.00s) - --- PASS: TestJumpIfEqual/kernel#03 (0.00s) - --- SKIP: TestJumpIfEqual/C#04 (0.04s) - --- SKIP: TestJumpIfEqual/eBPF#04 (0.00s) - --- PASS: TestJumpIfEqual/kernel#04 (0.05s) - --- SKIP: TestJumpIfEqual/C#05 (0.04s) - --- SKIP: TestJumpIfEqual/eBPF#05 (0.00s) - --- PASS: TestJumpIfEqual/kernel#05 (0.05s) - --- SKIP: TestJumpIfEqual/C#06 (0.04s) - --- SKIP: TestJumpIfEqual/eBPF#06 (0.00s) - --- PASS: TestJumpIfEqual/kernel#06 (0.05s) - --- SKIP: TestJumpIfEqual/C#07 (0.04s) - --- SKIP: TestJumpIfEqual/eBPF#07 (0.00s) - --- PASS: TestJumpIfEqual/kernel#07 (0.05s) -=== RUN TestJumpIfBitsSet/eBPF#10 + 24: Exit +=== RUN TestLoadIndirect/constant_valid/kernel#03 +=== RUN TestJumpIfBitsNotSet/C#08 +=== RUN TestJumpIfGreaterThan/C#08 +=== RUN TestLoadIndirect/constant_valid/C#04 +=== RUN TestLoadAbsoluteBigOffset/eBPF#03 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: Mov32Imm dst: r5 imm: 8 - 4: JSetReg dst: r4 off: -1 src: r5 + 2: Mov32Imm dst: r4 imm: 0 + 3: JaImm dst: r0 off: -1 imm: 0 + result: + 4: MovImm dst: r0 imm: 2 + 5: JEqImm dst: r4 off: -1 imm: 0 + 6: MovImm dst: r0 imm: 1 + return: + 7: Exit +=== RUN TestLoadAbsoluteBigOffset/kernel#03 +=== RUN TestLoadAbsoluteBigOffset/C#04 +=== RUN TestJumpIfLessOrEqual/eBPF#10 +=== RUN TestJumpIfLessThan/eBPF#08 +=== NAME TestJumpIfLessOrEqual/eBPF#10 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 22 + 3: Mov32Imm dst: r5 imm: 23 + 4: JLEReg dst: r4 off: -1 src: r5 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -5484,14 +5268,14 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestJumpIfBitsSet/kernel#10 -=== RUN TestJumpIfLessOrEqual/eBPF#08 +=== RUN TestJumpIfLessOrEqual/kernel#10 +=== NAME TestJumpIfLessThan/eBPF#08 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 22 - 3: JLEImm dst: r4 off: -1 imm: 23 + 3: JLTImm dst: r4 off: -1 imm: 23 filter_block_2: 4: Mov32Imm dst: r4 imm: 0 5: JaImm dst: r0 off: -1 imm: 0 @@ -5504,38 +5288,17 @@ 10: MovImm dst: r0 imm: 1 return: 11: Exit -=== RUN TestJumpIfLessOrEqual/kernel#08 -=== RUN TestJumpIfLessOrEqual/C#09 -=== RUN TestJumpIfBitsNotSet/eBPF#06 +=== RUN TestJumpIfLessThan/kernel#08 +=== RUN TestJumpIfLessOrEqual/C#11 +=== RUN TestJumpIfLessThan/C#09 +=== RUN TestJumpIfBitsSet/eBPF#10 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 6 - 3: Mov32Imm dst: r5 imm: 2 - 4: JSetReg dst: r4 off: -1 src: r5 - 5: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: - 6: Mov32Imm dst: r4 imm: 0 - 7: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 8: Mov32Imm dst: r4 imm: 1 - 9: JaImm dst: r0 off: -1 imm: 0 - result: - 10: MovImm dst: r0 imm: 2 - 11: JEqImm dst: r4 off: -1 imm: 0 - 12: MovImm dst: r0 imm: 1 - return: - 13: Exit -=== RUN TestJumpIfBitsNotSet/kernel#06 -=== RUN TestJumpIfLessThan/eBPF#06 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: Mov32Imm dst: r5 imm: 23 - 4: JLTReg dst: r4 off: -1 src: r5 + 3: Mov32Imm dst: r5 imm: 8 + 4: JSetReg dst: r4 off: -1 src: r5 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -5548,51 +5311,8 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestJumpIfLessThan/kernel#06 -=== RUN TestLoadIndirect/variable_valid/eBPF#02 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 4 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: LdXMemW dst: r4 src: r2 off: 0 imm: 0 - 6: SwapBE dst: r4 imm: 32 - 7: Mov32Reg dst: r5 src: r4 - 8: MovReg dst: r7 src: r5 - 9: LShImm dst: r7 imm: 32 - 10: ArShImm dst: r7 imm: 32 - 11: AddImm dst: r7 imm: -2147483641 - 12: JGEImm dst: r7 off: -1 imm: 65534 - 13: AddReg dst: r7 src: r2 - 14: MovReg dst: r6 src: r7 - 15: AddImm dst: r6 imm: 2 - 16: JGTReg dst: r6 off: -1 src: r3 - 17: LdXMemH dst: r4 src: r7 off: 0 imm: 0 - 18: SwapBE dst: r4 imm: 16 - 19: JEqImm dst: r4 off: -1 imm: 57005 - filter_block_4: - 20: Mov32Imm dst: r4 imm: 0 - 21: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 22: Mov32Imm dst: r4 imm: 1 - 23: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 24: MovImm dst: r4 imm: 0 - 25: JaImm dst: r0 off: -1 imm: 0 - result: - 26: MovImm dst: r0 imm: 2 - 27: JEqImm dst: r4 off: -1 imm: 0 - 28: MovImm dst: r0 imm: 1 - return: - 29: Exit -=== RUN TestLoadIndirect/variable_valid/kernel#02 -=== RUN TestLoadIndirect/variable_valid/C#03 -=== RUN TestJumpIfGreaterOrEqual/C#11 -=== RUN TestLoadAbsoluteBigOffset/C#07 -=== RUN TestJumpIfGreaterThan/C#09 -=== RUN TestJumpIfLessOrEqual/eBPF#09 +=== RUN TestJumpIfBitsSet/kernel#10 +=== RUN TestJumpIfGreaterOrEqual/eBPF#09 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -5600,7 +5320,7 @@ 2: Mov32Imm dst: r4 imm: 22 3: JEqImm dst: r4 off: -1 imm: 0 filter_block_2: - 4: JLEImm dst: r4 off: -1 imm: 23 + 4: JGEImm dst: r4 off: -1 imm: 23 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: 6: Mov32Imm dst: r4 imm: 1 @@ -5617,93 +5337,114 @@ 14: MovImm dst: r0 imm: 1 return: 15: Exit -=== RUN TestJumpIfLessOrEqual/kernel#09 -=== RUN TestJumpIfLessOrEqual/C#10 -=== RUN TestLoadIndirect/variable_valid/eBPF#03 +=== RUN TestJumpIfGreaterOrEqual/kernel#09 +=== RUN TestLoadAbsolute/eBPF#05 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 4 + 3: AddImm dst: r6 imm: 6 4: JGTReg dst: r6 off: -1 src: r3 - 5: LdXMemW dst: r4 src: r2 off: 0 imm: 0 + 5: LdXMemW dst: r4 src: r2 off: 2 imm: 0 6: SwapBE dst: r4 imm: 32 - 7: Mov32Reg dst: r5 src: r4 - 8: MovReg dst: r7 src: r5 - 9: LShImm dst: r7 imm: 32 - 10: ArShImm dst: r7 imm: 32 - 11: AddImm dst: r7 imm: -2147483641 - 12: JGEImm dst: r7 off: -1 imm: 65534 - 13: AddReg dst: r7 src: r2 - 14: MovReg dst: r6 src: r7 - 15: AddImm dst: r6 imm: 2 - 16: JGTReg dst: r6 off: -1 src: r3 - 17: LdXMemH dst: r4 src: r7 off: 0 imm: 0 - 18: SwapBE dst: r4 imm: 16 - 19: JEqImm dst: r4 off: -1 imm: 57005 - filter_block_4: - 20: Mov32Imm dst: r4 imm: 0 - 21: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 22: Mov32Imm dst: r4 imm: 1 - 23: JaImm dst: r0 off: -1 imm: 0 + 7: Mov32Imm dst: r6 imm: -558907665 + 8: JEqReg dst: r4 off: -1 src: r6 + filter_block_2: + 9: Mov32Imm dst: r4 imm: 0 + 10: JaImm dst: r0 off: -1 imm: 0 + filter_block_3: + 11: Mov32Imm dst: r4 imm: 1 + 12: JaImm dst: r0 off: -1 imm: 0 filter_nomatch: - 24: MovImm dst: r4 imm: 0 - 25: JaImm dst: r0 off: -1 imm: 0 + 13: MovImm dst: r4 imm: 0 + 14: JaImm dst: r0 off: -1 imm: 0 result: - 26: MovImm dst: r0 imm: 2 - 27: JEqImm dst: r4 off: -1 imm: 0 - 28: MovImm dst: r0 imm: 1 + 15: MovImm dst: r0 imm: 2 + 16: JEqImm dst: r4 off: -1 imm: 0 + 17: MovImm dst: r0 imm: 1 return: - 29: Exit -=== RUN TestJumpIfGreaterOrEqual/eBPF#11 -=== RUN TestLoadIndirect/variable_valid/kernel#03 -=== NAME TestJumpIfGreaterOrEqual/eBPF#11 + 18: Exit +=== RUN TestLoadAbsolute/kernel#05 +=== RUN TestJumpIfBitsSet/C#11 +=== RUN TestJumpIfGreaterOrEqual/C#10 +=== RUN TestJumpIfGreaterThan/eBPF#08 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 22 - 3: Mov32Imm dst: r5 imm: 23 - 4: JEqImm dst: r4 off: -1 imm: 0 + 3: JGTImm dst: r4 off: -1 imm: 23 + filter_block_2: + 4: Mov32Imm dst: r4 imm: 0 + 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: - 5: JGEReg dst: r4 off: -1 src: r5 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 9: Mov32Imm dst: r4 imm: 0 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_block_6: - 11: Mov32Imm dst: r4 imm: 1 - 12: JaImm dst: r0 off: -1 imm: 0 + 6: Mov32Imm dst: r4 imm: 1 + 7: JaImm dst: r0 off: -1 imm: 0 result: - 13: MovImm dst: r0 imm: 2 - 14: JEqImm dst: r4 off: -1 imm: 0 - 15: MovImm dst: r0 imm: 1 + 8: MovImm dst: r0 imm: 2 + 9: JEqImm dst: r4 off: -1 imm: 0 + 10: MovImm dst: r0 imm: 1 return: - 16: Exit -=== RUN TestJumpIfGreaterOrEqual/kernel#11 -=== RUN TestJumpIfBitsSet/C#11 -=== RUN TestLoadAbsoluteBigOffset/eBPF#07 + 11: Exit +=== RUN TestJumpIfGreaterThan/kernel#08 +=== RUN TestLoadIndirect/constant_valid/eBPF#04 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 0 - 3: JaImm dst: r0 off: -1 imm: 0 + 2: Mov32Imm dst: r5 imm: 1 + 3: MovReg dst: r7 src: r5 + 4: LShImm dst: r7 imm: 32 + 5: ArShImm dst: r7 imm: 32 + 6: AddImm dst: r7 imm: 2 + 7: JGEImm dst: r7 off: -1 imm: 65532 + 8: AddReg dst: r7 src: r2 + 9: MovReg dst: r6 src: r7 + 10: AddImm dst: r6 imm: 4 + 11: JGTReg dst: r6 off: -1 src: r3 + 12: LdXMemW dst: r4 src: r7 off: 0 imm: 0 + 13: SwapBE dst: r4 imm: 32 + 14: Mov32Imm dst: r6 imm: -559038737 + 15: JEqReg dst: r4 off: -1 src: r6 + filter_block_3: + 16: Mov32Imm dst: r4 imm: 0 + 17: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 18: Mov32Imm dst: r4 imm: 1 + 19: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 20: MovImm dst: r4 imm: 0 + 21: JaImm dst: r0 off: -1 imm: 0 result: - 4: MovImm dst: r0 imm: 2 - 5: JEqImm dst: r4 off: -1 imm: 0 - 6: MovImm dst: r0 imm: 1 + 22: MovImm dst: r0 imm: 2 + 23: JEqImm dst: r4 off: -1 imm: 0 + 24: MovImm dst: r0 imm: 1 return: - 7: Exit -=== RUN TestLoadAbsoluteBigOffset/kernel#07 -=== RUN TestJumpIfBitsNotSet/C#07 -=== RUN TestJumpIfLessThan/C#07 -=== RUN TestJumpIfGreaterThan/eBPF#09 + 25: Exit +=== RUN TestLoadIndirect/constant_valid/kernel#04 +=== RUN TestLoadIndirect/constant_valid/C#05 +--- PASS: TestLoadAbsolute (2.11s) + --- SKIP: TestLoadAbsolute/C (0.30s) + --- SKIP: TestLoadAbsolute/eBPF (0.00s) + --- PASS: TestLoadAbsolute/kernel (0.00s) + --- SKIP: TestLoadAbsolute/C#01 (0.44s) + --- SKIP: TestLoadAbsolute/eBPF#01 (0.00s) + --- PASS: TestLoadAbsolute/kernel#01 (0.07s) + --- SKIP: TestLoadAbsolute/C#02 (0.39s) + --- SKIP: TestLoadAbsolute/eBPF#02 (0.00s) + --- PASS: TestLoadAbsolute/kernel#02 (0.00s) + --- SKIP: TestLoadAbsolute/C#03 (0.34s) + --- SKIP: TestLoadAbsolute/eBPF#03 (0.00s) + --- PASS: TestLoadAbsolute/kernel#03 (0.05s) + --- SKIP: TestLoadAbsolute/C#04 (0.19s) + --- SKIP: TestLoadAbsolute/eBPF#04 (0.00s) + --- PASS: TestLoadAbsolute/kernel#04 (0.00s) + --- SKIP: TestLoadAbsolute/C#05 (0.25s) + --- SKIP: TestLoadAbsolute/eBPF#05 (0.00s) + --- PASS: TestLoadAbsolute/kernel#05 (0.05s) +=== RUN TestJumpIfGreaterThan/C#09 +=== RUN TestJumpIfLessThan/eBPF#09 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -5711,7 +5452,7 @@ 2: Mov32Imm dst: r4 imm: 22 3: JEqImm dst: r4 off: -1 imm: 0 filter_block_2: - 4: JGTImm dst: r4 off: -1 imm: 23 + 4: JLTImm dst: r4 off: -1 imm: 23 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: 6: Mov32Imm dst: r4 imm: 1 @@ -5728,19 +5469,20 @@ 14: MovImm dst: r0 imm: 1 return: 15: Exit -=== RUN TestJumpIfGreaterThan/kernel#09 -=== RUN TestJumpIfLessOrEqual/eBPF#10 +=== RUN TestJumpIfLessThan/kernel#09 +=== RUN TestJumpIfLessThan/C#10 +=== RUN TestJumpIfBitsNotSet/eBPF#08 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 22 - 3: Mov32Imm dst: r5 imm: 23 - 4: JLEReg dst: r4 off: -1 src: r5 - filter_block_3: + 2: Mov32Imm dst: r4 imm: 6 + 3: JSetImm dst: r4 off: -1 imm: 8 + 4: JaImm dst: r0 off: -1 imm: 0 + filter_block_2: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: + filter_block_3: 7: Mov32Imm dst: r4 imm: 1 8: JaImm dst: r0 off: -1 imm: 0 result: @@ -5749,153 +5491,8 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestJumpIfLessOrEqual/kernel#10 -=== RUN TestJumpIfLessOrEqual/C#11 -=== RUN TestJumpIfBitsSet/eBPF#11 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: Mov32Imm dst: r5 imm: 8 - 4: JEqImm dst: r4 off: -1 imm: 0 - filter_block_3: - 5: JSetReg dst: r4 off: -1 src: r5 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 9: Mov32Imm dst: r4 imm: 0 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_block_6: - 11: Mov32Imm dst: r4 imm: 1 - 12: JaImm dst: r0 off: -1 imm: 0 - result: - 13: MovImm dst: r0 imm: 2 - 14: JEqImm dst: r4 off: -1 imm: 0 - 15: MovImm dst: r0 imm: 1 - return: - 16: Exit -=== RUN TestJumpIfBitsSet/kernel#11 -=== RUN TestJumpIfBitsNotSet/eBPF#07 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: Mov32Imm dst: r5 imm: 2 - 4: JEqImm dst: r4 off: -1 imm: 0 - filter_block_3: - 5: JSetReg dst: r4 off: -1 src: r5 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 9: Mov32Imm dst: r4 imm: 0 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_block_6: - 11: Mov32Imm dst: r4 imm: 1 - 12: JaImm dst: r0 off: -1 imm: 0 - result: - 13: MovImm dst: r0 imm: 2 - 14: JEqImm dst: r4 off: -1 imm: 0 - 15: MovImm dst: r0 imm: 1 - return: - 16: Exit -=== RUN TestJumpIfBitsNotSet/kernel#07 -=== RUN TestJumpIfLessThan/eBPF#07 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: Mov32Imm dst: r4 imm: 23 - 3: Mov32Imm dst: r5 imm: 23 - 4: JEqImm dst: r4 off: -1 imm: 0 - filter_block_3: - 5: JLTReg dst: r4 off: -1 src: r5 - 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 - filter_block_5: - 9: Mov32Imm dst: r4 imm: 0 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_block_6: - 11: Mov32Imm dst: r4 imm: 1 - 12: JaImm dst: r0 off: -1 imm: 0 - result: - 13: MovImm dst: r0 imm: 2 - 14: JEqImm dst: r4 off: -1 imm: 0 - 15: MovImm dst: r0 imm: 1 - return: - 16: Exit -=== RUN TestJumpIfLessThan/kernel#07 ---- PASS: TestJumpIfGreaterOrEqual (0.76s) - --- SKIP: TestJumpIfGreaterOrEqual/C (0.06s) - --- SKIP: TestJumpIfGreaterOrEqual/eBPF (0.00s) - --- PASS: TestJumpIfGreaterOrEqual/kernel (0.00s) - --- SKIP: TestJumpIfGreaterOrEqual/C#01 (0.06s) - --- SKIP: TestJumpIfGreaterOrEqual/eBPF#01 (0.00s) - --- PASS: TestJumpIfGreaterOrEqual/kernel#01 (0.00s) - --- SKIP: TestJumpIfGreaterOrEqual/C#02 (0.05s) - --- SKIP: TestJumpIfGreaterOrEqual/eBPF#02 (0.00s) - --- PASS: TestJumpIfGreaterOrEqual/kernel#02 (0.00s) - --- SKIP: TestJumpIfGreaterOrEqual/C#03 (0.04s) - --- SKIP: TestJumpIfGreaterOrEqual/eBPF#03 (0.00s) - --- PASS: TestJumpIfGreaterOrEqual/kernel#03 (0.00s) - --- SKIP: TestJumpIfGreaterOrEqual/C#04 (0.04s) - --- SKIP: TestJumpIfGreaterOrEqual/eBPF#04 (0.00s) - --- PASS: TestJumpIfGreaterOrEqual/kernel#04 (0.00s) - --- SKIP: TestJumpIfGreaterOrEqual/C#05 (0.04s) - --- SKIP: TestJumpIfGreaterOrEqual/eBPF#05 (0.00s) - --- PASS: TestJumpIfGreaterOrEqual/kernel#05 (0.00s) - --- SKIP: TestJumpIfGreaterOrEqual/C#06 (0.04s) - --- SKIP: TestJumpIfGreaterOrEqual/eBPF#06 (0.00s) - --- PASS: TestJumpIfGreaterOrEqual/kernel#06 (0.00s) - --- SKIP: TestJumpIfGreaterOrEqual/C#07 (0.04s) - --- SKIP: TestJumpIfGreaterOrEqual/eBPF#07 (0.00s) - --- PASS: TestJumpIfGreaterOrEqual/kernel#07 (0.00s) - --- SKIP: TestJumpIfGreaterOrEqual/C#08 (0.04s) - --- SKIP: TestJumpIfGreaterOrEqual/eBPF#08 (0.00s) - --- PASS: TestJumpIfGreaterOrEqual/kernel#08 (0.05s) - --- SKIP: TestJumpIfGreaterOrEqual/C#09 (0.04s) - --- SKIP: TestJumpIfGreaterOrEqual/eBPF#09 (0.00s) - --- PASS: TestJumpIfGreaterOrEqual/kernel#09 (0.05s) - --- SKIP: TestJumpIfGreaterOrEqual/C#10 (0.05s) - --- SKIP: TestJumpIfGreaterOrEqual/eBPF#10 (0.00s) - --- PASS: TestJumpIfGreaterOrEqual/kernel#10 (0.05s) - --- SKIP: TestJumpIfGreaterOrEqual/C#11 (0.04s) - --- SKIP: TestJumpIfGreaterOrEqual/eBPF#11 (0.00s) - --- PASS: TestJumpIfGreaterOrEqual/kernel#11 (0.05s) -=== RUN TestLoadIndirect/variable_valid/C#04 ---- PASS: TestLoadAbsoluteBigOffset (0.76s) - --- SKIP: TestLoadAbsoluteBigOffset/C (0.06s) - --- SKIP: TestLoadAbsoluteBigOffset/eBPF (0.00s) - --- PASS: TestLoadAbsoluteBigOffset/kernel (0.05s) - --- SKIP: TestLoadAbsoluteBigOffset/C#01 (0.04s) - --- SKIP: TestLoadAbsoluteBigOffset/eBPF#01 (0.00s) - --- PASS: TestLoadAbsoluteBigOffset/kernel#01 (0.05s) - --- SKIP: TestLoadAbsoluteBigOffset/C#02 (0.05s) - --- SKIP: TestLoadAbsoluteBigOffset/eBPF#02 (0.00s) - --- PASS: TestLoadAbsoluteBigOffset/kernel#02 (0.05s) - --- SKIP: TestLoadAbsoluteBigOffset/C#03 (0.04s) - --- SKIP: TestLoadAbsoluteBigOffset/eBPF#03 (0.00s) - --- PASS: TestLoadAbsoluteBigOffset/kernel#03 (0.05s) - --- SKIP: TestLoadAbsoluteBigOffset/C#04 (0.04s) - --- SKIP: TestLoadAbsoluteBigOffset/eBPF#04 (0.00s) - --- PASS: TestLoadAbsoluteBigOffset/kernel#04 (0.05s) - --- SKIP: TestLoadAbsoluteBigOffset/C#05 (0.04s) - --- SKIP: TestLoadAbsoluteBigOffset/eBPF#05 (0.00s) - --- PASS: TestLoadAbsoluteBigOffset/kernel#05 (0.05s) - --- SKIP: TestLoadAbsoluteBigOffset/C#06 (0.04s) - --- SKIP: TestLoadAbsoluteBigOffset/eBPF#06 (0.00s) - --- PASS: TestLoadAbsoluteBigOffset/kernel#06 (0.05s) - --- SKIP: TestLoadAbsoluteBigOffset/C#07 (0.04s) - --- SKIP: TestLoadAbsoluteBigOffset/eBPF#07 (0.00s) - --- PASS: TestLoadAbsoluteBigOffset/kernel#07 (0.05s) -=== RUN TestJumpIfGreaterThan/C#10 +=== RUN TestJumpIfBitsNotSet/kernel#08 +=== RUN TestJumpIfBitsNotSet/C#09 === RUN TestJumpIfLessOrEqual/eBPF#11 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 @@ -5923,131 +5520,103 @@ return: 16: Exit === RUN TestJumpIfLessOrEqual/kernel#11 ---- PASS: TestJumpIfLessOrEqual (0.78s) - --- SKIP: TestJumpIfLessOrEqual/C (0.05s) +--- PASS: TestJumpIfLessOrEqual (3.70s) + --- SKIP: TestJumpIfLessOrEqual/C (0.50s) --- SKIP: TestJumpIfLessOrEqual/eBPF (0.00s) --- PASS: TestJumpIfLessOrEqual/kernel (0.05s) - --- SKIP: TestJumpIfLessOrEqual/C#01 (0.05s) + --- SKIP: TestJumpIfLessOrEqual/C#01 (0.26s) --- SKIP: TestJumpIfLessOrEqual/eBPF#01 (0.00s) --- PASS: TestJumpIfLessOrEqual/kernel#01 (0.05s) - --- SKIP: TestJumpIfLessOrEqual/C#02 (0.04s) + --- SKIP: TestJumpIfLessOrEqual/C#02 (0.38s) --- SKIP: TestJumpIfLessOrEqual/eBPF#02 (0.00s) --- PASS: TestJumpIfLessOrEqual/kernel#02 (0.05s) - --- SKIP: TestJumpIfLessOrEqual/C#03 (0.04s) + --- SKIP: TestJumpIfLessOrEqual/C#03 (0.19s) --- SKIP: TestJumpIfLessOrEqual/eBPF#03 (0.00s) - --- PASS: TestJumpIfLessOrEqual/kernel#03 (0.05s) - --- SKIP: TestJumpIfLessOrEqual/C#04 (0.04s) + --- PASS: TestJumpIfLessOrEqual/kernel#03 (0.06s) + --- SKIP: TestJumpIfLessOrEqual/C#04 (0.20s) --- SKIP: TestJumpIfLessOrEqual/eBPF#04 (0.00s) --- PASS: TestJumpIfLessOrEqual/kernel#04 (0.00s) - --- SKIP: TestJumpIfLessOrEqual/C#05 (0.04s) + --- SKIP: TestJumpIfLessOrEqual/C#05 (0.27s) --- SKIP: TestJumpIfLessOrEqual/eBPF#05 (0.00s) --- PASS: TestJumpIfLessOrEqual/kernel#05 (0.00s) - --- SKIP: TestJumpIfLessOrEqual/C#06 (0.04s) + --- SKIP: TestJumpIfLessOrEqual/C#06 (0.29s) --- SKIP: TestJumpIfLessOrEqual/eBPF#06 (0.00s) --- PASS: TestJumpIfLessOrEqual/kernel#06 (0.00s) - --- SKIP: TestJumpIfLessOrEqual/C#07 (0.04s) + --- SKIP: TestJumpIfLessOrEqual/C#07 (0.21s) --- SKIP: TestJumpIfLessOrEqual/eBPF#07 (0.00s) --- PASS: TestJumpIfLessOrEqual/kernel#07 (0.00s) - --- SKIP: TestJumpIfLessOrEqual/C#08 (0.04s) + --- SKIP: TestJumpIfLessOrEqual/C#08 (0.30s) --- SKIP: TestJumpIfLessOrEqual/eBPF#08 (0.00s) --- PASS: TestJumpIfLessOrEqual/kernel#08 (0.00s) - --- SKIP: TestJumpIfLessOrEqual/C#09 (0.04s) + --- SKIP: TestJumpIfLessOrEqual/C#09 (0.18s) --- SKIP: TestJumpIfLessOrEqual/eBPF#09 (0.00s) --- PASS: TestJumpIfLessOrEqual/kernel#09 (0.00s) - --- SKIP: TestJumpIfLessOrEqual/C#10 (0.04s) + --- SKIP: TestJumpIfLessOrEqual/C#10 (0.41s) --- SKIP: TestJumpIfLessOrEqual/eBPF#10 (0.00s) --- PASS: TestJumpIfLessOrEqual/kernel#10 (0.00s) - --- SKIP: TestJumpIfLessOrEqual/C#11 (0.04s) + --- SKIP: TestJumpIfLessOrEqual/C#11 (0.24s) --- SKIP: TestJumpIfLessOrEqual/eBPF#11 (0.00s) --- PASS: TestJumpIfLessOrEqual/kernel#11 (0.00s) ---- PASS: TestJumpIfBitsSet (0.79s) - --- SKIP: TestJumpIfBitsSet/C (0.09s) - --- SKIP: TestJumpIfBitsSet/eBPF (0.00s) - --- PASS: TestJumpIfBitsSet/kernel (0.00s) - --- SKIP: TestJumpIfBitsSet/C#01 (0.06s) - --- SKIP: TestJumpIfBitsSet/eBPF#01 (0.00s) - --- PASS: TestJumpIfBitsSet/kernel#01 (0.00s) - --- SKIP: TestJumpIfBitsSet/C#02 (0.05s) - --- SKIP: TestJumpIfBitsSet/eBPF#02 (0.00s) - --- PASS: TestJumpIfBitsSet/kernel#02 (0.00s) - --- SKIP: TestJumpIfBitsSet/C#03 (0.04s) - --- SKIP: TestJumpIfBitsSet/eBPF#03 (0.00s) - --- PASS: TestJumpIfBitsSet/kernel#03 (0.00s) - --- SKIP: TestJumpIfBitsSet/C#04 (0.04s) - --- SKIP: TestJumpIfBitsSet/eBPF#04 (0.00s) - --- PASS: TestJumpIfBitsSet/kernel#04 (0.00s) - --- SKIP: TestJumpIfBitsSet/C#05 (0.04s) - --- SKIP: TestJumpIfBitsSet/eBPF#05 (0.00s) - --- PASS: TestJumpIfBitsSet/kernel#05 (0.00s) - --- SKIP: TestJumpIfBitsSet/C#06 (0.04s) - --- SKIP: TestJumpIfBitsSet/eBPF#06 (0.00s) - --- PASS: TestJumpIfBitsSet/kernel#06 (0.00s) - --- SKIP: TestJumpIfBitsSet/C#07 (0.04s) - --- SKIP: TestJumpIfBitsSet/eBPF#07 (0.00s) - --- PASS: TestJumpIfBitsSet/kernel#07 (0.00s) - --- SKIP: TestJumpIfBitsSet/C#08 (0.04s) - --- SKIP: TestJumpIfBitsSet/eBPF#08 (0.00s) - --- PASS: TestJumpIfBitsSet/kernel#08 (0.05s) - --- SKIP: TestJumpIfBitsSet/C#09 (0.04s) - --- SKIP: TestJumpIfBitsSet/eBPF#09 (0.00s) - --- PASS: TestJumpIfBitsSet/kernel#09 (0.05s) - --- SKIP: TestJumpIfBitsSet/C#10 (0.04s) - --- SKIP: TestJumpIfBitsSet/eBPF#10 (0.00s) - --- PASS: TestJumpIfBitsSet/kernel#10 (0.05s) - --- SKIP: TestJumpIfBitsSet/C#11 (0.04s) - --- SKIP: TestJumpIfBitsSet/eBPF#11 (0.00s) - --- PASS: TestJumpIfBitsSet/kernel#11 (0.05s) -=== RUN TestJumpIfLessThan/C#08 -=== RUN TestJumpIfBitsNotSet/C#08 -=== RUN TestLoadIndirect/variable_valid/eBPF#04 +=== RUN TestJumpIfBitsSet/eBPF#11 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 4 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: LdXMemW dst: r4 src: r2 off: 0 imm: 0 - 6: SwapBE dst: r4 imm: 32 - 7: Mov32Reg dst: r5 src: r4 - 8: MovReg dst: r7 src: r5 - 9: LShImm dst: r7 imm: 32 - 10: ArShImm dst: r7 imm: 32 - 11: AddImm dst: r7 imm: 4 - 12: JGEImm dst: r7 off: -1 imm: 65532 - 13: AddReg dst: r7 src: r2 - 14: MovReg dst: r6 src: r7 - 15: AddImm dst: r6 imm: 4 - 16: JGTReg dst: r6 off: -1 src: r3 - 17: LdXMemW dst: r4 src: r7 off: 0 imm: 0 - 18: SwapBE dst: r4 imm: 32 - 19: Mov32Imm dst: r6 imm: -559038737 - 20: JEqReg dst: r4 off: -1 src: r6 + 2: Mov32Imm dst: r4 imm: 6 + 3: Mov32Imm dst: r5 imm: 8 + 4: JEqImm dst: r4 off: -1 imm: 0 + filter_block_3: + 5: JSetReg dst: r4 off: -1 src: r5 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 21: Mov32Imm dst: r4 imm: 0 - 22: JaImm dst: r0 off: -1 imm: 0 + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 filter_block_5: - 23: Mov32Imm dst: r4 imm: 1 - 24: JaImm dst: r0 off: -1 imm: 0 + 9: Mov32Imm dst: r4 imm: 0 + 10: JaImm dst: r0 off: -1 imm: 0 + filter_block_6: + 11: Mov32Imm dst: r4 imm: 1 + 12: JaImm dst: r0 off: -1 imm: 0 + result: + 13: MovImm dst: r0 imm: 2 + 14: JEqImm dst: r4 off: -1 imm: 0 + 15: MovImm dst: r0 imm: 1 + return: + 16: Exit +=== RUN TestJumpIfBitsSet/kernel#11 +=== RUN TestLoadAbsoluteBigOffset/eBPF#04 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 65535 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: MovReg dst: r6 src: r2 + 6: AddImm dst: r6 imm: 65531 + 7: LdXMemW dst: r4 src: r6 off: 0 imm: 0 + 8: SwapBE dst: r4 imm: 32 + 9: Add32Imm dst: r4 imm: 2 + 10: Mov32Reg dst: r4 src: r4 + 11: JaImm dst: r0 off: -1 imm: 0 filter_nomatch: - 25: MovImm dst: r4 imm: 0 - 26: JaImm dst: r0 off: -1 imm: 0 + 12: MovImm dst: r4 imm: 0 + 13: JaImm dst: r0 off: -1 imm: 0 result: - 27: MovImm dst: r0 imm: 2 - 28: JEqImm dst: r4 off: -1 imm: 0 - 29: MovImm dst: r0 imm: 1 + 14: MovImm dst: r0 imm: 2 + 15: JEqImm dst: r4 off: -1 imm: 0 + 16: MovImm dst: r0 imm: 1 return: - 30: Exit -=== RUN TestLoadIndirect/variable_valid/kernel#04 -=== RUN TestLoadIndirect/variable_valid/C#05 -=== RUN TestJumpIfGreaterThan/eBPF#10 + 17: Exit +=== RUN TestLoadAbsoluteBigOffset/kernel#04 +=== RUN TestJumpIfGreaterOrEqual/eBPF#10 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 22 3: Mov32Imm dst: r5 imm: 23 - 4: JGTReg dst: r4 off: -1 src: r5 + 4: JGEReg dst: r4 off: -1 src: r5 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -6060,80 +5629,45 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestJumpIfGreaterThan/kernel#10 -=== RUN TestJumpIfLessThan/eBPF#08 +=== RUN TestJumpIfGreaterOrEqual/kernel#10 +=== RUN TestJumpIfGreaterThan/eBPF#09 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 22 - 3: JLTImm dst: r4 off: -1 imm: 23 + 3: JEqImm dst: r4 off: -1 imm: 0 filter_block_2: - 4: Mov32Imm dst: r4 imm: 0 - 5: JaImm dst: r0 off: -1 imm: 0 + 4: JGTImm dst: r4 off: -1 imm: 23 + 5: JaImm dst: r0 off: -1 imm: 0 filter_block_3: 6: Mov32Imm dst: r4 imm: 1 7: JaImm dst: r0 off: -1 imm: 0 - result: - 8: MovImm dst: r0 imm: 2 - 9: JEqImm dst: r4 off: -1 imm: 0 - 10: MovImm dst: r0 imm: 1 - return: - 11: Exit -=== RUN TestJumpIfLessThan/kernel#08 -=== RUN TestJumpIfLessThan/C#09 -=== RUN TestLoadIndirect/variable_valid/eBPF#05 - ebpf_test.go:17: - 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 - 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 - filter_block_0: - 2: MovReg dst: r6 src: r2 - 3: AddImm dst: r6 imm: 4 - 4: JGTReg dst: r6 off: -1 src: r3 - 5: LdXMemW dst: r4 src: r2 off: 0 imm: 0 - 6: SwapBE dst: r4 imm: 32 - 7: Mov32Reg dst: r5 src: r4 - 8: MovReg dst: r7 src: r5 - 9: LShImm dst: r7 imm: 32 - 10: ArShImm dst: r7 imm: 32 - 11: AddImm dst: r7 imm: 4 - 12: JGEImm dst: r7 off: -1 imm: 65532 - 13: AddReg dst: r7 src: r2 - 14: MovReg dst: r6 src: r7 - 15: AddImm dst: r6 imm: 4 - 16: JGTReg dst: r6 off: -1 src: r3 - 17: LdXMemW dst: r4 src: r7 off: 0 imm: 0 - 18: SwapBE dst: r4 imm: 32 - 19: Mov32Imm dst: r6 imm: -559038737 - 20: JEqReg dst: r4 off: -1 src: r6 filter_block_4: - 21: Mov32Imm dst: r4 imm: 0 - 22: JaImm dst: r0 off: -1 imm: 0 + 8: Mov32Imm dst: r4 imm: 0 + 9: JaImm dst: r0 off: -1 imm: 0 filter_block_5: - 23: Mov32Imm dst: r4 imm: 1 - 24: JaImm dst: r0 off: -1 imm: 0 - filter_nomatch: - 25: MovImm dst: r4 imm: 0 - 26: JaImm dst: r0 off: -1 imm: 0 + 10: Mov32Imm dst: r4 imm: 1 + 11: JaImm dst: r0 off: -1 imm: 0 result: - 27: MovImm dst: r0 imm: 2 - 28: JEqImm dst: r4 off: -1 imm: 0 - 29: MovImm dst: r0 imm: 1 + 12: MovImm dst: r0 imm: 2 + 13: JEqImm dst: r4 off: -1 imm: 0 + 14: MovImm dst: r0 imm: 1 return: - 30: Exit -=== RUN TestLoadIndirect/variable_valid/kernel#05 -=== RUN TestJumpIfBitsNotSet/eBPF#08 + 15: Exit +=== RUN TestJumpIfGreaterThan/kernel#09 +=== RUN TestJumpIfLessThan/eBPF#10 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 6 - 3: JSetImm dst: r4 off: -1 imm: 8 - 4: JaImm dst: r0 off: -1 imm: 0 - filter_block_2: + 2: Mov32Imm dst: r4 imm: 22 + 3: Mov32Imm dst: r5 imm: 23 + 4: JLTReg dst: r4 off: -1 src: r5 + filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 - filter_block_3: + filter_block_4: 7: Mov32Imm dst: r4 imm: 1 8: JaImm dst: r0 off: -1 imm: 0 result: @@ -6142,12 +5676,49 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestJumpIfBitsNotSet/kernel#08 -=== RUN TestJumpIfBitsNotSet/C#09 -=== RUN TestJumpIfGreaterThan/C#11 +=== RUN TestJumpIfLessThan/kernel#10 +=== RUN TestJumpIfLessThan/C#11 +=== RUN TestLoadAbsoluteBigOffset/C#05 +--- PASS: TestJumpIfBitsSet (3.86s) + --- SKIP: TestJumpIfBitsSet/C (0.29s) + --- SKIP: TestJumpIfBitsSet/eBPF (0.00s) + --- PASS: TestJumpIfBitsSet/kernel (0.00s) + --- SKIP: TestJumpIfBitsSet/C#01 (0.34s) + --- SKIP: TestJumpIfBitsSet/eBPF#01 (0.00s) + --- PASS: TestJumpIfBitsSet/kernel#01 (0.00s) + --- SKIP: TestJumpIfBitsSet/C#02 (0.27s) + --- SKIP: TestJumpIfBitsSet/eBPF#02 (0.00s) + --- PASS: TestJumpIfBitsSet/kernel#02 (0.00s) + --- SKIP: TestJumpIfBitsSet/C#03 (0.19s) + --- SKIP: TestJumpIfBitsSet/eBPF#03 (0.00s) + --- PASS: TestJumpIfBitsSet/kernel#03 (0.00s) + --- SKIP: TestJumpIfBitsSet/C#04 (0.25s) + --- SKIP: TestJumpIfBitsSet/eBPF#04 (0.00s) + --- PASS: TestJumpIfBitsSet/kernel#04 (0.00s) + --- SKIP: TestJumpIfBitsSet/C#05 (0.34s) + --- SKIP: TestJumpIfBitsSet/eBPF#05 (0.02s) + --- PASS: TestJumpIfBitsSet/kernel#05 (0.00s) + --- SKIP: TestJumpIfBitsSet/C#06 (0.25s) + --- SKIP: TestJumpIfBitsSet/eBPF#06 (0.00s) + --- PASS: TestJumpIfBitsSet/kernel#06 (0.00s) + --- SKIP: TestJumpIfBitsSet/C#07 (0.37s) + --- SKIP: TestJumpIfBitsSet/eBPF#07 (0.00s) + --- PASS: TestJumpIfBitsSet/kernel#07 (0.00s) + --- SKIP: TestJumpIfBitsSet/C#08 (0.48s) + --- SKIP: TestJumpIfBitsSet/eBPF#08 (0.00s) + --- PASS: TestJumpIfBitsSet/kernel#08 (0.05s) + --- SKIP: TestJumpIfBitsSet/C#09 (0.25s) + --- SKIP: TestJumpIfBitsSet/eBPF#09 (0.00s) + --- PASS: TestJumpIfBitsSet/kernel#09 (0.05s) + --- SKIP: TestJumpIfBitsSet/C#10 (0.28s) + --- SKIP: TestJumpIfBitsSet/eBPF#10 (0.00s) + --- PASS: TestJumpIfBitsSet/kernel#10 (0.05s) + --- SKIP: TestJumpIfBitsSet/C#11 (0.28s) + --- SKIP: TestJumpIfBitsSet/eBPF#11 (0.00s) + --- PASS: TestJumpIfBitsSet/kernel#11 (0.05s) +=== RUN TestJumpIfGreaterOrEqual/C#11 +=== RUN TestJumpIfGreaterThan/C#10 === RUN TestJumpIfBitsNotSet/eBPF#09 -=== RUN TestJumpIfLessThan/eBPF#09 -=== NAME TestJumpIfBitsNotSet/eBPF#09 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -6173,37 +5744,109 @@ return: 15: Exit === RUN TestJumpIfBitsNotSet/kernel#09 -=== NAME TestJumpIfLessThan/eBPF#09 +=== RUN TestJumpIfBitsNotSet/C#10 +=== RUN TestLoadIndirect/constant_valid/eBPF#05 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r5 imm: 1 + 3: MovReg dst: r7 src: r5 + 4: LShImm dst: r7 imm: 32 + 5: ArShImm dst: r7 imm: 32 + 6: AddImm dst: r7 imm: 2 + 7: JGEImm dst: r7 off: -1 imm: 65532 + 8: AddReg dst: r7 src: r2 + 9: MovReg dst: r6 src: r7 + 10: AddImm dst: r6 imm: 4 + 11: JGTReg dst: r6 off: -1 src: r3 + 12: LdXMemW dst: r4 src: r7 off: 0 imm: 0 + 13: SwapBE dst: r4 imm: 32 + 14: Mov32Imm dst: r6 imm: -559038737 + 15: JEqReg dst: r4 off: -1 src: r6 + filter_block_3: + 16: Mov32Imm dst: r4 imm: 0 + 17: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 18: Mov32Imm dst: r4 imm: 1 + 19: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 20: MovImm dst: r4 imm: 0 + 21: JaImm dst: r0 off: -1 imm: 0 + result: + 22: MovImm dst: r0 imm: 2 + 23: JEqImm dst: r4 off: -1 imm: 0 + 24: MovImm dst: r0 imm: 1 + return: + 25: Exit +=== RUN TestLoadIndirect/constant_valid/kernel#05 +=== RUN TestLoadIndirect/variable_valid +=== RUN TestLoadIndirect/variable_valid/C +=== RUN TestJumpIfLessThan/eBPF#11 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 22 - 3: JEqImm dst: r4 off: -1 imm: 0 - filter_block_2: - 4: JLTImm dst: r4 off: -1 imm: 23 - 5: JaImm dst: r0 off: -1 imm: 0 + 3: Mov32Imm dst: r5 imm: 23 + 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 6: Mov32Imm dst: r4 imm: 1 - 7: JaImm dst: r0 off: -1 imm: 0 + 5: JLTReg dst: r4 off: -1 src: r5 + 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: - 8: Mov32Imm dst: r4 imm: 0 - 9: JaImm dst: r0 off: -1 imm: 0 + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 filter_block_5: - 10: Mov32Imm dst: r4 imm: 1 - 11: JaImm dst: r0 off: -1 imm: 0 + 9: Mov32Imm dst: r4 imm: 0 + 10: JaImm dst: r0 off: -1 imm: 0 + filter_block_6: + 11: Mov32Imm dst: r4 imm: 1 + 12: JaImm dst: r0 off: -1 imm: 0 result: - 12: MovImm dst: r0 imm: 2 - 13: JEqImm dst: r4 off: -1 imm: 0 - 14: MovImm dst: r0 imm: 1 + 13: MovImm dst: r0 imm: 2 + 14: JEqImm dst: r4 off: -1 imm: 0 + 15: MovImm dst: r0 imm: 1 return: - 15: Exit -=== RUN TestJumpIfLessThan/kernel#09 -=== RUN TestJumpIfLessThan/C#10 -=== RUN TestJumpIfBitsNotSet/C#10 -=== RUN TestLoadIndirect/constant_outofbounds -=== RUN TestLoadIndirect/constant_outofbounds/C -=== RUN TestJumpIfGreaterThan/eBPF#11 + 16: Exit +=== RUN TestJumpIfLessThan/kernel#11 +--- PASS: TestJumpIfLessThan (4.08s) + --- SKIP: TestJumpIfLessThan/C (0.28s) + --- SKIP: TestJumpIfLessThan/eBPF (0.00s) + --- PASS: TestJumpIfLessThan/kernel (0.05s) + --- SKIP: TestJumpIfLessThan/C#01 (0.30s) + --- SKIP: TestJumpIfLessThan/eBPF#01 (0.00s) + --- PASS: TestJumpIfLessThan/kernel#01 (0.07s) + --- SKIP: TestJumpIfLessThan/C#02 (0.37s) + --- SKIP: TestJumpIfLessThan/eBPF#02 (0.00s) + --- PASS: TestJumpIfLessThan/kernel#02 (0.05s) + --- SKIP: TestJumpIfLessThan/C#03 (0.39s) + --- SKIP: TestJumpIfLessThan/eBPF#03 (0.00s) + --- PASS: TestJumpIfLessThan/kernel#03 (0.05s) + --- SKIP: TestJumpIfLessThan/C#04 (0.43s) + --- SKIP: TestJumpIfLessThan/eBPF#04 (0.00s) + --- PASS: TestJumpIfLessThan/kernel#04 (0.05s) + --- SKIP: TestJumpIfLessThan/C#05 (0.36s) + --- SKIP: TestJumpIfLessThan/eBPF#05 (0.00s) + --- PASS: TestJumpIfLessThan/kernel#05 (0.05s) + --- SKIP: TestJumpIfLessThan/C#06 (0.29s) + --- SKIP: TestJumpIfLessThan/eBPF#06 (0.00s) + --- PASS: TestJumpIfLessThan/kernel#06 (0.05s) + --- SKIP: TestJumpIfLessThan/C#07 (0.34s) + --- SKIP: TestJumpIfLessThan/eBPF#07 (0.00s) + --- PASS: TestJumpIfLessThan/kernel#07 (0.05s) + --- SKIP: TestJumpIfLessThan/C#08 (0.24s) + --- SKIP: TestJumpIfLessThan/eBPF#08 (0.00s) + --- PASS: TestJumpIfLessThan/kernel#08 (0.00s) + --- SKIP: TestJumpIfLessThan/C#09 (0.20s) + --- SKIP: TestJumpIfLessThan/eBPF#09 (0.00s) + --- PASS: TestJumpIfLessThan/kernel#09 (0.00s) + --- SKIP: TestJumpIfLessThan/C#10 (0.18s) + --- SKIP: TestJumpIfLessThan/eBPF#10 (0.00s) + --- PASS: TestJumpIfLessThan/kernel#10 (0.00s) + --- SKIP: TestJumpIfLessThan/C#11 (0.22s) + --- SKIP: TestJumpIfLessThan/eBPF#11 (0.00s) + --- PASS: TestJumpIfLessThan/kernel#11 (0.00s) +=== RUN TestJumpIfGreaterOrEqual/eBPF#11 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -6212,7 +5855,7 @@ 3: Mov32Imm dst: r5 imm: 23 4: JEqImm dst: r4 off: -1 imm: 0 filter_block_3: - 5: JGTReg dst: r4 off: -1 src: r5 + 5: JGEReg dst: r4 off: -1 src: r5 6: JaImm dst: r0 off: -1 imm: 0 filter_block_4: 7: Mov32Imm dst: r4 imm: 1 @@ -6229,15 +5872,15 @@ 15: MovImm dst: r0 imm: 1 return: 16: Exit -=== RUN TestJumpIfGreaterThan/kernel#11 -=== RUN TestJumpIfLessThan/eBPF#10 +=== RUN TestJumpIfGreaterOrEqual/kernel#11 +=== RUN TestJumpIfGreaterThan/eBPF#10 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: 2: Mov32Imm dst: r4 imm: 22 3: Mov32Imm dst: r5 imm: 23 - 4: JLTReg dst: r4 off: -1 src: r5 + 4: JGTReg dst: r4 off: -1 src: r5 filter_block_3: 5: Mov32Imm dst: r4 imm: 0 6: JaImm dst: r0 off: -1 imm: 0 @@ -6250,10 +5893,8 @@ 11: MovImm dst: r0 imm: 1 return: 12: Exit -=== RUN TestJumpIfLessThan/kernel#10 +=== RUN TestJumpIfGreaterThan/kernel#10 === RUN TestJumpIfBitsNotSet/eBPF#10 -=== RUN TestJumpIfLessThan/C#11 -=== NAME TestJumpIfBitsNotSet/eBPF#10 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 @@ -6276,35 +5917,98 @@ 13: Exit === RUN TestJumpIfBitsNotSet/kernel#10 === RUN TestJumpIfBitsNotSet/C#11 -=== RUN TestLoadIndirect/constant_outofbounds/eBPF +--- PASS: TestJumpIfGreaterOrEqual (4.11s) + --- SKIP: TestJumpIfGreaterOrEqual/C (0.31s) + --- SKIP: TestJumpIfGreaterOrEqual/eBPF (0.00s) + --- PASS: TestJumpIfGreaterOrEqual/kernel (0.00s) + --- SKIP: TestJumpIfGreaterOrEqual/C#01 (0.33s) + --- SKIP: TestJumpIfGreaterOrEqual/eBPF#01 (0.00s) + --- PASS: TestJumpIfGreaterOrEqual/kernel#01 (0.00s) + --- SKIP: TestJumpIfGreaterOrEqual/C#02 (0.34s) + --- SKIP: TestJumpIfGreaterOrEqual/eBPF#02 (0.00s) + --- PASS: TestJumpIfGreaterOrEqual/kernel#02 (0.00s) + --- SKIP: TestJumpIfGreaterOrEqual/C#03 (0.35s) + --- SKIP: TestJumpIfGreaterOrEqual/eBPF#03 (0.00s) + --- PASS: TestJumpIfGreaterOrEqual/kernel#03 (0.00s) + --- SKIP: TestJumpIfGreaterOrEqual/C#04 (0.25s) + --- SKIP: TestJumpIfGreaterOrEqual/eBPF#04 (0.00s) + --- PASS: TestJumpIfGreaterOrEqual/kernel#04 (0.00s) + --- SKIP: TestJumpIfGreaterOrEqual/C#05 (0.34s) + --- SKIP: TestJumpIfGreaterOrEqual/eBPF#05 (0.00s) + --- PASS: TestJumpIfGreaterOrEqual/kernel#05 (0.00s) + --- SKIP: TestJumpIfGreaterOrEqual/C#06 (0.34s) + --- SKIP: TestJumpIfGreaterOrEqual/eBPF#06 (0.00s) + --- PASS: TestJumpIfGreaterOrEqual/kernel#06 (0.00s) + --- SKIP: TestJumpIfGreaterOrEqual/C#07 (0.49s) + --- SKIP: TestJumpIfGreaterOrEqual/eBPF#07 (0.00s) + --- PASS: TestJumpIfGreaterOrEqual/kernel#07 (0.00s) + --- SKIP: TestJumpIfGreaterOrEqual/C#08 (0.20s) + --- SKIP: TestJumpIfGreaterOrEqual/eBPF#08 (0.00s) + --- PASS: TestJumpIfGreaterOrEqual/kernel#08 (0.05s) + --- SKIP: TestJumpIfGreaterOrEqual/C#09 (0.40s) + --- SKIP: TestJumpIfGreaterOrEqual/eBPF#09 (0.00s) + --- PASS: TestJumpIfGreaterOrEqual/kernel#09 (0.05s) + --- SKIP: TestJumpIfGreaterOrEqual/C#10 (0.28s) + --- SKIP: TestJumpIfGreaterOrEqual/eBPF#10 (0.00s) + --- PASS: TestJumpIfGreaterOrEqual/kernel#10 (0.05s) + --- SKIP: TestJumpIfGreaterOrEqual/C#11 (0.22s) + --- SKIP: TestJumpIfGreaterOrEqual/eBPF#11 (0.00s) + --- PASS: TestJumpIfGreaterOrEqual/kernel#11 (0.05s) +=== RUN TestJumpIfGreaterThan/C#11 +=== RUN TestLoadIndirect/variable_valid/eBPF ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r5 imm: -3 - 3: MovReg dst: r7 src: r5 - 4: LShImm dst: r7 imm: 32 - 5: ArShImm dst: r7 imm: 32 - 6: AddImm dst: r7 imm: 3 - 7: JGEImm dst: r7 off: -1 imm: 65535 - 8: AddReg dst: r7 src: r2 - 9: MovReg dst: r6 src: r7 - 10: AddImm dst: r6 imm: 1 - 11: JGTReg dst: r6 off: -1 src: r3 - 12: LdXMemB dst: r4 src: r7 off: 0 imm: 0 - 13: Mov32Imm dst: r4 imm: 1 - 14: JaImm dst: r0 off: -1 imm: 0 + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 4 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: LdXMemW dst: r4 src: r2 off: 0 imm: 0 + 6: SwapBE dst: r4 imm: 32 + 7: Mov32Reg dst: r5 src: r4 + 8: MovReg dst: r7 src: r5 + 9: LShImm dst: r7 imm: 32 + 10: ArShImm dst: r7 imm: 32 + 11: AddImm dst: r7 imm: 13 + 12: JGEImm dst: r7 off: -1 imm: 65535 + 13: AddReg dst: r7 src: r2 + 14: MovReg dst: r6 src: r7 + 15: AddImm dst: r6 imm: 1 + 16: JGTReg dst: r6 off: -1 src: r3 + 17: LdXMemB dst: r4 src: r7 off: 0 imm: 0 + 18: JEqImm dst: r4 off: -1 imm: 5 + filter_block_4: + 19: Mov32Imm dst: r4 imm: 0 + 20: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 21: Mov32Imm dst: r4 imm: 1 + 22: JaImm dst: r0 off: -1 imm: 0 filter_nomatch: - 15: MovImm dst: r4 imm: 0 - 16: JaImm dst: r0 off: -1 imm: 0 + 23: MovImm dst: r4 imm: 0 + 24: JaImm dst: r0 off: -1 imm: 0 result: - 17: MovImm dst: r0 imm: 2 - 18: JEqImm dst: r4 off: -1 imm: 0 - 19: MovImm dst: r0 imm: 1 + 25: MovImm dst: r0 imm: 2 + 26: JEqImm dst: r4 off: -1 imm: 0 + 27: MovImm dst: r0 imm: 1 return: - 20: Exit -=== RUN TestLoadIndirect/constant_outofbounds/kernel -=== RUN TestLoadIndirect/constant_outofbounds/C#01 + 28: Exit +=== RUN TestLoadIndirect/variable_valid/kernel +=== RUN TestLoadIndirect/variable_valid/C#01 +=== RUN TestLoadAbsoluteBigOffset/eBPF#05 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 0 + 3: JaImm dst: r0 off: -1 imm: 0 + result: + 4: MovImm dst: r0 imm: 2 + 5: JEqImm dst: r4 off: -1 imm: 0 + 6: MovImm dst: r0 imm: 1 + return: + 7: Exit +=== RUN TestLoadAbsoluteBigOffset/kernel#05 +=== RUN TestLoadAbsoluteBigOffset/C#06 === RUN TestJumpIfBitsNotSet/eBPF#11 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 @@ -6332,144 +6036,405 @@ return: 16: Exit === RUN TestJumpIfBitsNotSet/kernel#11 ---- PASS: TestJumpIfBitsNotSet (0.96s) - --- SKIP: TestJumpIfBitsNotSet/C (0.04s) +--- PASS: TestJumpIfBitsNotSet (4.30s) + --- SKIP: TestJumpIfBitsNotSet/C (0.49s) --- SKIP: TestJumpIfBitsNotSet/eBPF (0.00s) --- PASS: TestJumpIfBitsNotSet/kernel (0.05s) - --- SKIP: TestJumpIfBitsNotSet/C#01 (0.04s) + --- SKIP: TestJumpIfBitsNotSet/C#01 (0.51s) --- SKIP: TestJumpIfBitsNotSet/eBPF#01 (0.00s) --- PASS: TestJumpIfBitsNotSet/kernel#01 (0.05s) - --- SKIP: TestJumpIfBitsNotSet/C#02 (0.04s) + --- SKIP: TestJumpIfBitsNotSet/C#02 (0.24s) --- SKIP: TestJumpIfBitsNotSet/eBPF#02 (0.00s) --- PASS: TestJumpIfBitsNotSet/kernel#02 (0.05s) - --- SKIP: TestJumpIfBitsNotSet/C#03 (0.04s) + --- SKIP: TestJumpIfBitsNotSet/C#03 (0.32s) --- SKIP: TestJumpIfBitsNotSet/eBPF#03 (0.00s) - --- PASS: TestJumpIfBitsNotSet/kernel#03 (0.05s) - --- SKIP: TestJumpIfBitsNotSet/C#04 (0.04s) + --- PASS: TestJumpIfBitsNotSet/kernel#03 (0.07s) + --- SKIP: TestJumpIfBitsNotSet/C#04 (0.29s) --- SKIP: TestJumpIfBitsNotSet/eBPF#04 (0.00s) --- PASS: TestJumpIfBitsNotSet/kernel#04 (0.05s) - --- SKIP: TestJumpIfBitsNotSet/C#05 (0.04s) + --- SKIP: TestJumpIfBitsNotSet/C#05 (0.32s) --- SKIP: TestJumpIfBitsNotSet/eBPF#05 (0.00s) --- PASS: TestJumpIfBitsNotSet/kernel#05 (0.05s) - --- SKIP: TestJumpIfBitsNotSet/C#06 (0.04s) + --- SKIP: TestJumpIfBitsNotSet/C#06 (0.36s) --- SKIP: TestJumpIfBitsNotSet/eBPF#06 (0.00s) --- PASS: TestJumpIfBitsNotSet/kernel#06 (0.05s) - --- SKIP: TestJumpIfBitsNotSet/C#07 (0.04s) + --- SKIP: TestJumpIfBitsNotSet/C#07 (0.27s) --- SKIP: TestJumpIfBitsNotSet/eBPF#07 (0.00s) - --- PASS: TestJumpIfBitsNotSet/kernel#07 (0.05s) - --- SKIP: TestJumpIfBitsNotSet/C#08 (0.04s) + --- PASS: TestJumpIfBitsNotSet/kernel#07 (0.07s) + --- SKIP: TestJumpIfBitsNotSet/C#08 (0.42s) --- SKIP: TestJumpIfBitsNotSet/eBPF#08 (0.00s) --- PASS: TestJumpIfBitsNotSet/kernel#08 (0.00s) - --- SKIP: TestJumpIfBitsNotSet/C#09 (0.04s) + --- SKIP: TestJumpIfBitsNotSet/C#09 (0.22s) --- SKIP: TestJumpIfBitsNotSet/eBPF#09 (0.00s) --- PASS: TestJumpIfBitsNotSet/kernel#09 (0.00s) - --- SKIP: TestJumpIfBitsNotSet/C#10 (0.04s) + --- SKIP: TestJumpIfBitsNotSet/C#10 (0.20s) --- SKIP: TestJumpIfBitsNotSet/eBPF#10 (0.00s) --- PASS: TestJumpIfBitsNotSet/kernel#10 (0.00s) - --- SKIP: TestJumpIfBitsNotSet/C#11 (0.04s) + --- SKIP: TestJumpIfBitsNotSet/C#11 (0.20s) --- SKIP: TestJumpIfBitsNotSet/eBPF#11 (0.00s) --- PASS: TestJumpIfBitsNotSet/kernel#11 (0.00s) ---- PASS: TestJumpIfGreaterThan (0.97s) - --- SKIP: TestJumpIfGreaterThan/C (0.06s) +=== RUN TestJumpIfGreaterThan/eBPF#11 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 22 + 3: Mov32Imm dst: r5 imm: 23 + 4: JEqImm dst: r4 off: -1 imm: 0 + filter_block_3: + 5: JGTReg dst: r4 off: -1 src: r5 + 6: JaImm dst: r0 off: -1 imm: 0 + filter_block_4: + 7: Mov32Imm dst: r4 imm: 1 + 8: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 9: Mov32Imm dst: r4 imm: 0 + 10: JaImm dst: r0 off: -1 imm: 0 + filter_block_6: + 11: Mov32Imm dst: r4 imm: 1 + 12: JaImm dst: r0 off: -1 imm: 0 + result: + 13: MovImm dst: r0 imm: 2 + 14: JEqImm dst: r4 off: -1 imm: 0 + 15: MovImm dst: r0 imm: 1 + return: + 16: Exit +=== RUN TestJumpIfGreaterThan/kernel#11 +=== RUN TestLoadIndirect/variable_valid/eBPF#01 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 4 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: LdXMemW dst: r4 src: r2 off: 0 imm: 0 + 6: SwapBE dst: r4 imm: 32 + 7: Mov32Reg dst: r5 src: r4 + 8: MovReg dst: r7 src: r5 + 9: LShImm dst: r7 imm: 32 + 10: ArShImm dst: r7 imm: 32 + 11: AddImm dst: r7 imm: 13 + 12: JGEImm dst: r7 off: -1 imm: 65535 + 13: AddReg dst: r7 src: r2 + 14: MovReg dst: r6 src: r7 + 15: AddImm dst: r6 imm: 1 + 16: JGTReg dst: r6 off: -1 src: r3 + 17: LdXMemB dst: r4 src: r7 off: 0 imm: 0 + 18: JEqImm dst: r4 off: -1 imm: 6 + filter_block_4: + 19: Mov32Imm dst: r4 imm: 0 + 20: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 21: Mov32Imm dst: r4 imm: 1 + 22: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 23: MovImm dst: r4 imm: 0 + 24: JaImm dst: r0 off: -1 imm: 0 + result: + 25: MovImm dst: r0 imm: 2 + 26: JEqImm dst: r4 off: -1 imm: 0 + 27: MovImm dst: r0 imm: 1 + return: + 28: Exit +=== RUN TestLoadIndirect/variable_valid/kernel#01 +--- PASS: TestJumpIfGreaterThan (4.40s) + --- SKIP: TestJumpIfGreaterThan/C (0.52s) --- SKIP: TestJumpIfGreaterThan/eBPF (0.00s) --- PASS: TestJumpIfGreaterThan/kernel (0.00s) - --- SKIP: TestJumpIfGreaterThan/C#01 (0.05s) - --- SKIP: TestJumpIfGreaterThan/eBPF#01 (0.00s) + --- SKIP: TestJumpIfGreaterThan/C#01 (0.36s) + --- SKIP: TestJumpIfGreaterThan/eBPF#01 (0.02s) --- PASS: TestJumpIfGreaterThan/kernel#01 (0.00s) - --- SKIP: TestJumpIfGreaterThan/C#02 (0.05s) + --- SKIP: TestJumpIfGreaterThan/C#02 (0.21s) --- SKIP: TestJumpIfGreaterThan/eBPF#02 (0.00s) --- PASS: TestJumpIfGreaterThan/kernel#02 (0.00s) - --- SKIP: TestJumpIfGreaterThan/C#03 (0.05s) + --- SKIP: TestJumpIfGreaterThan/C#03 (0.42s) --- SKIP: TestJumpIfGreaterThan/eBPF#03 (0.00s) --- PASS: TestJumpIfGreaterThan/kernel#03 (0.00s) - --- SKIP: TestJumpIfGreaterThan/C#04 (0.04s) + --- SKIP: TestJumpIfGreaterThan/C#04 (0.47s) --- SKIP: TestJumpIfGreaterThan/eBPF#04 (0.00s) - --- PASS: TestJumpIfGreaterThan/kernel#04 (0.05s) - --- SKIP: TestJumpIfGreaterThan/C#05 (0.04s) + --- PASS: TestJumpIfGreaterThan/kernel#04 (0.06s) + --- SKIP: TestJumpIfGreaterThan/C#05 (0.44s) --- SKIP: TestJumpIfGreaterThan/eBPF#05 (0.00s) - --- PASS: TestJumpIfGreaterThan/kernel#05 (0.05s) - --- SKIP: TestJumpIfGreaterThan/C#06 (0.05s) + --- PASS: TestJumpIfGreaterThan/kernel#05 (0.07s) + --- SKIP: TestJumpIfGreaterThan/C#06 (0.26s) --- SKIP: TestJumpIfGreaterThan/eBPF#06 (0.00s) --- PASS: TestJumpIfGreaterThan/kernel#06 (0.05s) - --- SKIP: TestJumpIfGreaterThan/C#07 (0.04s) + --- SKIP: TestJumpIfGreaterThan/C#07 (0.32s) --- SKIP: TestJumpIfGreaterThan/eBPF#07 (0.00s) --- PASS: TestJumpIfGreaterThan/kernel#07 (0.05s) - --- SKIP: TestJumpIfGreaterThan/C#08 (0.04s) + --- SKIP: TestJumpIfGreaterThan/C#08 (0.22s) --- SKIP: TestJumpIfGreaterThan/eBPF#08 (0.00s) --- PASS: TestJumpIfGreaterThan/kernel#08 (0.05s) - --- SKIP: TestJumpIfGreaterThan/C#09 (0.04s) + --- SKIP: TestJumpIfGreaterThan/C#09 (0.26s) --- SKIP: TestJumpIfGreaterThan/eBPF#09 (0.00s) --- PASS: TestJumpIfGreaterThan/kernel#09 (0.05s) - --- SKIP: TestJumpIfGreaterThan/C#10 (0.04s) + --- SKIP: TestJumpIfGreaterThan/C#10 (0.22s) --- SKIP: TestJumpIfGreaterThan/eBPF#10 (0.00s) --- PASS: TestJumpIfGreaterThan/kernel#10 (0.05s) - --- SKIP: TestJumpIfGreaterThan/C#11 (0.04s) + --- SKIP: TestJumpIfGreaterThan/C#11 (0.20s) --- SKIP: TestJumpIfGreaterThan/eBPF#11 (0.00s) --- PASS: TestJumpIfGreaterThan/kernel#11 (0.05s) -=== RUN TestJumpIfLessThan/eBPF#11 +=== RUN TestLoadIndirect/variable_valid/C#02 +=== RUN TestLoadAbsoluteBigOffset/eBPF#06 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 filter_block_0: - 2: Mov32Imm dst: r4 imm: 22 - 3: Mov32Imm dst: r5 imm: 23 - 4: JEqImm dst: r4 off: -1 imm: 0 - filter_block_3: - 5: JLTReg dst: r4 off: -1 src: r5 - 6: JaImm dst: r0 off: -1 imm: 0 + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 65535 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: Mov32Imm dst: r4 imm: 0 + 6: MovReg dst: r6 src: r2 + 7: AddImm dst: r6 imm: 65534 + 8: LdXMemB dst: r5 src: r6 off: 0 imm: 0 + 9: And32Imm dst: r5 imm: 15 + 10: LSh32Imm dst: r5 imm: 2 + 11: Add32Imm dst: r4 imm: 2 + 12: Mov32Reg dst: r4 src: r4 + 13: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 14: MovImm dst: r4 imm: 0 + 15: JaImm dst: r0 off: -1 imm: 0 + result: + 16: MovImm dst: r0 imm: 2 + 17: JEqImm dst: r4 off: -1 imm: 0 + 18: MovImm dst: r0 imm: 1 + return: + 19: Exit +=== RUN TestLoadAbsoluteBigOffset/kernel#06 +=== RUN TestLoadAbsoluteBigOffset/C#07 +=== RUN TestLoadIndirect/variable_valid/eBPF#02 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 4 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: LdXMemW dst: r4 src: r2 off: 0 imm: 0 + 6: SwapBE dst: r4 imm: 32 + 7: Mov32Reg dst: r5 src: r4 + 8: MovReg dst: r7 src: r5 + 9: LShImm dst: r7 imm: 32 + 10: ArShImm dst: r7 imm: 32 + 11: AddImm dst: r7 imm: -2147483641 + 12: JGEImm dst: r7 off: -1 imm: 65534 + 13: AddReg dst: r7 src: r2 + 14: MovReg dst: r6 src: r7 + 15: AddImm dst: r6 imm: 2 + 16: JGTReg dst: r6 off: -1 src: r3 + 17: LdXMemH dst: r4 src: r7 off: 0 imm: 0 + 18: SwapBE dst: r4 imm: 16 + 19: JEqImm dst: r4 off: -1 imm: 57005 filter_block_4: - 7: Mov32Imm dst: r4 imm: 1 - 8: JaImm dst: r0 off: -1 imm: 0 + 20: Mov32Imm dst: r4 imm: 0 + 21: JaImm dst: r0 off: -1 imm: 0 filter_block_5: - 9: Mov32Imm dst: r4 imm: 0 - 10: JaImm dst: r0 off: -1 imm: 0 - filter_block_6: - 11: Mov32Imm dst: r4 imm: 1 - 12: JaImm dst: r0 off: -1 imm: 0 + 22: Mov32Imm dst: r4 imm: 1 + 23: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 24: MovImm dst: r4 imm: 0 + 25: JaImm dst: r0 off: -1 imm: 0 result: - 13: MovImm dst: r0 imm: 2 - 14: JEqImm dst: r4 off: -1 imm: 0 - 15: MovImm dst: r0 imm: 1 + 26: MovImm dst: r0 imm: 2 + 27: JEqImm dst: r4 off: -1 imm: 0 + 28: MovImm dst: r0 imm: 1 return: - 16: Exit -=== RUN TestJumpIfLessThan/kernel#11 ---- PASS: TestJumpIfLessThan (0.97s) - --- SKIP: TestJumpIfLessThan/C (0.10s) - --- SKIP: TestJumpIfLessThan/eBPF (0.00s) - --- PASS: TestJumpIfLessThan/kernel (0.05s) - --- SKIP: TestJumpIfLessThan/C#01 (0.04s) - --- SKIP: TestJumpIfLessThan/eBPF#01 (0.00s) - --- PASS: TestJumpIfLessThan/kernel#01 (0.05s) - --- SKIP: TestJumpIfLessThan/C#02 (0.04s) - --- SKIP: TestJumpIfLessThan/eBPF#02 (0.00s) - --- PASS: TestJumpIfLessThan/kernel#02 (0.05s) - --- SKIP: TestJumpIfLessThan/C#03 (0.04s) - --- SKIP: TestJumpIfLessThan/eBPF#03 (0.00s) - --- PASS: TestJumpIfLessThan/kernel#03 (0.05s) - --- SKIP: TestJumpIfLessThan/C#04 (0.04s) - --- SKIP: TestJumpIfLessThan/eBPF#04 (0.00s) - --- PASS: TestJumpIfLessThan/kernel#04 (0.05s) - --- SKIP: TestJumpIfLessThan/C#05 (0.04s) - --- SKIP: TestJumpIfLessThan/eBPF#05 (0.00s) - --- PASS: TestJumpIfLessThan/kernel#05 (0.05s) - --- SKIP: TestJumpIfLessThan/C#06 (0.04s) - --- SKIP: TestJumpIfLessThan/eBPF#06 (0.00s) - --- PASS: TestJumpIfLessThan/kernel#06 (0.05s) - --- SKIP: TestJumpIfLessThan/C#07 (0.04s) - --- SKIP: TestJumpIfLessThan/eBPF#07 (0.00s) - --- PASS: TestJumpIfLessThan/kernel#07 (0.05s) - --- SKIP: TestJumpIfLessThan/C#08 (0.04s) - --- SKIP: TestJumpIfLessThan/eBPF#08 (0.00s) - --- PASS: TestJumpIfLessThan/kernel#08 (0.00s) - --- SKIP: TestJumpIfLessThan/C#09 (0.04s) - --- SKIP: TestJumpIfLessThan/eBPF#09 (0.00s) - --- PASS: TestJumpIfLessThan/kernel#09 (0.00s) - --- SKIP: TestJumpIfLessThan/C#10 (0.04s) - --- SKIP: TestJumpIfLessThan/eBPF#10 (0.00s) - --- PASS: TestJumpIfLessThan/kernel#10 (0.00s) - --- SKIP: TestJumpIfLessThan/C#11 (0.04s) - --- SKIP: TestJumpIfLessThan/eBPF#11 (0.00s) - --- PASS: TestJumpIfLessThan/kernel#11 (0.00s) + 29: Exit +=== RUN TestLoadIndirect/variable_valid/kernel#02 +=== RUN TestLoadIndirect/variable_valid/C#03 +=== RUN TestLoadAbsoluteBigOffset/eBPF#07 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r4 imm: 0 + 3: JaImm dst: r0 off: -1 imm: 0 + result: + 4: MovImm dst: r0 imm: 2 + 5: JEqImm dst: r4 off: -1 imm: 0 + 6: MovImm dst: r0 imm: 1 + return: + 7: Exit +=== RUN TestLoadAbsoluteBigOffset/kernel#07 +--- PASS: TestLoadAbsoluteBigOffset (2.93s) + --- SKIP: TestLoadAbsoluteBigOffset/C (0.34s) + --- SKIP: TestLoadAbsoluteBigOffset/eBPF (0.00s) + --- PASS: TestLoadAbsoluteBigOffset/kernel (0.07s) + --- SKIP: TestLoadAbsoluteBigOffset/C#01 (0.36s) + --- SKIP: TestLoadAbsoluteBigOffset/eBPF#01 (0.00s) + --- PASS: TestLoadAbsoluteBigOffset/kernel#01 (0.05s) + --- SKIP: TestLoadAbsoluteBigOffset/C#02 (0.39s) + --- SKIP: TestLoadAbsoluteBigOffset/eBPF#02 (0.00s) + --- PASS: TestLoadAbsoluteBigOffset/kernel#02 (0.05s) + --- SKIP: TestLoadAbsoluteBigOffset/C#03 (0.21s) + --- SKIP: TestLoadAbsoluteBigOffset/eBPF#03 (0.00s) + --- PASS: TestLoadAbsoluteBigOffset/kernel#03 (0.05s) + --- SKIP: TestLoadAbsoluteBigOffset/C#04 (0.41s) + --- SKIP: TestLoadAbsoluteBigOffset/eBPF#04 (0.00s) + --- PASS: TestLoadAbsoluteBigOffset/kernel#04 (0.05s) + --- SKIP: TestLoadAbsoluteBigOffset/C#05 (0.38s) + --- SKIP: TestLoadAbsoluteBigOffset/eBPF#05 (0.00s) + --- PASS: TestLoadAbsoluteBigOffset/kernel#05 (0.05s) + --- SKIP: TestLoadAbsoluteBigOffset/C#06 (0.18s) + --- SKIP: TestLoadAbsoluteBigOffset/eBPF#06 (0.00s) + --- PASS: TestLoadAbsoluteBigOffset/kernel#06 (0.05s) + --- SKIP: TestLoadAbsoluteBigOffset/C#07 (0.21s) + --- SKIP: TestLoadAbsoluteBigOffset/eBPF#07 (0.00s) + --- PASS: TestLoadAbsoluteBigOffset/kernel#07 (0.05s) +=== RUN TestLoadIndirect/variable_valid/eBPF#03 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 4 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: LdXMemW dst: r4 src: r2 off: 0 imm: 0 + 6: SwapBE dst: r4 imm: 32 + 7: Mov32Reg dst: r5 src: r4 + 8: MovReg dst: r7 src: r5 + 9: LShImm dst: r7 imm: 32 + 10: ArShImm dst: r7 imm: 32 + 11: AddImm dst: r7 imm: -2147483641 + 12: JGEImm dst: r7 off: -1 imm: 65534 + 13: AddReg dst: r7 src: r2 + 14: MovReg dst: r6 src: r7 + 15: AddImm dst: r6 imm: 2 + 16: JGTReg dst: r6 off: -1 src: r3 + 17: LdXMemH dst: r4 src: r7 off: 0 imm: 0 + 18: SwapBE dst: r4 imm: 16 + 19: JEqImm dst: r4 off: -1 imm: 57005 + filter_block_4: + 20: Mov32Imm dst: r4 imm: 0 + 21: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 22: Mov32Imm dst: r4 imm: 1 + 23: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 24: MovImm dst: r4 imm: 0 + 25: JaImm dst: r0 off: -1 imm: 0 + result: + 26: MovImm dst: r0 imm: 2 + 27: JEqImm dst: r4 off: -1 imm: 0 + 28: MovImm dst: r0 imm: 1 + return: + 29: Exit +=== RUN TestLoadIndirect/variable_valid/kernel#03 +=== RUN TestLoadIndirect/variable_valid/C#04 +=== RUN TestLoadIndirect/variable_valid/eBPF#04 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 4 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: LdXMemW dst: r4 src: r2 off: 0 imm: 0 + 6: SwapBE dst: r4 imm: 32 + 7: Mov32Reg dst: r5 src: r4 + 8: MovReg dst: r7 src: r5 + 9: LShImm dst: r7 imm: 32 + 10: ArShImm dst: r7 imm: 32 + 11: AddImm dst: r7 imm: 4 + 12: JGEImm dst: r7 off: -1 imm: 65532 + 13: AddReg dst: r7 src: r2 + 14: MovReg dst: r6 src: r7 + 15: AddImm dst: r6 imm: 4 + 16: JGTReg dst: r6 off: -1 src: r3 + 17: LdXMemW dst: r4 src: r7 off: 0 imm: 0 + 18: SwapBE dst: r4 imm: 32 + 19: Mov32Imm dst: r6 imm: -559038737 + 20: JEqReg dst: r4 off: -1 src: r6 + filter_block_4: + 21: Mov32Imm dst: r4 imm: 0 + 22: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 23: Mov32Imm dst: r4 imm: 1 + 24: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 25: MovImm dst: r4 imm: 0 + 26: JaImm dst: r0 off: -1 imm: 0 + result: + 27: MovImm dst: r0 imm: 2 + 28: JEqImm dst: r4 off: -1 imm: 0 + 29: MovImm dst: r0 imm: 1 + return: + 30: Exit +=== RUN TestLoadIndirect/variable_valid/kernel#04 +=== RUN TestLoadIndirect/variable_valid/C#05 +=== RUN TestLoadIndirect/variable_valid/eBPF#05 + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: MovReg dst: r6 src: r2 + 3: AddImm dst: r6 imm: 4 + 4: JGTReg dst: r6 off: -1 src: r3 + 5: LdXMemW dst: r4 src: r2 off: 0 imm: 0 + 6: SwapBE dst: r4 imm: 32 + 7: Mov32Reg dst: r5 src: r4 + 8: MovReg dst: r7 src: r5 + 9: LShImm dst: r7 imm: 32 + 10: ArShImm dst: r7 imm: 32 + 11: AddImm dst: r7 imm: 4 + 12: JGEImm dst: r7 off: -1 imm: 65532 + 13: AddReg dst: r7 src: r2 + 14: MovReg dst: r6 src: r7 + 15: AddImm dst: r6 imm: 4 + 16: JGTReg dst: r6 off: -1 src: r3 + 17: LdXMemW dst: r4 src: r7 off: 0 imm: 0 + 18: SwapBE dst: r4 imm: 32 + 19: Mov32Imm dst: r6 imm: -559038737 + 20: JEqReg dst: r4 off: -1 src: r6 + filter_block_4: + 21: Mov32Imm dst: r4 imm: 0 + 22: JaImm dst: r0 off: -1 imm: 0 + filter_block_5: + 23: Mov32Imm dst: r4 imm: 1 + 24: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 25: MovImm dst: r4 imm: 0 + 26: JaImm dst: r0 off: -1 imm: 0 + result: + 27: MovImm dst: r0 imm: 2 + 28: JEqImm dst: r4 off: -1 imm: 0 + 29: MovImm dst: r0 imm: 1 + return: + 30: Exit +=== RUN TestLoadIndirect/variable_valid/kernel#05 +=== RUN TestLoadIndirect/constant_outofbounds +=== RUN TestLoadIndirect/constant_outofbounds/C +=== RUN TestLoadIndirect/constant_outofbounds/eBPF + ebpf_test.go:17: + 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 + 1: LdXMemW dst: r3 src: r1 off: 4 imm: 0 + filter_block_0: + 2: Mov32Imm dst: r5 imm: -3 + 3: MovReg dst: r7 src: r5 + 4: LShImm dst: r7 imm: 32 + 5: ArShImm dst: r7 imm: 32 + 6: AddImm dst: r7 imm: 3 + 7: JGEImm dst: r7 off: -1 imm: 65535 + 8: AddReg dst: r7 src: r2 + 9: MovReg dst: r6 src: r7 + 10: AddImm dst: r6 imm: 1 + 11: JGTReg dst: r6 off: -1 src: r3 + 12: LdXMemB dst: r4 src: r7 off: 0 imm: 0 + 13: Mov32Imm dst: r4 imm: 1 + 14: JaImm dst: r0 off: -1 imm: 0 + filter_nomatch: + 15: MovImm dst: r4 imm: 0 + 16: JaImm dst: r0 off: -1 imm: 0 + result: + 17: MovImm dst: r0 imm: 2 + 18: JEqImm dst: r4 off: -1 imm: 0 + 19: MovImm dst: r0 imm: 1 + return: + 20: Exit +=== RUN TestLoadIndirect/constant_outofbounds/kernel +=== RUN TestLoadIndirect/constant_outofbounds/C#01 === RUN TestLoadIndirect/constant_outofbounds/eBPF#01 ebpf_test.go:17: 0: LdXMemW dst: r2 src: r1 off: 0 imm: 0 @@ -6760,79 +6725,79 @@ return: 25: Exit === RUN TestLoadIndirect/variable_outofbounds/kernel#04 ---- PASS: TestLoadIndirect (1.72s) - --- PASS: TestLoadIndirect/constant_valid (0.48s) - --- SKIP: TestLoadIndirect/constant_valid/C (0.06s) +--- PASS: TestLoadIndirect (6.43s) + --- PASS: TestLoadIndirect/constant_valid (2.23s) + --- SKIP: TestLoadIndirect/constant_valid/C (0.44s) --- SKIP: TestLoadIndirect/constant_valid/eBPF (0.00s) - --- PASS: TestLoadIndirect/constant_valid/kernel (0.00s) - --- SKIP: TestLoadIndirect/constant_valid/C#01 (0.06s) + --- PASS: TestLoadIndirect/constant_valid/kernel (0.02s) + --- SKIP: TestLoadIndirect/constant_valid/C#01 (0.45s) --- SKIP: TestLoadIndirect/constant_valid/eBPF#01 (0.00s) --- PASS: TestLoadIndirect/constant_valid/kernel#01 (0.05s) - --- SKIP: TestLoadIndirect/constant_valid/C#02 (0.05s) + --- SKIP: TestLoadIndirect/constant_valid/C#02 (0.30s) --- SKIP: TestLoadIndirect/constant_valid/eBPF#02 (0.00s) --- PASS: TestLoadIndirect/constant_valid/kernel#02 (0.00s) - --- SKIP: TestLoadIndirect/constant_valid/C#03 (0.05s) + --- SKIP: TestLoadIndirect/constant_valid/C#03 (0.25s) --- SKIP: TestLoadIndirect/constant_valid/eBPF#03 (0.00s) --- PASS: TestLoadIndirect/constant_valid/kernel#03 (0.05s) - --- SKIP: TestLoadIndirect/constant_valid/C#04 (0.05s) + --- SKIP: TestLoadIndirect/constant_valid/C#04 (0.21s) --- SKIP: TestLoadIndirect/constant_valid/eBPF#04 (0.00s) --- PASS: TestLoadIndirect/constant_valid/kernel#04 (0.00s) - --- SKIP: TestLoadIndirect/constant_valid/C#05 (0.05s) + --- SKIP: TestLoadIndirect/constant_valid/C#05 (0.39s) --- SKIP: TestLoadIndirect/constant_valid/eBPF#05 (0.00s) --- PASS: TestLoadIndirect/constant_valid/kernel#05 (0.05s) - --- PASS: TestLoadIndirect/variable_valid (0.42s) - --- SKIP: TestLoadIndirect/variable_valid/C (0.04s) + --- PASS: TestLoadIndirect/variable_valid (1.59s) + --- SKIP: TestLoadIndirect/variable_valid/C (0.20s) --- SKIP: TestLoadIndirect/variable_valid/eBPF (0.00s) --- PASS: TestLoadIndirect/variable_valid/kernel (0.00s) - --- SKIP: TestLoadIndirect/variable_valid/C#01 (0.05s) + --- SKIP: TestLoadIndirect/variable_valid/C#01 (0.23s) --- SKIP: TestLoadIndirect/variable_valid/eBPF#01 (0.00s) --- PASS: TestLoadIndirect/variable_valid/kernel#01 (0.05s) - --- SKIP: TestLoadIndirect/variable_valid/C#02 (0.04s) + --- SKIP: TestLoadIndirect/variable_valid/C#02 (0.20s) --- SKIP: TestLoadIndirect/variable_valid/eBPF#02 (0.00s) --- PASS: TestLoadIndirect/variable_valid/kernel#02 (0.00s) - --- SKIP: TestLoadIndirect/variable_valid/C#03 (0.04s) + --- SKIP: TestLoadIndirect/variable_valid/C#03 (0.21s) --- SKIP: TestLoadIndirect/variable_valid/eBPF#03 (0.00s) --- PASS: TestLoadIndirect/variable_valid/kernel#03 (0.05s) - --- SKIP: TestLoadIndirect/variable_valid/C#04 (0.05s) + --- SKIP: TestLoadIndirect/variable_valid/C#04 (0.28s) --- SKIP: TestLoadIndirect/variable_valid/eBPF#04 (0.00s) --- PASS: TestLoadIndirect/variable_valid/kernel#04 (0.00s) - --- SKIP: TestLoadIndirect/variable_valid/C#05 (0.04s) + --- SKIP: TestLoadIndirect/variable_valid/C#05 (0.32s) --- SKIP: TestLoadIndirect/variable_valid/eBPF#05 (0.00s) --- PASS: TestLoadIndirect/variable_valid/kernel#05 (0.05s) - --- PASS: TestLoadIndirect/constant_outofbounds (0.41s) - --- SKIP: TestLoadIndirect/constant_outofbounds/C (0.05s) + --- PASS: TestLoadIndirect/constant_outofbounds (1.37s) + --- SKIP: TestLoadIndirect/constant_outofbounds/C (0.22s) --- SKIP: TestLoadIndirect/constant_outofbounds/eBPF (0.00s) --- PASS: TestLoadIndirect/constant_outofbounds/kernel (0.00s) - --- SKIP: TestLoadIndirect/constant_outofbounds/C#01 (0.04s) + --- SKIP: TestLoadIndirect/constant_outofbounds/C#01 (0.22s) --- SKIP: TestLoadIndirect/constant_outofbounds/eBPF#01 (0.00s) --- PASS: TestLoadIndirect/constant_outofbounds/kernel#01 (0.05s) - --- SKIP: TestLoadIndirect/constant_outofbounds/C#02 (0.04s) + --- SKIP: TestLoadIndirect/constant_outofbounds/C#02 (0.21s) --- SKIP: TestLoadIndirect/constant_outofbounds/eBPF#02 (0.00s) --- PASS: TestLoadIndirect/constant_outofbounds/kernel#02 (0.05s) - --- SKIP: TestLoadIndirect/constant_outofbounds/C#03 (0.04s) + --- SKIP: TestLoadIndirect/constant_outofbounds/C#03 (0.26s) --- SKIP: TestLoadIndirect/constant_outofbounds/eBPF#03 (0.00s) --- PASS: TestLoadIndirect/constant_outofbounds/kernel#03 (0.05s) - --- SKIP: TestLoadIndirect/constant_outofbounds/C#04 (0.04s) + --- SKIP: TestLoadIndirect/constant_outofbounds/C#04 (0.22s) --- SKIP: TestLoadIndirect/constant_outofbounds/eBPF#04 (0.00s) --- PASS: TestLoadIndirect/constant_outofbounds/kernel#04 (0.05s) - --- PASS: TestLoadIndirect/variable_outofbounds (0.42s) - --- SKIP: TestLoadIndirect/variable_outofbounds/C (0.04s) + --- PASS: TestLoadIndirect/variable_outofbounds (1.24s) + --- SKIP: TestLoadIndirect/variable_outofbounds/C (0.22s) --- SKIP: TestLoadIndirect/variable_outofbounds/eBPF (0.00s) --- PASS: TestLoadIndirect/variable_outofbounds/kernel (0.00s) - --- SKIP: TestLoadIndirect/variable_outofbounds/C#01 (0.05s) + --- SKIP: TestLoadIndirect/variable_outofbounds/C#01 (0.29s) --- SKIP: TestLoadIndirect/variable_outofbounds/eBPF#01 (0.00s) --- PASS: TestLoadIndirect/variable_outofbounds/kernel#01 (0.05s) - --- SKIP: TestLoadIndirect/variable_outofbounds/C#02 (0.04s) + --- SKIP: TestLoadIndirect/variable_outofbounds/C#02 (0.16s) --- SKIP: TestLoadIndirect/variable_outofbounds/eBPF#02 (0.00s) --- PASS: TestLoadIndirect/variable_outofbounds/kernel#02 (0.05s) - --- SKIP: TestLoadIndirect/variable_outofbounds/C#03 (0.04s) + --- SKIP: TestLoadIndirect/variable_outofbounds/C#03 (0.17s) --- SKIP: TestLoadIndirect/variable_outofbounds/eBPF#03 (0.00s) --- PASS: TestLoadIndirect/variable_outofbounds/kernel#03 (0.05s) - --- SKIP: TestLoadIndirect/variable_outofbounds/C#04 (0.04s) + --- SKIP: TestLoadIndirect/variable_outofbounds/C#04 (0.19s) --- SKIP: TestLoadIndirect/variable_outofbounds/eBPF#04 (0.00s) --- PASS: TestLoadIndirect/variable_outofbounds/kernel#04 (0.05s) PASS -ok github.com/cloudflare/cbpfc 2.658s +ok github.com/cloudflare/cbpfc 11.678s make[1]: Leaving directory '/build/reproducible-path/golang-github-cloudflare-cbpfc-0.0~git20231012.992ed75' create-stamp debian/debhelper-build-stamp dh_testroot -O--builddirectory=_build -O--buildsystem=golang @@ -6860,12 +6825,14 @@ dpkg-buildpackage: info: binary-only upload (no source included) dpkg-genchanges: info: including full source code in upload I: copying local configuration +I: user script /srv/workspace/pbuilder/1892673/tmp/hooks/B01_cleanup starting +I: user script /srv/workspace/pbuilder/1892673/tmp/hooks/B01_cleanup finished I: unmounting dev/ptmx filesystem I: unmounting dev/pts filesystem I: unmounting dev/shm filesystem I: unmounting proc filesystem I: unmounting sys filesystem I: cleaning the build env -I: removing directory /srv/workspace/pbuilder/1632975 and its subdirectories -I: Current time: Thu Jun 26 19:23:56 -12 2025 -I: pbuilder-time-stamp: 1751009036 +I: removing directory /srv/workspace/pbuilder/1892673 and its subdirectories +I: Current time: Sat May 25 15:04:35 +14 2024 +I: pbuilder-time-stamp: 1716599075