RISC-V code generation in MaxineVM: An educational use case