| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2011-12-18 | rt: Create different stack-switching paths for upcalls and shims | Brian 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-18 | rt: Run the cycle collector on the C stack | Brian Anderson | -1/+3 | |
| 2011-12-18 | rt: Give each platform its own red zone definition | Brian Anderson | -3/+26 | |
| 2011-12-18 | rt: Trim the red zone to 20k on all platforms | Brian Anderson | -2/+2 | |
| 2011-12-18 | rt: Remove a bogus FIXME from ~rust_task | Brian Anderson | -3/+1 | |
| 2011-12-18 | rt: Add lots of documentation to __morestack | Brian Anderson | -42/+139 | |
| 2011-12-18 | Revert "rt: Turn on big stacks again. Unwinding still doesn't always succeed ↵ | Brian Anderson | -1/+1 | |
| on mac" This reverts commit 68f4849f0f52bc37fc24a36fb7e14002bdb2cd61. | ||||
| 2011-12-17 | rt: Turn on big stacks again. Unwinding still doesn't always succeed on mac | Brian Anderson | -1/+1 | |
| 2011-12-17 | rt: Get rid of the valgrind guard bytes at the end of the stack | Brian Anderson | -17/+2 | |
| Preventing us from writing beyond our allocations is _what valgrind does_, so telling valgrind not to let us write to the end of the stack isn't buying anything. | ||||
| 2011-12-17 | rt: Use a DWARF CFI scheme that works on mac in __morestack | Brian Anderson | -24/+6 | |
| 2011-12-17 | rt: Turn on stack alignment checks for mac | Brian Anderson | -2/+2 | |
| 2011-12-17 | rt: Cache an extra stack segment to avoid bad behavior at stack boundaries | Brian Anderson | -12/+80 | |
| 2011-12-17 | rt: Set the default stack size to 768 bytes. Double on each alloc | Brian Anderson | -11/+39 | |
| 2011-12-16 | rt: Make 32-bit morestack compatible with fastcc | Brian Anderson | -9/+18 | |
| 2011-12-16 | rt: Fix saved address of unwinding %rsp in __morestack | Brian Anderson | -1/+1 | |
| I haven't thought too deeply about this, but I think I was telling the unwinder to use the stack pointer for the wrong frame when unwinding. Not sure how that could have worked at all, but this results in the correct alignment for cleanups. | ||||
| 2011-12-16 | rt: Fix alignment of the call to upcall_del_stack in __morestack | Brian Anderson | -2/+7 | |
| 2011-12-16 | rt: Fix alignment of new stack segments | Brian Anderson | -4/+2 | |
| 2011-12-16 | rt: Only call check_stack_alignment on linux | Brian Anderson | -0/+5 | |
| 2011-12-16 | rt: Insert stack alignment checks into upcalls | Brian Anderson | -1/+31 | |
| 2011-12-16 | std: file_is_dir -> path_is_dir, add path_exists | Elly Jones | -3/+13 | |
| 2011-12-16 | update to not look at descs[], which is not necessarily valid | Niko Matsakis | -8/+10 | |
| if the input is a statically allocated type_desc | ||||
| 2011-12-15 | massive refactor of how closures work | Niko Matsakis | -48/+101 | |
| 2011-12-14 | export upcall_clone_type_desc | Niko Matsakis | -2/+3 | |
| 2011-12-14 | clone type desc into exchange heap | Niko Matsakis | -1/+4 | |
| 2011-12-14 | get basic code generation working, clone type descs for lambda[send] | Niko Matsakis | -0/+35 | |
| 2011-12-13 | rt: Add a FIXME to 32-bit __morestack about trashing %eax | Brian Anderson | -1/+2 | |
| 2011-12-13 | rt: Use %ecx instead of %eax during the second half of __morestack | Brian Anderson | -3/+5 | |
| If Rust code made use of return values then using %eax here would clobber it | ||||
| 2011-12-13 | rt: Don't clobber fastcc argument registers in __morestack | Brian Anderson | -12/+15 | |
| 2011-12-12 | fix track alloc code | Niko Matsakis | -6/+9 | |
| 2011-12-12 | rt: Remove some duplicated code from 64-bit __morestack | Brian Anderson | -12/+0 | |
| 2011-12-12 | rt: Make unwinding through __morestack work on mac | Brian Anderson | -3/+1 | |
| Had to bump the min stack size in some of the tests from 256 bytes to 1024 bytes. Not sure why yet. | ||||
| 2011-12-12 | rt: Write CFI instructions that (might) work on mac in __morestack | Brian Anderson | -0/+14 | |
| The DW_CFA_val_offset_sf instruction doesn't seem to work on mac, even after implementing it in the llvm-mc assembler, so now I'm looking for a different way to communicate the stack pointer adjustment to the unwinder. | ||||
| 2011-12-11 | rt: Make unwinding through __morestack work on mac | Brian Anderson | -18/+6 | |
| Had to bump the min stack size in some of the tests from 256 bytes to 1024 bytes. Not sure why yet. | ||||
| 2011-12-11 | rt: Write CFI instructions that (might) work on mac in __morestack | Brian Anderson | -11/+35 | |
| The DW_CFA_val_offset_sf instruction doesn't seem to work on mac, even after implementing it in the llvm-mc assembler, so now I'm looking for a different way to communicate the stack pointer adjustment to the unwinder. | ||||
| 2011-12-11 | rt: Call upcall_fail on the C stack | Brian Anderson | -3/+1 | |
| 2011-12-11 | rt: Add DWARF CFI info to asm_call_on_stack | Brian Anderson | -16/+57 | |
| This will allow the unwinder to unwind this function so we can call upcall_fail on the C stack. | ||||
| 2011-12-10 | build: Use llvm-mc as our assembler | Brian Anderson | -4/+8 | |
| LLVM's assembler understands .cfi pseudo-ops on the mac, which we need in order to generate frames that can be DWARF-unwound | ||||
| 2011-12-08 | rt: Make __morestack work on win32 | Brian Anderson | -10/+9 | |
| 2011-12-07 | rt: Reorganize and add documentation for rust_upcall.cpp | Brian Anderson | -170/+163 | |
| 2011-12-07 | rt: Run most upcalls on the C stack | Brian Anderson | -60/+66 | |
| 2011-12-07 | rt: Fix alignment of stacks generated by __morestack | Brian Anderson | -1/+0 | |
| 2011-12-06 | rt: Put 16 guard bytes at the end of the stack | Brian Anderson | -2/+15 | |
| 2011-12-06 | rt: Rename stk_seg.limit to stk_seg.end | Brian Anderson | -9/+8 | |
| rust_task is using the word limit it two ways, so one has to change. | ||||
| 2011-12-06 | rt: Reorganize rust_upcall.cpp a bit | Brian Anderson | -32/+36 | |
| 2011-12-06 | rt: Convert log_type and cmp_type upcalls to shim form | Brian Anderson | -10/+39 | |
| 2011-12-06 | rt: Move upcall_cmp_type/upcall_log_type to rust_upcall.cpp | Brian Anderson | -4/+24 | |
| 2011-12-06 | modify upcalls to take structs as args | Niko Matsakis | -84/+252 | |
| 2011-12-06 | rt: Various tweaks to make __morestack unwinding work on linux | Brian Anderson | -2/+54 | |
| 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-06 | Make valgrind usage more consistent and less error prone. | Austin Seipp | -11/+5 | |
| 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-12-05 | rt: Make stack unwinding work more correctly with stack growth | Brian Anderson | -2/+5 | |
