| Age | Commit message (Collapse) | Author | Lines | |
|---|---|---|---|---|
| 2013-11-18 | rt: Namespace all C functions under rust_ | Brian Anderson | -2/+2 | |
| 2013-10-22 | Fix unwinding on OS X 10.9. | Mark Rowe | -3/+12 | |
| OS X 10.9's linker has a bug that results in it failing to preserve DWARF unwind information when passed the -no_compact_unwind flag. This flag is passed on OS X because the unwind information for __morestack cannot be represented by the compact unwind format. We can work around this problem by using a more targeted approach to disabling compact unwind information. The OS X linker looks for a particular pattern in the DWARF unwind information and will not attempt to convert the unwind information to the compact format. The pattern in question is the return address register being saved twice to the same location. Fixes #6849. | ||||
| 2013-10-19 | Use __morestack to detect stack overflow | Alex Crichton | -471/+26 | |
| This commit resumes management of the stack boundaries and limits when switching between tasks. This additionally leverages the __morestack function to run code on "stack overflow". The current behavior is to abort the process, but this is probably not the best behavior in the long term (for deails, see the comment I wrote up in the stack exhaustion routine). | ||||
| 2013-08-22 | Emit unwind info in rustrt assembly files on Windows. | Vadim Chugunov | -10/+10 | |
| 2013-06-16 | Partial fix for #7158: Save EDX in morestack on x86-32 | Niko Matsakis | -0/+2 | |
| 2013-06-06 | Deduplicate words in code comments | Alexei Sholik | -4/+4 | |
| 2013-05-03 | add gitattributes and fix whitespace issues | Daniel Micay | -6/+1 | |
| 2013-03-31 | mark the assembly object stacks as non-executable | Daniel Micay | -3/+22 | |
| Closes #5643 This also removes the need to pass noexecstack to gcc, but that wasn't actually working anymore. | ||||
| 2013-03-18 | rt: Inline get_sp_limit/set_sp_limit/get_sp for x86. | Luqman Aden | -63/+45 | |
| 2013-03-17 | rt: Inline get_sp_limit/set_sp_limit/get_sp for x86_64. | Luqman Aden | -0/+29 | |
| 2013-03-11 | core: Add rt mod and add the new scheduler code | Brian Anderson | -4/+9 | |
| 2013-01-17 | Add a license check to tidy. #4018 | Brian Anderson | -1/+0 | |
| 2012-12-10 | Add license boilerplate to more files. | Graydon Hoare | -0/+20 | |
| 2012-12-03 | Update license, add license boilerplate to most files. Remainder will follow. | Graydon Hoare | -0/+30 | |
| 2012-06-21 | Try removing code marked with "I don't think this is necessary" | Tim Chevalier | -9/+0 | |
| 2012-06-07 | rt: Remove check_stack_alignment | Brian Anderson | -10/+0 | |
| This function does not do what it tries to do and it is expensive | ||||
| 2012-04-04 | rt: Add architecture-specific general-purpose register definitions | Patrick Walton | -0/+35 | |
| This will be used for stack crawling, which in turn will be used for GC and unwinding. | ||||
| 2012-04-03 | Refactor includes structure, getting rid of rust_internal.h | Jon Morton | -6/+2 | |
| Many changes to code structure are included: - removed TIME_SLICE_IN_MS - removed sychronized_indexed_list - removed region_owned - kernel_owned move to kernel.h, task_owned moved to task.h - global configs moved to rust_globals.h - changed #pragma once to standard guard in rust_upcall.h - got rid of memory.h | ||||
| 2012-03-21 | rt: Add a get_sp_limit function | Brian Anderson | -0/+22 | |
| 2012-03-21 | rt: Rename record_sp to record_sp_limit | Brian Anderson | -6/+6 | |
| 2012-02-09 | rt: Use rust_task_thread's C-stack pool for native calls | Brian Anderson | -6/+0 | |
| 2012-02-09 | rt: Rename call_shim_on_c_stack to call_and_change_stacks | Brian Anderson | -1/+1 | |
| 2012-02-09 | rt: Remove unused context functions | Brian Anderson | -14/+0 | |
| 2012-01-06 | add alignment to i386 for good measure, though we do not yet | Niko Matsakis | -1/+1 | |
| save SSE regs in i386 (we ought to, though!) | ||||
| 2012-01-01 | freebsd support | User Jyyou | -13/+13 | |
| 2011-12-29 | Save and restore xmm regs across the call to UPCALL_NEW_STACK during ↵ | Graydon Hoare | -0/+3 | |
| __morestack, close #1388. | ||||
| 2011-12-29 | Remove obsolete comments. | Graydon Hoare | -3/+0 | |
| 2011-12-19 | rt: Rename asm_call_on_stack to __morestack | Brian Anderson | -7/+15 | |
| Newer gdb's will backtrace through functions named __morestack even if they change the stack. | ||||
| 2011-12-19 | rt: Zero the bottom frame's return address and base pointer | Brian Anderson | -1/+5 | |
| My reading of libunwind leads me to believe this is expected. Closes #1322 | ||||
| 2011-12-19 | rt: Save and restore %rax/%eax in __morestack | Brian Anderson | -0/+6 | |
| This doesn't matter now since we use an out pointer for return values but it's sure to show up mysteriously someday. | ||||
| 2011-12-19 | rt: Remove some unused stack from i386/morestack.S | Brian Anderson | -9/+9 | |
| 2011-12-19 | rt: Remove unused saves from __morestack | Brian Anderson | -6/+0 | |
| 2011-12-19 | rt: Give upcall_new_stack the same convention as other upcalls | Brian Anderson | -31/+13 | |
| 2011-12-19 | rt: Give upcall_del_stack the same convention as other upcalls | Brian Anderson | -18/+9 | |
| 2011-12-18 | rt: Add lots of documentation to __morestack | Brian Anderson | -19/+116 | |
| 2011-12-17 | rt: Use a DWARF CFI scheme that works on mac in __morestack | Brian Anderson | -13/+3 | |
| 2011-12-16 | rt: Make 32-bit morestack compatible with fastcc | Brian Anderson | -9/+18 | |
| 2011-12-16 | rt: Fix alignment of the call to upcall_del_stack in __morestack | Brian Anderson | -2/+7 | |
| 2011-12-16 | rt: Insert stack alignment checks into upcalls | Brian Anderson | -1/+11 | |
| 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-11 | rt: Make unwinding through __morestack work on mac | Brian Anderson | -6/+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 | -7/+16 | |
| 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: Add DWARF CFI info to asm_call_on_stack | Brian Anderson | -9/+30 | |
| 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 | -0/+2 | |
| 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/+8 | |
| 2011-12-06 | rt: Various tweaks to make __morestack unwinding work on linux | Brian Anderson | -0/+7 | |
| 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 | -3/+1 | |
| 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: Use an out pointer for rust_new_stack | Brian Anderson | -4/+5 | |
| upcall_call_shim_on_c_stack does not handle return values | ||||
