about summary refs log tree commit diff
path: root/src/rt/rust_upcall.cpp
AgeCommit message (Collapse)AuthorLines
2011-12-18rt: Create different stack-switching paths for upcalls and shimsBrian Anderson-22/+34
Shims need to play with the stack limit, upcalls don't. Only one upcall, upcall_fail is allowed to catch, and we need a find a way to get rid of that catch as well because it results in _Unwind_Resume running off the end of the Rust stack.
2011-12-17rt: Turn on stack alignment checks for macBrian Anderson-2/+2
2011-12-16rt: Only call check_stack_alignment on linuxBrian Anderson-0/+5
2011-12-16rt: Insert stack alignment checks into upcallsBrian Anderson-0/+10
2011-12-16update to not look at descs[], which is not necessarily validNiko Matsakis-8/+10
if the input is a statically allocated type_desc
2011-12-15massive refactor of how closures workNiko Matsakis-38/+91
2011-12-14export upcall_clone_type_descNiko Matsakis-1/+1
2011-12-14clone type desc into exchange heapNiko Matsakis-1/+4
2011-12-14get basic code generation working, clone type descs for lambda[send]Niko Matsakis-0/+33
2011-12-11rt: Call upcall_fail on the C stackBrian Anderson-3/+1
2011-12-07rt: Reorganize and add documentation for rust_upcall.cppBrian Anderson-170/+163
2011-12-07rt: Run most upcalls on the C stackBrian Anderson-60/+66
2011-12-06rt: Reorganize rust_upcall.cpp a bitBrian Anderson-32/+36
2011-12-06rt: Convert log_type and cmp_type upcalls to shim formBrian Anderson-10/+39
2011-12-06rt: Move upcall_cmp_type/upcall_log_type to rust_upcall.cppBrian Anderson-0/+20
2011-12-06modify upcalls to take structs as argsNiko Matsakis-84/+252
2011-12-06rt: Various tweaks to make __morestack unwinding work on linuxBrian Anderson-0/+9
When unwinding through __morestack the stack limit in the TLS is invalidated and must be reset. Instead of actually landing at __morestack we're just going to make all our Rust landing pads call upcall_reset_stack_limit, which will find the stack segment that corresponds to the current stack pointer and put the limit in the TLS. Also massively expand the stack segment red zone to make more room for the dynamic linker. Will fix in the future.
2011-12-05rt: Make stack unwinding work more correctly with stack growthBrian Anderson-2/+2
2011-12-05test: Test hitting the dynamic linker in the red zoneBrian Anderson-3/+3
2011-12-05rt: Use an out pointer for rust_new_stackBrian Anderson-9/+21
upcall_call_shim_on_c_stack does not handle return values
2011-12-05test: Add more tests for stack growthBrian Anderson-3/+11
2011-11-30rt: Reorganize stack growth codeBrian Anderson-0/+20
2011-11-30rt: Remove upcall_alloc_c_stack/call_c_stack, et. al.Brian Anderson-10/+0
We are using upcall_call_shim_on_c_stack now
2011-11-18get pure wrappers approach runningNiko Matsakis-0/+10
2011-11-02hack around on makefiles trying to get a 64 bit buildNiko Matsakis-1/+5
right now there are many temporary hacks, search for NDM to find them
2011-10-20Get rid of taskpointer-passing throughout the compilerMarijn Haverbeke-3/+2
Only intrinsics still take a dummy taskptr. We'll have to do some makefile stunts to snapshot a version without taskptrs-in-intrinsics. Issue #466
2011-10-20Do not pass taskpointers to "rust" native functionsMarijn Haverbeke-2/+2
Issue #466
2011-10-20Remove taskptr argument from upcallsMarijn Haverbeke-17/+21
Issue #466
2011-09-28rt: Add an upcall to allocate space on the C stack. This will be used for ↵Patrick Walton-0/+10
native calls on the C stack.
2011-09-27rt: Store the task in TLSPatrick Walton-1/+3
2011-09-26rt: Remove obsolete commentPatrick Walton-2/+0
2011-09-23rt: Add a RUST_TRACK_ORIGINS debug flag to help track down memory corruptionPatrick Walton-0/+5
2011-09-20rt: Zero out allocations so that the CC won't die if it happens to run while ↵Patrick Walton-0/+2
a box is being constructed. This is kind of unfortunate.
2011-09-20rt: Stub code for the cycle collectorPatrick Walton-0/+2
2011-09-20rt: Add an on-the-side GC chainPatrick Walton-0/+4
2011-09-20rt: Remove the GC alloc chainPatrick Walton-7/+4
2011-09-20rt: Remove #include "rust_box.h"Patrick Walton-1/+0
2011-09-20rt: Remove upcall_malloc_box and upcall_free_box; I don't think they'll be ↵Patrick Walton-37/+0
necessary after all
2011-09-19rt: Introduce a self-describing box representation and functions to create ↵Patrick Walton-0/+38
and free them
2011-09-15rt: Add libunwind.h support on Mac OS XPatrick Walton-1/+1
2011-09-11Add upcall_rust_personalityBrian Anderson-0/+22
This just wraps __gxx_personality_v0 with our upcall naming convention Issue #236
2011-09-09Get rid of some unused upcallsMarijn Haverbeke-45/+0
I guess these became obsolete when the communication stuff moved into the stdlib.
2011-09-09Remove unused logging upcalls from runtimeMarijn Haverbeke-22/+0
2011-09-07Refactor task failure a bitBrian Anderson-3/+0
Issue #236
2011-09-03Remove unused runtime functions. Issue #855Brian Anderson-4/+0
2011-09-02Remove estrs and evecs from runtime. Issue #855Brian Anderson-154/+22
2011-08-31rt: Make the dynamic stack self-describingPatrick Walton-3/+16
2011-08-29Make std::istr::push_byte efficientMarijn Haverbeke-2/+1
It used to allocate two (!) heap values per pushed byte. It now goes through a runtime function that simply grows the istr and writes the byte.
2011-08-29Factor vector reserve code in runtime into its own functionMarijn Haverbeke-14/+3
2011-08-29Implement non-internal ivecsMarijn Haverbeke-65/+19
Vectors are now similar to our old, pre-internal vectors, except that they are uniquely owned, not refcounted. Their name should probably change too, then. I've renamed them to vec in the runtime, will do so throughout the compiler later.