Deutsch   English   Français   Italiano  
<69ea9e900ed4aa9b3325b011a95dde1c2b5fd69e@i2pn2.org>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: news.eternal-september.org!eternal-september.org!feeder3.eternal-september.org!news.quux.org!news.nk.ca!rocksolid2!i2pn2.org!.POSTED!not-for-mail
From: joes <noreply@example.org>
Newsgroups: comp.theory
Subject: Re: The actual code of HHH
Date: Thu, 27 Feb 2025 21:07:26 -0000 (UTC)
Organization: i2pn2 (i2pn.org)
Message-ID: <69ea9e900ed4aa9b3325b011a95dde1c2b5fd69e@i2pn2.org>
References: <f73c3b97590a4d189e33a2cf255ed3337e56d3cf@i2pn2.org>
	<vppdf8$32jp4$1@dont-email.me>
	<IHCdnbVJVtETLF36nZ2dnZfqn_SdnZ2d@brightview.co.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Date: Thu, 27 Feb 2025 21:07:26 -0000 (UTC)
Injection-Info: i2pn2.org;
	logging-data="2082623"; mail-complaints-to="usenet@i2pn2.org";
	posting-account="nS1KMHaUuWOnF/ukOJzx6Ssd8y16q9UPs1GZ+I3D0CM";
User-Agent: Pan/0.145 (Duplicitous mercenary valetism; d7e168a
 git.gnome.org/pan2)
X-Spam-Checker-Version: SpamAssassin 4.0.0

Am Thu, 27 Feb 2025 18:40:14 +0000 schrieb Mike Terry:
> On 27/02/2025 10:06, Mikko wrote:
>> On 2025-02-26 21:52:31 +0000, joes said:
>> 
>>> Since there is so much talk around, but not really about it,
>>> 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?
>> 
>> The variable execution_trace is a pointer to a pointer to a 32 bit
>> unsigned int. The function Init_Halts_HH may update the pointer
>> *execution_trace or the number **execution_trace. The special value
>> 0x90909090, when interpreted as a fragment of a program, means four no
>> operation instructions. That many no operation instructions is not used
>> in the compiled code so it can be used as a speial value where
>> otherwise instrunctions generated by the compiler are expected.
Thank you.

> Given this design, the inner HHHs must not allocate another
> trace table.  Also they skip the abort analysis logic, making their
> simulated code behaviour different from the outermost HHH.
^

> Why 0x90909090?  When you look at the HHH code, you probably wonder "WTF
> is all this DATA1, DATA2 and related assembler stuff for?"  The answer
> is it's not really for anything useful!  It was just some experiment PO
> was conducting at some point to show to himself that the code of HHH
> could update itself if it wanted to.  The DATA1/DATA2 areas hold the
> direct addresses to global data areas like the execution trace table. 
> PO initialises them with:
So the memory is garbage before and doesn't get updated afterwards?

> ..and the nop instruction is 0x90, hence the first-through test for
> 0x90909090.
That was the bit I'm missing.

> Why did PO use nop instructions here?  Well, he has code elsewhere that
> disassembles all the halt7.c functions as part of x86utm.exe output
> listing.  That code would expect DATA1/DATA2 to contain valid x86
> instructions or it would choke.  The comments in the code above shows
> that he doesn't understand TMs and the concept of code vs data, and the
> fact that a TMs code is not on its tape etc. etc. etc.
-- 
Am Sat, 20 Jul 2024 12:35:31 +0000 schrieb WM in sci.math:
It is not guaranteed that n+1 exists for every n.