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