diff options
| author | Jyun-Yan You <jyyou.tw@gmail.com> | 2013-05-22 02:14:22 +0800 |
|---|---|---|
| committer | Jyun-Yan You <jyyou@cs.nctu.edu.tw> | 2013-05-22 08:49:16 +0800 |
| commit | 499b02213d7de83d301918d6068c75bd08941ac7 (patch) | |
| tree | 47fe97e2908b4f8ff28a525c8275e15c9e510683 /src/rt | |
| parent | 15e44381af4f6d89fc62111a8425087ccab40665 (diff) | |
| download | rust-499b02213d7de83d301918d6068c75bd08941ac7.tar.gz rust-499b02213d7de83d301918d6068c75bd08941ac7.zip | |
fix arm stack alignment
Diffstat (limited to 'src/rt')
| -rw-r--r-- | src/rt/arch/arm/context.cpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/rt/arch/arm/context.cpp b/src/rt/arch/arm/context.cpp index 2c735e410fa..7d90668aad5 100644 --- a/src/rt/arch/arm/context.cpp +++ b/src/rt/arch/arm/context.cpp @@ -26,9 +26,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 arm eabi is 8-byte aligned + sp -= 2; + *sp = 0; regs.data[0] = ( uint32_t )arg; // r0 regs.data[13] = ( uint32_t )sp; //#52 sp, r13 |
