aboutsummaryrefslogtreecommitdiff
path: root/goodfile
diff options
context:
space:
mode:
authoriximeow <me@iximeow.net>2026-02-19 02:14:57 +0000
committeriximeow <me@iximeow.net>2026-05-25 04:31:49 +0000
commit87dc48adcce4e80aa98a2867edacc023579fc4c4 (patch)
tree940bf543d76b8d294f3d2abb792fb0ff6fa7e296 /goodfile
parent0ec3011a3d04de741be642e4d36e826174657fdc (diff)
add behavior information for x86_64 instructions
this is a squash of a few months' hacking, including but not limited to what eventually got extracted into https://git.iximeow.net/asmlinator/about/ the path here is generally not historically interesting, and the vast majority of this diff is very particular static data tables (BehaviorDigests and implicit operand lists) `src/long_mode/behavior.rs` will more or less be directly adapted into versions for x86-32 and x86-16, similar to the instruction decoders.
Diffstat (limited to 'goodfile')
-rw-r--r--goodfile14
1 files changed, 13 insertions, 1 deletions
diff --git a/goodfile b/goodfile
index a90a885..15fbc4e 100644
--- a/goodfile
+++ b/goodfile
@@ -9,11 +9,23 @@ Step.start("crate")
Step.push("build")
Build.run({"cargo", "build"}) -- `run` automatically records stdout and stderr to log files named after the command
Step.advance("test")
-Build.run({"cargo", "test"}, {name="test stdlib/fmt"}) -- artifacts are stored under `name` if that's present
+-- default features include "behavior" which gets the relatively slow (and KVM-requiring) behavior validation tests
+Build.run({"cargo", "test", "--features", "_debug_internal_asserts", "--", "--skip", "kvm"}, {name="test stdlib/fmt"}) -- artifacts are stored under `name` if that's present
+-- but no default features means these aren't built in!
Build.run({"cargo", "test", "--no-default-features"}, {name="test nostdlib/nofmt"})
Build.run({"cargo", "test", "--no-default-features", "--features", "fmt"}, {name="test nostdlib/fmt"})
Build.run({"cargo", "test", "--no-default-features", "--features", "std"}, {name="test nostdlib/std"})
+Build.run({"cargo", "test", "--no-default-features", "--features", "unstable"}, {name="test nostdlib/unstable"})
Build.run({"cargo", "test", "--no-default-features", "--features", "std,fmt"}, {name="test nostdlib/std+fmt"})
+Build.run({"cargo", "test", "--no-default-features", "--features", "std,fmt,unstable"}, {name="test nostdlib/std+fmt+unstable"})
+
+Step.advance("test-kvm")
+Build.run({"cargo", "test", "--release", "--no-default-features", "--features", "behavior"}, {name="test nostdlib/behavior"})
+Build.run({"cargo", "test", "--release", "--no-default-features", "--features", "behavior,fmt"}, {name="test nostdlib/behavior+fmt"})
+Build.run({"cargo", "test", "--release", "--no-default-features", "--features", "behavior,std"}, {name="test nostdlib/behavior+std"})
+Build.run({"cargo", "test", "--release", "--no-default-features", "--features", "behavior,fmt,std,_debug_internal_asserts"}, {name="test nostdlib/behavior+fmt+std"})
+Build.run({"cargo", "test", "--release", "--no-default-features", "--features", "behavior,fmt,std,unstable,_debug_internal_asserts"}, {name="test nostdlib/behavior+fmt+std+unstable"})
+
-- the interesting benchmarking happens through disas-bench, but the in-tree capstone bench isn't gone *quite* yet.
Step.start("bench")