about summary refs log tree commit diff
path: root/src/rt
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-05-21 03:01:17 -0700
committerbors <bors@rust-lang.org>2013-05-21 03:01:17 -0700
commitdc7b83d18659503f47ae622918c3576d430a926e (patch)
tree8b5ac7075d14b3f3e1ae1813465d4a9cb12cfde3 /src/rt
parent329d8e2622754778758cf7eaafae9c71e9351e17 (diff)
parentd86a32bbb2ff79232bf3edc0f475062f45b6ea90 (diff)
downloadrust-dc7b83d18659503f47ae622918c3576d430a926e.tar.gz
rust-dc7b83d18659503f47ae622918c3576d430a926e.zip
auto merge of #6650 : crabtw/rust/mips-rt, r=sanxiyn
Results of libcore and libstd tests

```
failures:
    rand::tests::test_rng_seeded_custom_seed2
    time::tests::run_tests
    uv_ll::test::test_uv_ll_struct_size_addrinfo
    uv_ll::test::test_uv_ll_struct_size_uv_timer_t

segfaults:
    stackwalk::test_simple
    stackwalk::test_simple_deep
```

Diffstat (limited to 'src/rt')
-rw-r--r--src/rt/arch/mips/context.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/rt/arch/mips/context.cpp b/src/rt/arch/mips/context.cpp
index 7347a92e98b..e1e5776bc1a 100644
--- a/src/rt/arch/mips/context.cpp
+++ b/src/rt/arch/mips/context.cpp
@@ -34,9 +34,11 @@ void context::call(void *f, void *arg, void *stack)
 
   // set up the stack
   uint32_t *sp = (uint32_t *)stack;
-  //sp = align_down(sp);
+  sp = align_down(sp);
   // The final return address. 0 indicates the bottom of the stack
-  *--sp = 0;
+  // sp of mips o32 is 8-byte aligned
+  sp -= 2;
+  *sp = 0;
 
   regs.data[4] = (uint32_t)arg;
   regs.data[29] = (uint32_t)sp;