aboutsummaryrefslogtreecommitdiff
path: root/src/thread/mips/clone.s (follow)
Commit message (Expand)AuthorAgeFilesLines
* fix clobbering of caller's stack in mips __clone function•••this was resulting in crashes in posix_spawn on mips, and would have affected applications calling clone too. since the prototype for __clone has it as a variadic function, it may not assume that 16($sp) is writable for use in making the syscall. instead, it needs to allocate additional stack space, and then adjust the stack pointer back in both of the code paths for the parent process/thread. Rich Felker2013-09-161-0/+3
* fix child stack alignment on mips clone•••unlike other archs, the mips version of clone was not doing anything to align the stack pointer. this seems to have been the cause for some SIGBUS crashes that were observed in posix_spawn. Rich Felker2013-09-141-0/+1
* mips clone: don't free stack space used to copy arg•••the mips abi reserves stack space equal to the size of the in-register args for the callee to save the args, if desired. this would cause the beginning of the thread structure to be clobbered... Rich Felker2012-07-111-1/+0
* fix mips clone() on real linux kernel•••the old code worked in qemu app-level emulation, but not on real kernels where the clone syscall does not copy the register values to the new thread. save arguments on the new thread stack instead. Rich Felker2012-07-111-4/+7
* fix clone() on mips (args were in wrong order)•••with this change, threads on mips seem to be working Rich Felker2012-07-111-3/+2
* first attempt at making threads work on mipsRich Felker2012-07-111-0/+27