| Deutsch English Français Italiano |
|
<v493ml$vlup$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!feed.opticnetworks.net!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Mikko <mikko.levanto@iki.fi>
Newsgroups: comp.theory
Subject: Re: D correctly simulated by H proved for THREE YEARS ---
Date: Tue, 11 Jun 2024 12:00:05 +0300
Organization: -
Lines: 71
Message-ID: <v493ml$vlup$1@dont-email.me>
References: <v45tec$4q15$1@dont-email.me> <v46drt$3i580$1@i2pn2.org> <v46ipg$bqg4$1@dont-email.me> <v476c3$ggn5$12@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 11 Jun 2024 11:00:06 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="d85ead99d95209551742cb12f3fa5675";
logging-data="1038297"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18pS1/dIuNV2LRGBsmm73ja"
User-Agent: Unison/2.2
Cancel-Lock: sha1:sMwRfygJxWDxWt5Jk03RGh0UVMY=
Bytes: 4241
On 2024-06-10 15:33:23 +0000, olcott said:
> On 6/10/2024 4:59 AM, Mikko wrote:
>> On 2024-06-10 08:35:09 +0000, joes said:
>>
>>> Am Sun, 09 Jun 2024 22:54:52 -0500 schrieb olcott:
>>>> On 5/29/2021 2:26 PM, olcott wrote:
>>>> https://groups.google.com/g/comp.theory/c/dTvIY5NX6b4/m/cHR2ZPgPBAAJ
>>>>
>>>> THE ONLY POSSIBLE WAY for D simulated by H to have the same behavior as
>>>> the directly executed D(D) is for the instructions of D to be
>>>> incorrectly simulated by H (details provided below).
>>>>
>>>> _D()
>>>> [00000cfc](01) 55 push ebp
>>>> [00000cfd](02) 8bec mov ebp,esp
>>>> [00000cff](03) 8b4508 mov eax,[ebp+08]
>>>> [00000d02](01) 50 push eax ; push D
>>>> [00000d03](03) 8b4d08 mov ecx,[ebp+08]
>>>> [00000d06](01) 51 push ecx ; push D
>>>> [00000d07](05) e800feffff call 00000b0c ; call H
>>>> [00000d0c](03) 83c408 add esp,+08
>>>> [00000d0f](02) 85c0 test eax,eax
>>>> [00000d11](02) 7404 jz 00000d17
>>>> [00000d13](02) 33c0 xor eax,eax
>>>> [00000d15](02) eb05 jmp 00000d1c
>>>> [00000d17](05) b801000000 mov eax,00000001
>>>> [00000d1c](01) 5d pop ebp
>>>> [00000d1d](01) c3 ret Size in
>>>> bytes:(0034) [00000d1d]
>>>>
>>>> In order for D simulated by H to have the same behavior as the directly
>>>> executed D(D) H must ignore the instruction at machine address
>>>> [00000d07]. *That is an incorrect simulation of D*
>>> I don't understand. Does D(D) ignore the call to H(D,D)?
>>>
>>>> H does not ignore that instruction and simulates itself simulating D.
>>>> The simulated H outputs its own execution trace of D.
>>
>> What instructions does H use to output that trace and how those
>
> I don't remember it has been two years.
> I am looking into this again.
>
>> instructions are simulated when H is simulated?
>>
>
> They are simulated by
> u32 DebugStep(Registers* master_state,
> Registers* slave_state, Decoded_Line_Of_Code* decoded)
> { return 0; }
>
> This depends on libx86emu.
>
>> And why does H output any traces? That is not required by its
>
> The traces are output so that people can directly see the
> same infinite recursion behavior pattern that H sees and
> thus know that H really is required to abort ts simulation.
Looks like they don't serve that purpose. Perhaps you should
change something.
>> specification or purpose. If traces are needed for some other
>> purpose it would be better to let the execution environment
>> make the traces. If your normal execution environment cannot
>> make them then use ontother one that can, e.g. a simulator.
--
Mikko