-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: The great MIPS64 migration #35
Comments
@clabby we would like to try it. @thinkAfCod and I are planning to try more rust projects this year. |
I'd love to help if I can :) |
@clabby Based on the mips64 documentation and my own understanding, I completed the mips64 modification (including the current instruction set, registers and memory 64 bits, 8-byte alignment, excluding new instruction sets such as double-word support). #### Test code end ####
sw $v0, 8($s0) # Set the test result
sw $s1, 4($s0) # Set 'done' |
@GrapeBaBa Thank you very much for starting work on this! Awesome to see 💪 These tests were pulled from OpenMips, which is an implementation of MIPS32r1. These should still work on a MIPS64 processor - When executing MIPS32 instructions on a MIPS64 processor, the alignment requirements of MIPS32 instructions should be preserved. See page 27 of the architecture spec:
In other words - for MIPS32 instructions that read or write memory, the memory must preserve the ability to enforce single-word aligned accesses (32 bit / 4 byte alignment). For MIPS64 instructions, doubleword alignment rules apply when accessing memory. |
@clabby Right now all open_mips_tests passed, but vm tests failed, I changed the |
@clabby Except evm tests, all tests passed. Before the contract supports mips64, it may be necessary to review the rust code, especially the part about |
Overview
cannon-rs
was started as a side project, as a way to learn more aboutcannon
as well as spike out potential optimizations to the FPVM. Today, the project sits largely dormant as a fun toy.As the OP Stack approaches the multi-proof future, space for new Fault Proof VMs comes into play. Currently, the Test in Prod team is working on bringing https://github.com/protolambda/asterisc to production readiness.
cannon-rs
sits in an odd spot, where it is just a faster version ofcannon
, bringing little value to the security of the OP Stack.Instead of
cannon-rs
serving as an alternative implementation ofcannon
, it has the potential to serve as a 3rd fault proof VM with little modification - converting to the MIPS64 ISA. 64-bit register size gives many affordances - more platform support, larger memory address space, etc.This project is pending specification. If anyone would like to pick this up, please signal below and I'd be glad to help specify the work and guide the project :)
The text was updated successfully, but these errors were encountered: