x86: Fix do_go_exec()

This was broken a long time ago by a49864593e
which munged the NIOS and x86 do_go_exec()

Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
This commit is contained in:
Graeme Russ
2010-04-24 00:05:39 +10:00
committed by Wolfgang Denk
parent 433ff2bdbc
commit 9e08efcfee

View File

@@ -422,10 +422,10 @@ void hang (void)
unsigned long do_go_exec (ulong (*entry)(int, char *[]), int argc, char *argv[]) unsigned long do_go_exec (ulong (*entry)(int, char *[]), int argc, char *argv[])
{ {
/* /*
* TODO: Test this function - changed to fix compiler error. * x86 does not use a dedicated register to pass the pointer
* Original code was: * to the global_data
* return (entry >> 1) (argc, argv);
* with a comment about Nios function pointers are address >> 1
*/ */
argv[-1] = (char *)gd;
return (entry) (argc, argv); return (entry) (argc, argv);
} }