diff options
Diffstat (limited to 'coroutine')
-rw-r--r-- | coroutine/arm32/Context.S | 7 | ||||
-rw-r--r-- | coroutine/arm32/Context.h | 2 |
2 files changed, 4 insertions, 5 deletions
diff --git a/coroutine/arm32/Context.S b/coroutine/arm32/Context.S index a44ba48778..c2b93d0a34 100644 --- a/coroutine/arm32/Context.S +++ b/coroutine/arm32/Context.S @@ -9,7 +9,6 @@ .globl coroutine_transfer coroutine_transfer: - push {r4-r11,lr} - str sp, [r0] - ldr sp, [r1] - pop {r4-r11,pc} + stmia r1!, {r4-r11,sp,lr} + ldmia r0!, {r4-r11,sp,pc} + bx lr diff --git a/coroutine/arm32/Context.h b/coroutine/arm32/Context.h index 27f97908bc..d6d3c7f313 100644 --- a/coroutine/arm32/Context.h +++ b/coroutine/arm32/Context.h @@ -12,7 +12,7 @@ #define COROUTINE __attribute__((noreturn)) void -enum {COROUTINE_REGISTERS = 8}; +enum {COROUTINE_REGISTERS = 9}; struct coroutine_context { |