summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--vm_exec.c4
2 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 8d0b39f414..0bcef31845 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Tue Jan 14 11:28:44 2014 Yuki Yugui Sonoda <yugui@google.com>
+
+ * vm_exec.c (cfp): Fixes a SEGV issue in r44554.
+ r11 can be broken by subroutine and sometimes causes SEGV at
+ runtime. Use r13 instead.
+
Tue Jan 14 02:20:00 2014 Kenta Murata <mrkn@mrkn.jp>
* ext/bigdecimal/bigdecimal.c (BigDecimal_divide): Add an additional
diff --git a/vm_exec.c b/vm_exec.c
index 26b0be822b..3a29136b1e 100644
--- a/vm_exec.c
+++ b/vm_exec.c
@@ -47,7 +47,7 @@ vm_exec_core(rb_thread_t *th, VALUE initial)
#if OPT_STACK_CACHING
#if 0
-#elif __GNUC__ && __x86_64__
+#elif __GNUC__ && __x86_64__ && !defined(__native_client__)
DECL_SC_REG(VALUE, a, "12");
DECL_SC_REG(VALUE, b, "13");
#else
@@ -64,7 +64,7 @@ vm_exec_core(rb_thread_t *th, VALUE initial)
#elif defined(__GNUC__) && defined(__x86_64__)
DECL_SC_REG(VALUE *, pc, "14");
# if defined(__native_client__)
- DECL_SC_REG(rb_control_frame_t *, cfp, "11");
+ DECL_SC_REG(rb_control_frame_t *, cfp, "13");
# else
DECL_SC_REG(rb_control_frame_t *, cfp, "15");
# endif