summary refs log tree commit diff
path: root/src/rt/arch
AgeCommit message (Collapse)AuthorLines
2013-04-01rt/arch/arm: fix syntax used for noexec stackDaniel Micay-4/+4
2013-03-31mark the assembly object stacks as non-executableDaniel Micay-19/+91
Closes #5643 This also removes the need to pass noexecstack to gcc, but that wasn't actually working anymore.
2013-03-25auto merge of #5424 : luqmana/rust/inline-rt, r=brsonbors-112/+200
As per #2521. Inlining seems to improve performance slightly: Inlined Not Inlined x86: 13.5482 14.4112 x86_64: 17.4712 18.0696 (Average of 5 runs timed with `time`) ```Rust fn foo() -> int { int::from_str(~"28098").unwrap() } fn main() { for 1000000.times { foo(); foo(); foo(); foo(); foo(); } } ``` All run on: Linux 3.2.0-0.bpo.4-amd64 #1 SMP Debian 3.2.35-2~bpo60+1 x86_64 GNU/Linux The MIPS and ARM bits I didn't inline since I'm not as familiar with them and I also can't test them. All green on try.
2013-03-19Rewrite arm/ccall.sILyoan-15/+10
2013-03-18rt: Inline get_sp_limit/set_sp_limit/get_sp for x86.Luqman Aden-63/+45
2013-03-17rt: Inline get_sp_limit/set_sp_limit/get_sp for x86_64.Luqman Aden-52/+158
2013-03-11core: Add rt mod and add the new scheduler codeBrian Anderson-8/+18
2013-03-06Merge remote-tracking branch 'brson/cross7'Brian Anderson-0/+8
Conflicts: configure mk/rt.mk
2013-03-03rt: fix some bugs for MIPS targetJyun-Yan You-2/+23
2013-03-03rt: MIPS32 supportJyun-Yan You-0/+316
2013-02-27mk: rewrite make filesYoung-il Choi-0/+8
2013-01-17Add a license check to tidy. #4018Brian Anderson-2/+7
2013-01-13Support ARM and Androidkyeongwoon-0/+273
Conflicts: src/libcore/os.rs src/librustc/back/link.rs src/librustc/driver/driver.rs src/librustc/metadata/loader.rs src/librustc/middle/trans/base.rs
2012-12-10Add license boilerplate to more files.Graydon Hoare-0/+40
2012-12-03Update license, add license boilerplate to most files. Remainder will follow.Graydon Hoare-0/+60
2012-06-28Remove FIXME questionTim Chevalier-2/+0
brson said the answer to the question is probably no... so I'm going to be bold and remove this. Closes #2685
2012-06-21Try removing code marked with "I don't think this is necessary"Tim Chevalier-15/+1
2012-06-07rt: Remove check_stack_alignmentBrian Anderson-20/+0
This function does not do what it tries to do and it is expensive
2012-04-04rt: Add architecture-specific general-purpose register definitionsPatrick Walton-0/+73
This will be used for stack crawling, which in turn will be used for GC and unwinding.
2012-04-03Refactor includes structure, getting rid of rust_internal.hJon Morton-12/+4
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-31rt: Fix whitespaceBrian Anderson-3/+3
2012-03-21rt: Shave 16 bytes off the __morestack frameBrian Anderson-2/+2
2012-03-21rt: Shave a few instructions off __morestackBrian Anderson-42/+31
2012-03-21rt: Add a get_sp_limit functionBrian Anderson-0/+40
2012-03-21rt: Rename record_sp to record_sp_limitBrian Anderson-13/+13
2012-02-09rt: Use rust_task_thread's C-stack pool for native callsBrian Anderson-12/+0
2012-02-09rt: Rename call_shim_on_c_stack to call_and_change_stacksBrian Anderson-2/+2
2012-02-09rt: Remove unused context functionsBrian Anderson-28/+0
2012-01-06add alignment to i386 for good measure, though we do not yetNiko Matsakis-1/+1
save SSE regs in i386 (we ought to, though!)
2012-01-06fix alignment of registers structureNiko Matsakis-6/+3
2012-01-01add missing library, enable segmented stacks for freebsdJyun-Yan You-4/+6
2012-01-01forgot to add parenthesesJyun-Yan You-1/+1
2012-01-01freebsd supportUser Jyyou-20/+30
2011-12-29Save and restore xmm regs across the call to UPCALL_NEW_STACK during ↵Graydon Hoare-1/+30
__morestack, close #1388.
2011-12-29Remove obsolete comments.Graydon Hoare-4/+0
2011-12-19rt: Rename asm_call_on_stack to __morestackBrian Anderson-13/+30
Newer gdb's will backtrace through functions named __morestack even if they change the stack.
2011-12-19rt: Zero the bottom frame's return address and base pointerBrian Anderson-2/+10
My reading of libunwind leads me to believe this is expected. Closes #1322
2011-12-19rt: Save and restore %rax/%eax in __morestackBrian Anderson-3/+9
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-19rt: Remove some unused stack from i386/morestack.SBrian Anderson-9/+9
2011-12-19rt: Remove unused saves from __morestackBrian Anderson-10/+1
2011-12-19rt: Give upcall_new_stack the same convention as other upcallsBrian Anderson-48/+20
2011-12-19rt: Give upcall_del_stack the same convention as other upcallsBrian Anderson-22/+11
2011-12-18rt: Add lots of documentation to __morestackBrian Anderson-42/+139
2011-12-17rt: Use a DWARF CFI scheme that works on mac in __morestackBrian Anderson-24/+6
2011-12-16rt: Make 32-bit morestack compatible with fastccBrian Anderson-9/+18
2011-12-16rt: Fix saved address of unwinding %rsp in __morestackBrian 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-16rt: Fix alignment of the call to upcall_del_stack in __morestackBrian Anderson-2/+7
2011-12-16rt: Insert stack alignment checks into upcallsBrian Anderson-1/+21
2011-12-13rt: Add a FIXME to 32-bit __morestack about trashing %eaxBrian Anderson-1/+2
2011-12-13rt: Use %ecx instead of %eax during the second half of __morestackBrian Anderson-3/+5
If Rust code made use of return values then using %eax here would clobber it