aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--vm_exec.c4
2 files changed, 12 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 66d483cd05..6845924348 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Fri Jan 10 16:27:20 2014 Yuki Yugui Sonoda <yugui@google.com>
+
+ * vm_exec.c (cfp): Avoid generating invalid binary for
+ NativeClient.
+ r15 on x86_64 is reserved by NativeClient. So r15 to cfp used to
+ generate invalid binary under some combinations of compiler
+ optimization flags.
+
Fri Jan 10 18:01:41 2014 Nobuyoshi Nakada <nobu@ruby-lang.org>
* vm_insnhelper.c (vm_search_super_method): allow bound method from a
diff --git a/vm_exec.c b/vm_exec.c
index a8b14e30de..26b0be822b 100644
--- a/vm_exec.c
+++ b/vm_exec.c
@@ -63,7 +63,11 @@ 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");
+# else
DECL_SC_REG(rb_control_frame_t *, cfp, "15");
+# endif
#define USE_MACHINE_REGS 1
#else