-
Notifications
You must be signed in to change notification settings - Fork 57
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
spike: mips64r2
target support
#942
Comments
I've done some investigation tonight, and I think this should work if we add more instructions to The build target now seems to generate valid I've got a draft branch up in cannon that I was using for some experimenting here as well: https://github.com/ethereum-optimism/optimism/compare/cl/support-full-r2?expand=1 |
It's cool to see that target compilation working. Given mips32r2 has tier 3 support in Rust, how confident are we that the codegen quality? I'm a bit worried about correctness than efficiency. There are several open mips-specific issues in the rust gh that indicate it may not good enough. Nonetheless, it would still be good to have kona+cannon available as a backup option. The unimplemented instructions look straight forward enough. No weird ones like LL/SC that need tender care, so I think we can probably have them implemented and reviewed quickly if we had some time to spare. Pretty baller of you to have a draft up already. This looks promising. Main bottleneck is finding time to finish up adding support for additional instructions to cannon. We'd probably end up shipping Asterisc anyways if cannon+kona doesn't land in time. |
Good question - less confident than the RISC-V target for sure, but given that we're generating bare-metal code, I'd hope the target is "stable enough" since we don't need any of the std lib etc. The LLVM target has been around for a long time, and is maintained by a range of folks it looks like, but not incredibly active like other targets. It's probably worth the effort to finish the implementation of the remaining mips64r2 instructions and just see if it works. The draft for the cannon instructions ins't complete just yet, just a few instructions - will need to chase down remaining unsupported instructions to wrap it up. Glad to walk through how to run kona on cannon from #943 locally, if you guys are able to take that on. |
Going to go ahead and close this issue along with #943. The compilation looks fine through some manual |
Overview
Right now, we test compilation against a custom
mips32r1
target, butcannon
has been updated to support themips64r2
target.Being able to run
kona
oncannon
is desirable, allowing the use ofcannon
as the backing fault proof VM for a production deployment whileasterisc
is finished up.I've already given some attempts to compile kona to a bare metal
mips64r2
target, but wasn't able to get it running on the MT64 variant ofcannon
on the afternoon I was trying it out. Possibly with a bit more exploration, this could work.The text was updated successfully, but these errors were encountered: