Note that there are some explanatory texts on larger screens.

plurals
  1. POWhy is the CLR's jmp instruction unverifiable?
    primarykey
    data
    text
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. COWould this be because it could not verify the impact of execution of the current partially code block then stitched to the destination code block ... Something about stacks / heap tracking seems to flag in my little dreamworld ... not that I know this for sure though ... however that is immediatly offset by the information here ... http://msdn.microsoft.com/en-us/library/system.reflection.emit.opcodes.jmp.aspx ... which clearly states that no stack information is tracked / transferred. Maybe there's something underneath the "front end" that goes on here that Microsoft is hiding.
      singulars
    2. COI don't know why it's unverifiable, but I do have an interesting piece of info. Our EQATEC Profiler collects anonymous statistics about all the code it profiles (using EQATEC Analytics, btw). Because jmp was tricky and not handled optimally by the profiler we decided to track how often it actually occurred. We now have 2 years of data, collected from over 1 million profiled assemblies, totalling 20 billion CIL instructions. Quite a lot. And how many were jmp? None! Yes, a jmp has never occurred in any of our user's apps (NETCF, SL, WP7, F# etc). Quite a surprise.
      singulars
    3. COI'm not too surprised actually. No compiler I know of except perhaps managed C++ emits the jmp instruction, because it's unverifiable. Any uses of jmp might be squirreled away in the trusted class libraries.
      singulars
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload