Pushing the limits of RISC-V emulation

(shuklaayu.sh)

20 points | by shuklaayush 7 days ago ago

4 comments

  • dmitrygr an hour ago ago

    At the end it is not emulation but static recompilation (which is, arguably, cooler)

    • throwaway27448 21 minutes ago ago

      How do you differentiate the two? What is the benefit of such a distinction? Why not use eg threaded emulation vs recompiled emulation?

      • dmitrygr 3 minutes ago ago

        Emulation visits instructions as they are executed. Static recompilation will (at translation time) visit instructions that can be discovered, even if they never run.

        eg:

           if (rand64() == 0x123456789abcdef0ull)
              baz = bar;
        
        an emulator will likely never visit that assignment. A static recompiler will translate it.
        • throwaway27448 a few seconds ago ago

          Hm. What is the utility of this distinction?