Welcome to the gecko-dev-riscv wiki! This repository aims to port features for Spidermonkey to RV64GC Linux platform (RISC-V ISA).
Table of Contents
- Goal
- Roadmap
- Schedule
- How to collaborate (Join Us!)
- Deliverables
- Upstreaming
- Documents and Findings
- Conclusions
- Contributors
Goal
The goal of this project is to port Spidermonkey's Baseline JIT Compilers to RISC-V ISA's RV64GC Platform. Adding additonal Spidermonkey support features for RISC-V architecture is desired.
Roadmap
Time | Task Log |
---|---|
Week 0 | Pre - Tasks |
Week 1 | Introduction and Induction |
Week 2 | Understanding Mozilla Codebase and testing on x86 |
Week 3 | Relating prev work with RISC-V |
Week 4 | Cross compiling on RV64GC |
Week 5 | Understanding JIT Code Structure |
Week 6 | Establising Base JIT Code Skeleton for RISC-V |
Week 7 | Native Compile using QEMU on Linux Fedora |
Week 8 | Native Compile Try on RISCV Unmatched Board |
Week 9 | Working on RISCV architecture and baseline code files |
Week 10 | Started Regression testing for RISCV |
Week 11 | Finalising JIT Code and initiating patch |
Week 12 | Finishing Documentation and post for review |
Schedule
Work Timeline: September 2021 to November 2021 Future Plans: Contribute towards achieving all deliverables
How to collaborate (Join Us!)
- Check out for exisiting
issues
or open up new ones. Feel free to comment on the issues. Contributors will reach out to you soon! - Contact on of the maintainers regarding work on that particular fix/issue.
- Fork this repository.
- Clone your fork to the local system or work environment
git clone https://github.com/<your_username>/gecko-dev-riscv
- Commit and Push suitable changes to your fork.
git add .
git commit -m "<suitable_commit_message>"
git push origin <branch_name>
- Issue a
pull request
to the necessary branch.
Deliverables
For Spidermonkey
- Generate binary executable for x86
- Native Compile Spidermonkey on x86
- Regression testing for x86
- Base JIT skeleton structure for RISC-V
- Generate binary executable for RISC-V
- Study RISC-V architecture
- Porting Baseline JIT Compiler and Interpreter to RISC-V
- JIT Regression testing on RV64GC Linux platform
- JS Regression testing for RV64GC Linux platform
- Porting complete JIT architecture to RISC-V
- Cross Compile Spidermonkey on RV64GC Linux platform
- Native Compile Spidermonkey on RV64GC Linux platform
- Native Compile using Emulator (QEMU/ TinyEMU)
- Native Compile using RISC-V Unleashed Board
- Upstreaming changes for code review
Upstreaming
Upstreaming work in progress
Documents and Findings
Conclusions
- Cross compiling Spidermonkey on RV64GC induces many linking errors after generating the binaries.
- Native compiling Spidermonkey on QEMU/TinyEMU emulator produces faster results than RISC-V Unmatched Hardware Board.