[前][次][番号順一覧][スレッド一覧]

ruby-changes:56227

From: Yusuke <ko1@a...>
Date: Wed, 26 Jun 2019 17:23:36 +0900 (JST)
Subject: [ruby-changes:56227] Yusuke Endoh: 28eeaed8a9 (trunk): Revert "coroutine/arm32/Context.S: save/restore the registers via stack"

https://git.ruby-lang.org/ruby.git/commit/?id=28eeaed8a9

From 28eeaed8a9ec2557e8f8d42d8ab3e7cad310a8a9 Mon Sep 17 00:00:00 2001
From: Yusuke Endoh <mame@r...>
Date: Wed, 26 Jun 2019 17:22:46 +0900
Subject: 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

diff --git a/configure.ac b/configure.ac
index 3c87f78..69fa93a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2272,9 +2272,6 @@ AS_CASE(["$rb_cv_fiber_coroutine"], [yes|''], [ https://github.com/ruby/ruby/blob/trunk/configure.ac#L2272
         [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 a44ba48..c2b93d0 100644
--- a/coroutine/arm32/Context.S
+++ b/coroutine/arm32/Context.S
@@ -9,7 +9,6 @@ https://github.com/ruby/ruby/blob/trunk/coroutine/arm32/Context.S#L9
 
 .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 27f9790..d6d3c7f 100644
--- a/coroutine/arm32/Context.h
+++ b/coroutine/arm32/Context.h
@@ -12,7 +12,7 @@ https://github.com/ruby/ruby/blob/trunk/coroutine/arm32/Context.h#L12
 
 #define COROUTINE __attribute__((noreturn)) void
 
-enum {COROUTINE_REGISTERS = 8};
+enum {COROUTINE_REGISTERS = 9};
 
 struct coroutine_context
 {
-- 
cgit v0.10.2


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]