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