Re: Runaway cron task on 2.5.63/4 bk?

From: Andrew Morton (akpm@digeo.com)
Date: Tue Mar 11 2003 - 18:09:13 EST


Linus Torvalds <torvalds@transmeta.com> wrote:
>
>
> On Tue, 11 Mar 2003, Andrew Morton wrote:
> >
> > gcc will generate 64bit * 64bit multiplies without resorting to
> > any library code
>
> However, gcc is unable to do-the-right-thing and generate 32x32->64
> multiplies, or 32x64->64 multiplies, even though those are both a _lot_
> faster than the full 64x64->64 case.

2.95.3 and 3.2.1 seem to do it right?

long a;
long b;
long long c;

void foo(void)
{
        c = a * b;
}

        .file "t.c"
        .version "01.01"
gcc2_compiled.:
.text
        .align 4
.globl foo
        .type foo,@function
foo:
        pushl %ebp
        movl %esp,%ebp
        movl a,%eax
        imull b,%eax
        movl %eax,c
        cltd
        movl %edx,c+4
.L2:
        movl %ebp,%esp
        popl %ebp
        ret
.Lfe1:
        .size foo,.Lfe1-foo
        .comm a,4,4
        .comm b,4,4
        .comm c,8,4
        .ident "GCC: (GNU) 2.95.3 20010315 (release)"

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



This archive was generated by hypermail 2b29 : Sat Mar 15 2003 - 22:00:28 EST