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 [email protected]
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 [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]