Date: Tue, 10 Dec 2002 07:46:36 -0800 From: Chuck Tuffli <chuck_tuffli@agilent.com> To: freebsd-hackers@freebsd.org Subject: registers not saved Message-ID: <20021210154635.GC605@thegrail.rose.agilent.com>
next in thread | raw e-mail | index | archive | help
I've been chasing down some weird panics in my CAM driver and have noticed that functions don't seem to save all register values before they modify them. For example, function A uses register ecx to hold the value of a pointer. Part way through, function A calls function B which uses ecx as a loop index. The bad part is function B never saves/restores the value of ecx and function A starts dereferencing garbage. An informal sampling of my driver seems to indicate that ebx gets pushed/poped at entry/exit but ecx and edx don't. Does any of this sound familiar? Thanks! -- Chuck Tuffli <chuck_tuffli AT NO_SPAM agilent DOT com> Agilent Technologies, Storage and Networking 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?20021210154635.GC605>