Skip site navigation (1)Skip section navigation (2)
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>