feat: i64 register pairs, globals/select, WAST pipeline + spec-testsuite#55
Merged
feat: i64 register pairs, globals/select, WAST pipeline + spec-testsuite#55
Conversation
i64 register pair support (all 38 operations): - Arithmetic: ADDS/ADC, SUBS/SBC for add/sub; UMULL+MLA for mul - Bitwise: AND/ORR/EOR on both halves - Comparisons: ORR+CMP for eqz; CMP hi then lo for relational - Shifts: funnel shift sequences for shl/shr_u/shr_s/rotl/rotr - Division: binary long division pseudo-ops - Conversions: extend (ASR #31), wrap (take low word), load/store pairs - 47 new tests (29 instruction selector + 18 encoder) GlobalGet/GlobalSet: - R9 as globals base register, LDR/STR with 4-byte stride - Both stack and non-stack instruction selection modes Select instruction: - CMP + MOV + SelectMove (IT EQ; MOV) pattern WAST test pipeline: - wast_multi_func_test Bazel macro replaces 2480 lines with 25 targets - All 22 .wast files wired into renode_test pipeline - Compiles with --all-exports, tests all functions per module Spec test suite: - Added WebAssembly/testsuite as git submodule (257 .wast files) - ~20 files runnable today (i32 + control flow + locals) 762 tests total (up from 687), clippy clean, fmt clean. Implements: FR-002 Implements: FR-005 Trace: skip Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
i64 Register Pair Support (all 38 operations)
GlobalGet/GlobalSet
Select Instruction
WAST Test Pipeline
wast_multi_func_testBazel macro replaces 2,480 lines of hand-crafted targets with 25 declarative calls--all-exports, tests all functions per moduleSpec Test Suite
WebAssembly/testsuiteas git submodule (257 .wast files)Rivet Artifacts
762 tests total (up from 687)
Test plan
cargo test --workspace— 762 tests, 0 failurescargo clippy --workspace --all-targets -- -D warnings— cleancargo fmt --check— clean🤖 Generated with Claude Code