diff options
| author | Jyun-Yan You <jyyou.tw@gmail.com> | 2013-05-05 22:29:10 +0800 |
|---|---|---|
| committer | Jyun-Yan You <jyyou@cs.nctu.edu.tw> | 2013-05-07 13:17:14 +0800 |
| commit | 48b6262b383365b7319ef76fa9c6d2c63c4d70e1 (patch) | |
| tree | 09d2a9979e48f290fb4f0cd5edb1242797b76a91 /src | |
| parent | 063851ffa1b8388a0b70446c0209af16264e8181 (diff) | |
| download | rust-48b6262b383365b7319ef76fa9c6d2c63c4d70e1.tar.gz rust-48b6262b383365b7319ef76fa9c6d2c63c4d70e1.zip | |
preliminary Linux ARM support
Diffstat (limited to 'src')
| -rw-r--r-- | src/librustc/back/arm.rs | 2 | ||||
| -rw-r--r-- | src/rt/arch/arm/record_sp.S | 8 | ||||
| -rw-r--r-- | src/rt/rust_task.h | 3 |
3 files changed, 12 insertions, 1 deletions
diff --git a/src/librustc/back/arm.rs b/src/librustc/back/arm.rs index dfe5751f21b..ff3c71da458 100644 --- a/src/librustc/back/arm.rs +++ b/src/librustc/back/arm.rs @@ -64,7 +64,7 @@ pub fn get_target_strs(target_os: session::os) -> target_strs::t { target_triple: match target_os { session::os_macos => ~"arm-apple-darwin", session::os_win32 => ~"arm-pc-mingw32", - session::os_linux => ~"arm-unknown-linux", + session::os_linux => ~"arm-unknown-linux-gnueabihf", session::os_android => ~"arm-linux-androideabi", session::os_freebsd => ~"arm-unknown-freebsd" }, diff --git a/src/rt/arch/arm/record_sp.S b/src/rt/arch/arm/record_sp.S index 95fce8746a1..8d5f24bc5a8 100644 --- a/src/rt/arch/arm/record_sp.S +++ b/src/rt/arch/arm/record_sp.S @@ -15,13 +15,21 @@ record_sp_limit: mrc p15, #0, r3, c13, c0, #3 +#if __ANDROID__ add r3, r3, #252 +#elif __linux__ + add r3, r3, #4 +#endif str r0, [r3] mov pc, lr get_sp_limit: mrc p15, #0, r3, c13, c0, #3 +#if __ANDROID__ add r3, r3, #252 +#elif __linux__ + add r3, r3, #4 +#endif ldr r0, [r3] mov pc, lr diff --git a/src/rt/rust_task.h b/src/rt/rust_task.h index fd4e8451b64..6813e3b46c4 100644 --- a/src/rt/rust_task.h +++ b/src/rt/rust_task.h @@ -146,6 +146,9 @@ #ifdef __mips__ #define RED_ZONE_SIZE RZ_LINUX_32 #endif +#ifdef __arm__ +#define RED_ZONE_SIZE RZ_LINUX_32 +#endif #endif #ifdef __APPLE__ #ifdef __i386__ |
