about summary refs log tree commit diff
path: root/src/rt/arch/i386/context.h
AgeCommit message (Collapse)AuthorLines
2013-10-19Use __morestack to detect stack overflowAlex Crichton-53/+0
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-01-17Add a license check to tidy. #4018Brian Anderson-1/+0
2012-12-10Add license boilerplate to more files.Graydon Hoare-0/+10
2012-02-09rt: Use rust_task_thread's C-stack pool for native callsBrian Anderson-6/+0
2012-02-09rt: Rename call_shim_on_c_stack to call_and_change_stacksBrian Anderson-1/+1
2012-02-09rt: Remove unused context functionsBrian Anderson-14/+0
2012-01-06add alignment to i386 for good measure, though we do not yetNiko Matsakis-1/+1
save SSE regs in i386 (we ought to, though!)
2011-12-19rt: Rename asm_call_on_stack to __morestackBrian Anderson-2/+2
Newer gdb's will backtrace through functions named __morestack even if they change the stack.
2011-12-06Make valgrind usage more consistent and less error prone.Austin Seipp-3/+1
I was still having issues with the build system somehow getting confused as to which set of valgrind headers to use when compiling rt. This commit moves all the valgrind headers into their own directory under rt and makes the usage more consistent. The compiler is now passed the -DNVALGRIND flag when valgrind is not installed, as opposed to passing -DHAVE_VALGRIND. We also pass -I src/rt to the compiler when building rt so you can more easily import what you want. I also cleaned up some erroneous #includes along the way. It should be safe to always just import the local valgrind headers and use them without question. NVALGRIND turns the operations to no-ops when it is active, and the build and tests run cleanly with or without.
2011-11-18get pure wrappers approach runningNiko Matsakis-0/+6
2011-10-23Fix an insane rt build error running 'make check -j3'Austin Seipp-3/+1
2011-10-05rt: Make C stack switching Valgrind-clean by warning Valgrind when we're ↵Patrick Walton-1/+12
about to write to the C stack from the Rust stack
2011-09-28rt: Add a call stub that switches to the C stack, untested as of yetPatrick Walton-0/+1
2011-09-28rt: Add an upcall to allocate space on the C stack. This will be used for ↵Patrick Walton-9/+18
native calls on the C stack.
2011-08-15Added a library version of spawn. Before long, we can remove the old version.Eric Holk-1/+1
2011-07-13Prohibit trailing whitespace under 'tidy' script. Clean up all caught cases.Graydon Hoare-1/+1
2011-06-23Wrote swap_context in assembly. Closes #548. This also allows us to ↵Eric Holk-2/+0
re-enable optimization on OSX for both gcc and clang. Also, re-enamed task-comm-1.rs, which was previously broken by optimization.
2011-06-15Fixed a problem where spawn arguments were getting lost again. Also, fixed ↵Eric Holk-0/+8
up stack alignment, which closes #496
2011-06-13This is the mega-ucontext commit. It replaces the task switching mechanism ↵Eric Holk-0/+35
with a new one inspired by ucontext. It works under Linux, OS X and Windows, and is Valgrind clean on Linux and OS X (provided the runtime is built with gcc). This commit also moves yield and join to the standard library, as requested in #42. Join is currently a no-op though.