Back to News
Advertisement
Advertisement

⚡ Community Insights

Discussion Sentiment

50% Positive

Analyzed from 110 words in the discussion.

Trending Topics

#emulation#static#recompilation#distinction#recompiling#instruction#instructions#visit#never#emulator

Discussion (5 Comments)Read Original on HackerNews

dmitrygr•about 1 hour ago
At the end it is not emulation but static recompilation (which is, arguably, cooler)
throwaway27448•39 minutes ago
How do you differentiate the two? What is the benefit of such a distinction? Why not use eg threaded emulation vs recompiled emulation?
drunken_thor•16 minutes ago
In my limited understanding, static recompiling is like JIT transpilation from one arch to another where emulation runs each instruction calling behaviour depending on the instruction. As for tradeoffs my knowledge is not wide enough to declare anything certain.
dmitrygr•21 minutes 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•18 minutes ago
Hm. What is the utility of this distinction?

Anyway, qemu certainly seems like it would fall under your definition of "emulator" despite obviously dynamically recompiling.