File:  [DVB] / dietlibc / i386 / isleap.S
Revision 1.2: download - view: text, annotated - select for diffs
Mon Jul 30 13:34:41 2001 UTC (22 years, 10 months ago) by fefe
Branches: MAIN
CVS tags: finnland_test_200301, branch_rc14_fieldtest_finnland, branch_rc13_fieldtest_finnland, branch_rc12_fieldtest_finnland, branch_rc10_fieldtest_finnland, RELEASE_finnland_200301_1, RC12_FIELDTEST_FINNLAND, RC10_FIELDTEST_FINNLAND, HEAD
make iproute2 compile (and fix atol)

.text
.globl __isleap
.type    __isleap,@function

__isleap:
        movl    4(%esp),%eax
        testb   $3,%al
        jne     .Lretzero
#if 1
        movb    $100,%cl        /* this works only for 0 a.D. ... 25599 a.C. */
        divb    %cl
        andb    %ah,%ah
#else
        cltd                    /* This works for 2147483648 b.C. ... 2147483647 a.C. */
        movl    $100,%ecx
        divl    %ecx
        andl    %edx,%edx
#endif
        jne     .Lretone
        testb   $3,%al
        jne     .Lretzero
.Lretone: xorl    %eax,%eax
        incl    %eax
        ret

.Lretzero:xorl    %eax,%eax
        ret


LinuxTV legacy CVS <linuxtv.org/cvs>