Liste des Groupes | Revenir à c theory |
Since there is so much talk around, but not really about it,DD emulated by HHH according to the behavior that the x86
let's take a look:
https://github.com/plolcott/x86utm/blob/
48b4cbfeb3f486507276a5fc4e9b10875ab24dbf/Halt7.c#L1081
In line 1137, we compute a flag:
u32 Root = Init_Halts_HH(&Aborted, &execution_trace, &decoded, &code_end,
(u32)P, &master_state, &slave_state, &slave_stack);
In line 918, we find it basically checks for the magic number
**execution_trace==0x90909090. What is this unexplained value?
We then pass the saved flag in line 1143:
if (Decide_Halting_HH(&Aborted, &execution_trace, &decoded,
code_end, End_Of_Code, &master_state, &slave_state, &slave_stack, Root)),
defined in line 1030.
Then we get a switch:
1059 if (Root) // Master UTM halt decider
Line 1070 is then conditionally skipped:
Needs_To_Be_Aborted_HH((Decoded_Line_Of_Code*)**execution_trace);
defined in line 1012, which (on a jmp or call instruction) calls
u32 Needs_To_Be_Aborted_Trace_HH(Decoded_Line_Of_Code* execution_trace,
Decoded_Line_Of_Code *current)
in line 964, where the abort logic lives. (It basically triggers
on a call or jump to itself.)
So we only abort depending on the address of the execution trace.
This makes no sense. Why is that?
Les messages affichés proviennent d'usenet.