diff options
author | Yusuke Endoh <[email protected]> | 2019-06-26 17:22:46 +0900 |
---|---|---|
committer | Yusuke Endoh <[email protected]> | 2019-06-26 17:23:00 +0900 |
commit | 28eeaed8a9ec2557e8f8d42d8ab3e7cad310a8a9 (patch) | |
tree | 428266e7013e822ea15f47fd822e01625dc464fd | |
parent | 6c6bf9ffcbfeb8be9d9c342e7604b74ec819e88a (diff) |
Revert "coroutine/arm32/Context.S: save/restore the registers via stack"
This reverts commit 6df1814c08df93bbc0b3e7a73649bcf82e126064.
It caused a SEGV again:
https://rubyci.org/logs/rubyci.s3.amazonaws.com/scw-9d6766/ruby-master/log/20190626T051707Z.fail.html.gz
-rw-r--r-- | configure.ac | 3 | ||||
-rw-r--r-- | coroutine/arm32/Context.S | 7 | ||||
-rw-r--r-- | coroutine/arm32/Context.h | 2 |
3 files changed, 4 insertions, 8 deletions
diff --git a/configure.ac b/configure.ac index 3c87f78d44..69fa93a1c9 100644 --- a/configure.ac +++ b/configure.ac @@ -2272,9 +2272,6 @@ AS_CASE(["$rb_cv_fiber_coroutine"], [yes|''], [ [x64-mingw32], [ rb_cv_fiber_coroutine=win64 ], - [armv7*-linux-*], [ - rb_cv_fiber_coroutine=arm32 - ], [aarch64-linux], [ rb_cv_fiber_coroutine=arm64 ], 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 { |