Hacker News new | ask | show | jobs
by calaphos 1920 days ago
The current ARMeilleure seems to emit x86 instructions directly and execute them, so never really using the intermediate representation of Jit compiler of the .Net runtime.

However the previous cpu emulator apparently emitted .Net byte code and used RyuJIT (the .Net jit) to emit the final native code.

> if it's running on an ARM processor does it just run the instructions directly?

So maybe? There are some passes in between but one would think it would at least result in very similar instructions.

1 comments

> However the previous cpu emulator apparently emitted .Net byte code and used RyuJIT (the .Net jit) to emit the final native code.

This seems like a good use case for using .Net. Why did they move away from it?

The .NET and Java VMs probably aren't optimized for the incoming bytecode also being JIT generated, never needing to allocate memory, wanting to be register-based, etc.

Also, I haven't tried JITting them but I've always found their bytecodes to be pretty inexpressive compared to a real CPU (or even LLVM).