about summary refs log tree commit diff
path: root/src/rt/rust_upcall.cpp
AgeCommit message (Collapse)AuthorLines
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.
2011-08-25rustc: Add an extra flag to object tydescs so that shapes know how to find ↵Patrick Walton-2/+4
the captured subtydescs
2011-08-24Optimize += [x] into a simple push operationMarijn Haverbeke-0/+24
This is a preparation for making vectors always-on-the-heap again, which would cause way too much malloc traffic for this idiom. I will add an efficient std::vec::push in the future, and migrate += [x] to that instead. Reduces compiler code size by 3%
2011-08-22Rename copy_glue back to take_glueMarijn Haverbeke-3/+3
2011-08-19rt: Remove rustboot's GC infrastructurePatrick Walton-15/+0
2011-08-19rt: Call maybe_gc on mallocsPatrick Walton-0/+3
2011-08-18Rename rust_vec to rust_evecBrian Anderson-14/+14