Jyun-Yan You
d86a32bbb2
fix mips stack alignment
2013-05-21 11:58:30 +08:00
bors
d68c0279ea
auto merge of #6249 : crabtw/rust/arm, r=brson
...
It uses the private field of TCB head to store stack limit. I tested on my Raspberry PI. A simple hello world program ran without any problem. However, for a more complex program, it segfaulted as #6231 .
2013-05-17 18:19:27 -07:00
Jyun-Yan You
c2bf9bf9fe
improve MIPS backend and implement segmented stacks
2013-05-09 16:51:42 +08:00
Jyun-Yan You
48b6262b38
preliminary Linux ARM support
2013-05-07 13:17:14 +08:00
Daniel Micay
86efd97a10
add gitattributes and fix whitespace issues
2013-05-03 20:01:42 -04:00
bors
2a86485277
auto merge of #5418 : luqmana/rust/stack-float, r=brson
...
Like I commented in #2043 , I can't reproduce the weirdness from #1388 on either mac or linux (x84_64) and pushing to try gives all green.
That's 128 less bytes to have to keep in the stack for every call to __morestack.
2013-04-18 13:45:55 -07:00
ILyoan
03116f251d
add unwind information on morestack
2013-04-10 18:49:51 -07:00
ILyoan
3d0d144283
rust morestack assembly for arm
...
Conflicts:
src/rt/arch/arm/morestack.S
2013-04-10 18:49:50 -07:00
Jyun-Yan You
fdf48a7b52
rt: improve mips backend
2013-04-04 18:53:58 +08:00
Daniel Micay
26fc76acb6
rt/arch/arm: fix syntax used for noexec stack
2013-04-01 00:31:22 -04:00
Daniel Micay
c0be7df5de
mark the assembly object stacks as non-executable
...
Closes #5643
This also removes the need to pass noexecstack to gcc, but that wasn't
actually working anymore.
2013-03-31 18:23:05 -04:00
bors
6d4499ce4d
auto merge of #5424 : luqmana/rust/inline-rt, r=brson
...
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-25 12:04:11 -07:00
ILyoan
c1cacc3667
Rewrite arm/ccall.s
2013-03-19 17:23:41 +09:00
Luqman Aden
a692777224
rt: Inline get_sp_limit/set_sp_limit/get_sp for x86.
2013-03-18 00:07:53 -07:00
Luqman Aden
d1778767cc
rt: Inline get_sp_limit/set_sp_limit/get_sp for x86_64.
2013-03-17 21:40:59 -07:00
Luqman Aden
f7a14e0a5a
rt: don't save and restore xmm/regs in __morestack.
2013-03-17 00:29:12 -07:00
Brian Anderson
676e0290ed
core: Add rt mod and add the new scheduler code
2013-03-11 19:44:29 -07:00
Brian Anderson
81e370285f
Merge remote-tracking branch 'brson/cross7'
...
Conflicts:
configure
mk/rt.mk
2013-03-06 23:54:35 -08:00
Jyun-Yan You
314605f948
rt: fix some bugs for MIPS target
2013-03-03 20:02:06 -08:00
Jyun-Yan You
0ecd9e03ff
rt: MIPS32 support
2013-03-03 19:27:01 -08:00
Young-il Choi
26a5dc593c
mk: rewrite make files
2013-02-27 14:53:35 +09:00
Brian Anderson
6b6acde972
Add a license check to tidy. #4018
2013-01-17 23:28:42 -08:00
kyeongwoon
987f824f23
Support ARM and Android
...
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
2013-01-13 16:43:39 -08:00
Graydon Hoare
12c32e944d
Add license boilerplate to more files.
2012-12-10 17:32:58 -08:00
Graydon Hoare
00c856c0b1
Update license, add license boilerplate to most files. Remainder will follow.
2012-12-03 17:12:14 -08:00
Tim Chevalier
ad8280712f
Remove FIXME question
...
brson said the answer to the question is probably no... so I'm
going to be bold and remove this.
Closes #2685
2012-06-28 10:53:37 -07:00
Tim Chevalier
be8b09160b
Try removing code marked with "I don't think this is necessary"
2012-06-21 16:03:28 -07:00
Brian Anderson
89483b0b83
rt: Remove check_stack_alignment
...
This function does not do what it tries to do and it is expensive
2012-06-07 11:12:29 -07:00
Patrick Walton
851fde879d
rt: Add architecture-specific general-purpose register definitions
...
This will be used for stack crawling, which in turn will be used for GC and
unwinding.
2012-04-04 21:40:34 -07:00
Jon Morton
632a4c9326
Refactor includes structure, getting rid of rust_internal.h
...
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-04-03 16:02:38 -07:00
Brian Anderson
21064637ed
rt: Fix whitespace
2012-03-31 23:12:06 -07:00
Brian Anderson
9ea3bc614e
rt: Shave 16 bytes off the __morestack frame
2012-03-21 19:10:32 -07:00
Brian Anderson
9f89cc9d15
rt: Shave a few instructions off __morestack
2012-03-21 19:10:32 -07:00
Brian Anderson
4a0c6c7f41
rt: Add a get_sp_limit function
2012-03-21 19:10:31 -07:00
Brian Anderson
1cb35c9b26
rt: Rename record_sp to record_sp_limit
2012-03-21 19:10:31 -07:00
Brian Anderson
79b1563abb
rt: Use rust_task_thread's C-stack pool for native calls
2012-02-09 19:00:16 -08:00
Brian Anderson
1e2fe4ab8f
rt: Rename call_shim_on_c_stack to call_and_change_stacks
2012-02-09 19:00:15 -08:00
Brian Anderson
2983e77383
rt: Remove unused context functions
2012-02-09 19:00:15 -08: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
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