about summary refs log tree commit diff
path: root/src/rt/arch/mips
AgeCommit message (Collapse)AuthorLines
2015-08-10Remove morestack supportAlex Crichton-83/+0
This commit removes all morestack support from the compiler which entails: * Segmented stacks are no longer emitted in codegen. * We no longer build or distribute libmorestack.a * The `stack_exhausted` lang item is no longer required The only current use of the segmented stack support in LLVM is to detect stack overflow. This is no longer really required, however, because we already have guard pages for all threads and registered signal handlers watching for a segfault on those pages (to print out a stack overflow message). Additionally, major platforms (aka Windows) already don't use morestack. This means that Rust is by default less likely to catch stack overflows because if a function takes up more than one page of stack space it won't hit the guard page. This is what the purpose of morestack was (to catch this case), but it's better served with stack probes which have more cross platform support and no runtime support necessary. Until LLVM supports this for all platform it looks like morestack isn't really buying us much. cc #16012 (still need stack probes) Closes #26458 (a drive-by fix to help diagnostics on stack overflow)
2014-12-22Removed unused context-switching assembly code.Maya Nitu-88/+0
2014-03-14fix MIPS targetJyun-Yan You-25/+8
I ignored AtomicU64 methods on MIPS target because libgcc doesn't implement MIPS32 64-bit atomic operations. Otherwise it would cause link failure.
2013-11-18rt: Namespace all C functions under rust_Brian Anderson-4/+4
2013-10-19Use __morestack to detect stack overflowAlex Crichton-310/+9
This commit resumes management of the stack boundaries and limits when switching between tasks. This additionally leverages the __morestack function to run code on "stack overflow". The current behavior is to abort the process, but this is probably not the best behavior in the long term (for deails, see the comment I wrote up in the stack exhaustion routine).
2013-05-21fix mips stack alignmentJyun-Yan You-2/+4
2013-05-09improve MIPS backend and implement segmented stacksJyun-Yan You-5/+101
2013-05-03add gitattributes and fix whitespace issuesDaniel Micay-1/+0
2013-04-04rt: improve mips backendJyun-Yan You-11/+22
2013-03-31mark the assembly object stacks as non-executableDaniel Micay-0/+15
Closes #5643 This also removes the need to pass noexecstack to gcc, but that wasn't actually working anymore.
2013-03-17rt: Inline get_sp_limit/set_sp_limit/get_sp for x86_64.Luqman Aden-0/+29
2013-03-03rt: fix some bugs for MIPS targetJyun-Yan You-2/+23
2013-03-03rt: MIPS32 supportJyun-Yan You-0/+316