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

From: Matthias-Christian Ott
Date: Mon Apr 25 2005 - 08:03:25 EST


Matthias-Christian Ott wrote:
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@xxxxxxxxxxxxxxx
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

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/