Re: [Patch] Re: Nasty suprise with uptime

Benjamin LaHaise
2001-11-01T17:02:54Z

On Thu, Nov 01, 2001 at 10:34:53AM -0500, Richard B. Johnson wrote:
> Well not exactly zealots. I test a lot of stuff. In fact, the code
> you propose:
>
> if(++jiffies==0) jiffies_hi++;
>
> ... actually works quite well:

Uhm, no, it really doesn't. See how it pairs with other instructions and
what the cost is when it doesn't have to be as bad:

this:
unsigned long a, b;
if (++a == 0) b++;
gives:
movl a, %eax
movl %esp, %ebp
incl %eax
testl %eax, %eax
movl %eax, a
je .L3
.L2:
popl %ebp
ret
.p2align 4,,7
.L3:
incl b
jmp .L2

which is really gross considering that:

unsigned long long c;
c++;

gives:

addl $1, c
adcl $0, c+4

which is quite excellent.

-ben