On Wed, Jan 30, 2008 at 06:17:18PM +0800, Bean wrote:
> I figure it out, the problem is caused by nested function:
> 
> int call_hook (grub_uint64_t ino, char *filename)
> 
> it would take 3 registry to pass the parameter ! (2 for ino), so %ecx
> will be overwritten agian.
> 
> NESTED_FUNC_ATTR doesn't help, because there is only 2 parameters
> here, so you need to use  __attribute__ ((regparm (1))) explicitly.

Cool.  I wonder, how do you manage to catch this kind of things.  Do you
use a debugger in qemu, or just read the code and then you see it :-) ?

-- 
Robert Millan

<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call… if you are unable to speak?
(as seen on /.)


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to