1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* gc.h (SET_MACHINE_STACK_END): add volatile for preventing

harmful optimization.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38134 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
kosaki 2012-12-01 21:15:01 +00:00
parent 5bdd03936c
commit 2ba9cdcee6
2 changed files with 7 additions and 2 deletions

View file

@ -1,3 +1,8 @@
Sun Dec 2 06:02:00 2012 KOSAKI Motohiro <kosaki.motohiro@gmail.com>
* gc.h (SET_MACHINE_STACK_END): add volatile for preventing
harmful optimization.
Sun Dec 2 05:01:58 2012 Koichi Sasada <ko1@atdot.net>
* iseq.c (rb_iseq_line_trace_each): iterate `line' event only.

4
gc.h
View file

@ -3,9 +3,9 @@
#define RUBY_GC_H 1
#if defined(__x86_64__) && defined(__GNUC__) && !defined(__native_client__)
#define SET_MACHINE_STACK_END(p) __asm__("movq\t%%rsp, %0" : "=r" (*(p)))
#define SET_MACHINE_STACK_END(p) __asm__ volatile ("movq\t%%rsp, %0" : "=r" (*(p)))
#elif defined(__i386) && defined(__GNUC__) && !defined(__native_client__)
#define SET_MACHINE_STACK_END(p) __asm__("movl\t%%esp, %0" : "=r" (*(p)))
#define SET_MACHINE_STACK_END(p) __asm__ volatile ("movl\t%%esp, %0" : "=r" (*(p)))
#else
NOINLINE(void rb_gc_set_stack_end(VALUE **stack_end_p));
#define SET_MACHINE_STACK_END(p) rb_gc_set_stack_end(p)