Pushing the limits of RISC-V emulation