git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH GIT 0.6] make use of register variables & size_t

From
MOMatthias-Christian Ott <matthias.christian@tiscali.de>
Date
Apr 25, 2005, 13:01 UTC
Message-ID
<426CEA3B.50300@tiscali.de>
In-Reply-To
<426CE904.9010505@tiscali.de>
Matthias-Christian Ott wrote:
Show 34 quoted lines
> Rene Rebe wrote:
> 
>> Hi,
>>
>> Matthias-Christian Ott wrote:
>>
>>> The "git" didn't try store small variables, which aren't referenced, 
>>> in the processor registers. It also didn't use the size_t type. I 
>>> corrected a C++ style comment too.
>>
>>
>>
>> Well, modern compilers take register as a non-binding hint. Your 
>> register storage specification for those loop counters will not make 
>> any change. You have not looked into the resulting binary?
>>
>> Also // is valid C99 ...
>>
>> Yours,
>>
> But if you use only /* */ comments and there's a // comment it looks 
> ugly :).
> 
> I've disassembled the code and it for me (I'm not a professional 
> assembler coder) it looks like it's stored in a register because the ebp 
> offsets are smaller and the gcc (4.0) wouldn't cause an error if you 
> reference them.
> 
> Matthias-Christian Ott
> -
> To unsubscribe from this list: send the line "unsubscribe git" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

Here's some example code (diff of the assembler codes) which shows what I mean:

-       movl    %eax, -8(%ebp)
+       movl    %eax, -4(%ebp)
[..]
-       leal    1(%eax), %ecx
-       movl    -52(%ebp), %edx
+       leal    1(%eax), %edx
         movl    12(%ebp), %eax
-       subl    %edx, %eax
-       movl    %eax, %edx
-       movl    -52(%ebp), %eax
+       movl    %eax, %ecx
+       subl    -80(%ebp), %ecx
+       movl    -80(%ebp), %eax
         sall    $2, %eax
         movl    %eax, %ebx
         addl    8(%ebp), %ebx
Previous: Matthias-Christian OttNext: David A. Wheeler
Message 4 of 21 in “make use of register variables & size_t”
  1. make use of register variables & size_tMatthias-Christian Ott, Apr 25, 2005
  2. Rene RebeApr 25, 2005
  3. Matthias-Christian OttApr 25, 2005
  4. Matthias-Christian OttApr 25, 2005
  5. David A. WheelerApr 25, 2005
  6. Petr BaudisApr 25, 2005
  7. Pekka EnbergApr 25, 2005
  8. Linus TorvaldsApr 25, 2005
  9. Matthias-Christian OttApr 25, 2005
  10. Jan-Benedict GlawApr 25, 2005
  11. Thomas GlanzmannApr 25, 2005
  12. Jan-Benedict GlawApr 25, 2005
  13. Matthias-Christian OttApr 25, 2005
  14. valdis.kletnieks@vt.eduApr 25, 2005
  15. Linus TorvaldsApr 25, 2005
  16. Matthias-Christian OttApr 25, 2005
  17. Linus TorvaldsApr 25, 2005
  18. Arjan van de VenApr 25, 2005
  19. valdis.kletnieks@vt.eduApr 25, 2005
  20. Brian O'MahoneyApr 25, 2005
  21. Dmitry TorokhovApr 25, 2005

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.