feat: implementation of transpiler for rv64#2405
Open
876pol wants to merge 8 commits intodevelop-v1.8.0from
Open
feat: implementation of transpiler for rv64#2405876pol wants to merge 8 commits intodevelop-v1.8.0from
876pol wants to merge 8 commits intodevelop-v1.8.0from
Conversation
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
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.
Resolves INT-6044.
This is mostly a mechanical copy of
extensions/rv32im/withRV32->RV64, limbs4->8, opcode offsets0x2xx->0x8xx.New code in
transpiler/src/lib.rs:rrs-libcrate used to decode RISC-V instructions only supports RV32, so extra logic is needed to handle RV64 specific commands:rrs_libonly handles 5-bitOther code changes:
elf.rs: addsclass: Classfield so downstream can distinguish ELF32 vs ELF64util.rs: 8 newfrom_*_rv64helpers — identical to RV32 versions but withRV64_REGISTER_NUM_LIMBSriscv.rs: addsRV64_REGISTER_NUM_LIMBS = 8Changes in
crates/toolchain/tests:rv32im-prefix for clarityrv64_transpiler_tests.rs: verifies ELF64 decoding, transpilation with no UNIMP, custom opcode presence, and phantom discriminantsrv64im-stress.S: exercises every RV64IM instruction group the transpiler handlesrv64im-intrin.S: exercises custom OpenVM opcodes (TERMINATE, PHANTOM, HINT_STORED, HINT_BUFFER)