Port-xen archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

x86 assembly again



Hi,
again, I'd like some sanity checks on my assembly though.
I think in this piece of code:
IDTVEC(spllower)
#if defined(DDB) || defined(GPROF)
        pushl   %ebp
        movl    %esp,%ebp
        MCOUNT_ASM
#endif /* defined(DDB) || defined(GPROF) */
        pushl   %ebx
        pushl   %esi
        pushl   %edi
        pushl   %ecx
#if defined(DDB) || defined(GPROF)
        movl    8(%ebp),%ebx
#else /* defined(DDB) || defined(GPROF) */
        movl    16(%esp),%ebx
#endif /* defined(DDB) || defined(GPROF) */

the movl 16(%esp),%ebx is broken, it should be 20. However the
DDB | GPROF case is right, as we saved %esp in %ebp before pushing more
registers.
I am right ?

-- 
Manuel Bouyer <bouyer%antioche.eu.org@localhost>
     NetBSD: 26 ans d'experience feront toujours la difference
--



Home | Main Index | Thread Index | Old Index