diff options
Diffstat (limited to 'src/libthread/Linux.c')
-rw-r--r-- | src/libthread/Linux.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/libthread/Linux.c b/src/libthread/Linux.c index 5d033248..73cb28e0 100644 --- a/src/libthread/Linux.c +++ b/src/libthread/Linux.c @@ -449,7 +449,8 @@ makecontext(ucontext_t *uc, void (*fn)(void), int argc, ...) sp = (int*)uc->uc_stack.ss_sp+uc->uc_stack.ss_size/4; va_start(arg, argc); for(i=0; i<4 && i<argc; i++) - uc->uc_mcontext.gregs[0] = va_arg(arg, uint); + uc->uc_mcontext.gregs[i] = va_arg(arg, uint); + va_end(arg); uc->uc_mcontext.gregs[13] = (uint)sp; uc->uc_mcontext.gregs[14] = (uint)fn; } |