Date: Thu, 25 Apr 2002 10:21:34 -0400 (EDT) From: Andrew Gallatin <gallatin@cs.duke.edu> To: Kenneth Culver <culverk@alpha.yumyumyum.org> Cc: Peter Wemm <peter@wemm.org>, John Baldwin <jhb@FreeBSD.ORG>, freebsd-hackers@FreeBSD.ORG Subject: pushal & ebp Message-ID: <15560.4334.821343.177003@grasshopper.cs.duke.edu> In-Reply-To: <20020424215718.F40543-100000@alpha.yumyumyum.org> References: <20020424210936.S40254-100000@alpha.yumyumyum.org> <20020424215718.F40543-100000@alpha.yumyumyum.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Kenneth Culver writes: > So, as far as I can tell, this version of glibc is doing the Right Thing, > and the ebp register is getting messed up somewhere along the line in > either the assembly code that handles the 0x80 trap in FreeBSD, or in > syscall2 (I think it's probably the asm that handles the 0x80 trap)... > > Can anyone confirm this? I just looked at the NetBSD code & like linux, they use a macro which individually pushes the registers onto the stack rather than using pushal (which I assume is the same as what intel calls PUSHAD in their x86 instruction set ref. manual). NetBSD stopped using pushal in 1994 in rev 1.85 of their arch/i386/i386/locore.s in a commit helpfully documented "Don't use pusha and popa." Does anybody know why the other OSes push the registers individually, rather than using pushal? Could our using pushal be causing Kenneth's ebp to get lost, or is this just a red herring? Thanks, Drew To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?15560.4334.821343.177003>