You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
rust_intrinsic_recv and rust_intrinsic_task_sleep both call functions in rustrt, which means they are calling functions on the Rust stack without doing the stack check. rust_intrinsic_recv can be rewritten as a regular builtin, and rust_intrinsic_task_sleep needs to do everything inline.
It occurs to me that the need for a stack check may be a reason to have wrappers even around the intrinsics...otherwise, the generated C++ code does not do the stack check. Good that I just put some effort into tearing the wrappers out. :)
I think it will do the check without wrappers. We're translating the ll asm as part of our rust crate, so as long as everything gets inlined when we generate intrinsics.ll, when rustc finally compiles it, we'll be inserting our rust prologues into the C functions.
Activity
nikomatsakis commentedon Nov 16, 2011
It occurs to me that the need for a stack check may be a reason to have wrappers even around the intrinsics...otherwise, the generated C++ code does not do the stack check. Good that I just put some effort into tearing the wrappers out. :)
brson commentedon Nov 16, 2011
I think it will do the check without wrappers. We're translating the ll asm as part of our rust crate, so as long as everything gets inlined when we generate intrinsics.ll, when rustc finally compiles it, we'll be inserting our rust prologues into the C functions.
brson commentedon Nov 17, 2011
rust_intrinsic_cast does it too
brson commentedon Nov 19, 2011
cast and recv no long call C functions. yield still does, but I suspect it is small enough to run in the red zone
Implement "default_alloc_error_handler" feature
Fix the stabilized version for `simd_x86_bittest` (rust-lang#1182)
Update python requirement (rust-lang#1182)