Brian Anderson
4632358cbc
Revert "rt: Reduce mac red zone to 6K"
...
This reverts commit d499e739a1
.
2012-01-06 18:16:19 -08:00
Brian Anderson
d499e739a1
rt: Reduce mac red zone to 6K
2012-01-06 16:42:26 -08:00
Brian Anderson
2f4c9315af
rt: Fail the scheduler immediately on task failure in win32
2012-01-06 16:18:56 -08:00
Marijn Haverbeke
822acdd170
Make binding of fns with bounded type parameters work
...
Interns non-static dicts to heap-allocated equivalents so that they no
longer have stack scope.
Closes #1436
2012-01-06 17:40:05 +01:00
Niko Matsakis
295df68faf
add alignment to i386 for good measure, though we do not yet
...
save SSE regs in i386 (we ought to, though!)
2012-01-06 07:57:56 -08:00
Niko Matsakis
fefae72a53
fix alignment of registers structure
2012-01-06 07:45:06 -08:00
Jyun-Yan You
21eadbe6f1
add missing library, enable segmented stacks for freebsd
2012-01-01 20:18:55 -08:00
Jyun-Yan You
d4884b6c6e
forgot to add parentheses
2012-01-01 20:18:55 -08:00
User Jyyou
a59c4b1b47
freebsd support
2012-01-01 20:18:55 -08:00
Graydon Hoare
5fd0a3be0c
Save and restore xmm regs across the call to UPCALL_NEW_STACK during __morestack, close #1388 .
2011-12-29 11:49:29 -08:00
Graydon Hoare
884adf38a1
Remove obsolete comments.
2011-12-29 10:21:05 -08:00
Graydon Hoare
5930463faa
Tidy up some drift in runtime logging, close #1380 .
2011-12-28 11:53:12 -08:00
Brian Anderson
b9b9b3e570
rt: Set the initial obstack size to 128 bytes
...
Double the size on each allocation
2011-12-25 19:18:05 -08:00
Graydon Hoare
3b61064631
Revert all of yesterday's snapshots and try again. Cursed!
2011-12-22 10:30:04 -08:00
Brian Anderson
dedfef4c4c
Revert "wip"
...
This reverts commit aeadc6269e
.
2011-12-20 20:57:04 -08:00
Brian Anderson
854daaec0c
rt: Lock before using the random number generator
...
Seeing crashes here trying to stress test concurrent tasks
2011-12-20 20:56:06 -08:00
Brian Anderson
aeadc6269e
wip
2011-12-20 20:15:09 -08:00
Brian Anderson
128621be97
rt: Remove rust_task::grow. Obsolete
2011-12-20 20:02:57 -08:00
Brian Anderson
cab4da70c8
rt: Don't check the stack canary on most upcalls
2011-12-20 16:50:54 -08:00
Brian Anderson
2a490d1cf8
Revert "rt: Reduce the mac red zone to 2K"
...
This reverts commit ba8f369f89
.
2011-12-20 15:17:30 -08:00
Brian Anderson
ba8f369f89
rt: Reduce the mac red zone to 2K
2011-12-20 14:24:13 -08:00
Brian Anderson
2e230b1cf9
rt: Reduce the linux red zone to 2K
2011-12-20 14:02:59 -08:00
Brian Anderson
6443a7b513
rt: Do fewer stack canary checks
2011-12-20 13:54:47 -08:00
Brian Anderson
93fef2e113
rt: Parenthesize the red zone macros
2011-12-20 11:57:22 -08:00
Brian Anderson
784713ec68
rt: Add a canary value to the end of every stack
...
Check it on upcall entry and exit, and on stack deletion
2011-12-20 11:48:47 -08:00
Brian Anderson
56ec9cb278
rt: Run yet more task_start_wrapper cleanup on the C stack
2011-12-20 10:29:40 -08:00
Brian Anderson
25f7c844df
rt: Don't reuse stack segments when they are not big enough
2011-12-19 22:47:28 -08:00
Brian Anderson
05bf105c90
rt: Rename asm_call_on_stack to __morestack
...
Newer gdb's will backtrace through functions named __morestack even
if they change the stack.
2011-12-19 22:05:40 -08:00
Brian Anderson
edf6e1ec0e
rt: Zero the bottom frame's return address and base pointer
...
My reading of libunwind leads me to believe this is expected.
Closes #1322
2011-12-19 18:47:39 -08:00
Brian Anderson
1bfc4e2e6c
rt: Save and restore %rax/%eax in __morestack
...
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 18:16:21 -08:00
Brian Anderson
c3569abb8c
rt: Remove some unused stack from i386/morestack.S
2011-12-19 18:16:19 -08:00
Brian Anderson
d2e7336a01
rt: Remove unused saves from __morestack
2011-12-19 16:24:10 -08:00
Brian Anderson
50dc80f617
rt: Give upcall_new_stack the same convention as other upcalls
2011-12-19 16:24:10 -08:00
Brian Anderson
bedcaad97e
rt: Give upcall_del_stack the same convention as other upcalls
2011-12-19 16:24:10 -08:00
Brian Anderson
bd6b80c972
rt: Get rid of the rethrow in upcall_fail
...
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-18 17:17:31 -08:00
Brian Anderson
c73eb8ff51
rt: Create different stack-switching paths for upcalls and shims
...
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 16:17:55 -08:00
Brian Anderson
f57fd8de1f
rt: Run the cycle collector on the C stack
2011-12-18 15:23:44 -08:00
Brian Anderson
74d5faa86e
rt: Give each platform its own red zone definition
2011-12-18 15:23:41 -08:00
Brian Anderson
762d7e43a6
rt: Trim the red zone to 20k on all platforms
2011-12-18 15:22:56 -08:00
Brian Anderson
3fa930f598
rt: Remove a bogus FIXME from ~rust_task
2011-12-18 02:09:41 -08:00
Brian Anderson
1a1fdf34b1
rt: Add lots of documentation to __morestack
2011-12-18 02:02:35 -08:00
Brian Anderson
7359fa422b
Revert "rt: Turn on big stacks again. Unwinding still doesn't always succeed on mac"
...
This reverts commit 68f4849f0f
.
2011-12-18 00:42:46 -08:00
Brian Anderson
68f4849f0f
rt: Turn on big stacks again. Unwinding still doesn't always succeed on mac
2011-12-17 17:54:43 -08:00
Brian Anderson
fe683dfb80
rt: Get rid of the valgrind guard bytes at the end of the stack
...
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 16:46:50 -08:00
Brian Anderson
471b4d6e58
rt: Use a DWARF CFI scheme that works on mac in __morestack
2011-12-17 14:10:44 -08:00
Brian Anderson
7da8ab8fab
rt: Turn on stack alignment checks for mac
2011-12-17 14:10:40 -08:00
Brian Anderson
4ac345939c
rt: Cache an extra stack segment to avoid bad behavior at stack boundaries
2011-12-17 13:45:38 -08:00
Brian Anderson
0ed5117a9d
rt: Set the default stack size to 768 bytes. Double on each alloc
2011-12-17 13:45:38 -08:00
Brian Anderson
b5b2ac0ec4
rt: Make 32-bit morestack compatible with fastcc
2011-12-16 18:18:43 -08:00
Brian Anderson
7d51961b6f
rt: Fix saved address of unwinding %rsp in __morestack
...
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 18:18:43 -08:00