summary refs log tree commit diff
path: root/src/rt/rust_upcall.cpp
AgeCommit message (Collapse)AuthorLines
2012-04-02Add global rust_get_current_taskJon Morton-15/+15
Previously two methods existed: rust_sched_loop::get_task and rust_task::get_task_from_tcb. Merge both of them into one, trying the faster one (tcb) first, and if that fails, the slower one from the tls.
2012-04-01Merge remote-tracking branch 'brson/mainthread'Brian Anderson-18/+18
Conflicts: src/rt/rust_sched_loop.cpp src/rt/rust_shape.cpp src/rt/rust_task.cpp
2012-03-31rt: Fix whitespaceBrian Anderson-2/+3
2012-03-31rt: Rename rust_task_thread to rust_sched_loopBrian Anderson-18/+18
This class no longer represents a thread; it just schedules tasks.
2012-03-28Fix some gcc-4.4-isms, should build now on 4.1+.Graydon Hoare-1/+2
2012-03-21rt: Use get_task_from_tcb during stack growth callsBrian Anderson-2/+2
2012-03-21rt: Rename record_sp to record_sp_limitBrian Anderson-3/+3
2012-03-21rt: Don't switch to the C stack on the upcall_new_stack fast pathBrian Anderson-18/+5
2012-03-21rt: Don't swatch stacks during upcall_del_stackBrian Anderson-6/+2
2012-03-19Send string concatenation to specialized upcall, shave 17s off librustc ↵Graydon Hoare-0/+28
compile time.
2012-03-16Remove shared tydescsMarijn Haverbeke-73/+0
All tydescs are static now, there's no need to worry about marshalling them between threads anymore.
2012-03-16Remove dynastack support from runtimeMarijn Haverbeke-89/+0
Issue #1982
2012-03-16Get rid of rust_crate_cache in the runtimeMarijn Haverbeke-67/+0
We are no longer generating dynamic tydescs or dicts. Issue #1982
2012-02-28rt: Reset the stack boundary after returning from crust functionsBrian Anderson-0/+3
2012-02-21Remove unused tydesc argument to upcall_shared_mallocMarijn Haverbeke-10/+5
2012-02-17rt: Make upcall_vec_push an intrinsicBrian Anderson-30/+20
2012-02-17rt: Don't hit TLS on upcall_vec_push unless necessaryBrian Anderson-5/+3
2012-02-17rt: Don't log on entry to upcall_vec_push. Also slowBrian Anderson-2/+0
2012-02-17rt: Don't do the stack canary check in upcall_vec_push. Too slowBrian Anderson-4/+0
2012-02-17rt: Simplify upcall_vec_pushBrian Anderson-23/+11
2012-02-09rt: Inline everything on the C-stack-switching pathBrian Anderson-1/+0
2012-02-09rt: Add upcall_call_shim_on_rust_stackBrian Anderson-1/+26
2012-02-09rt: Add rust_task::call_on_c_stackBrian Anderson-5/+3
2012-02-09rt: Rename call_shim_on_c_stack to call_and_change_stacksBrian Anderson-2/+2
2012-02-09rt: Rename new_stack to next_stack, del_stack to prev_stackBrian Anderson-4/+4
2012-02-03rt: Rename rust_scheduler to rust_task_threadBrian Anderson-33/+33
2012-02-03Remove experimental GC codeMarijn Haverbeke-6/+3
It's been sitting unused long enough to have bitrotted completely.
2012-02-01make boxes self-describing (fixes #1493)" (take 2)Niko Matsakis-18/+42
this will be used to generate a new snapshot.
2012-02-01Revert "make boxes self-describing (fixes #1493)" until a newNiko Matsakis-42/+18
snapshot is prepared.
2012-02-01make boxes self-describing (fixes #1493)Niko Matsakis-18/+42
2012-01-17roll back commit 1c7a62Niko Matsakis-9/+0
2012-01-17Use a memset upcall to zero things without static alignmentMarijn Haverbeke-0/+9
This fixes issues #843 and #1546. The cost of an upcall is unfortunate, though. I assume there must be a way to simply manually compute the pointer or size, using something akin to the formula in `align_to` in `rust_util.h`. I could not get this to work, unfortunately.
2012-01-12add tydescs into shape, rewrite walk_fn_contents()Niko Matsakis-5/+7
2012-01-12free uniq data we encounter on the sweep, walk thru them otherwiseNiko Matsakis-1/+1
2012-01-07fix valgrind error: allocate enough space for all type descsNiko Matsakis-1/+1
2012-01-06plug leak: free shared type descrs recursively, as we ought toNiko Matsakis-1/+3
2012-01-06fix how we walk functions to match new closure fmtNiko Matsakis-0/+1
2012-01-06Make binding of fns with bounded type parameters workMarijn Haverbeke-0/+26
Interns non-static dicts to heap-allocated equivalents so that they no longer have stack scope. Closes #1436
2012-01-01freebsd supportUser Jyyou-1/+1
2011-12-20rt: Don't check the stack canary on most upcallsBrian Anderson-10/+1
2011-12-20rt: Do fewer stack canary checksBrian Anderson-3/+5
2011-12-20rt: Add a canary value to the end of every stackBrian Anderson-3/+12
Check it on upcall entry and exit, and on stack deletion
2011-12-19rt: Give upcall_new_stack the same convention as other upcallsBrian Anderson-10/+13
2011-12-19rt: Give upcall_del_stack the same convention as other upcallsBrian Anderson-2/+6
2011-12-18rt: Get rid of the rethrow in upcall_failBrian Anderson-7/+14
Throwing in upcall_fail ends up running lots of code in the red zone. To avoid it we have the personality function figure out which stack it's on and switch as needed.
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