diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-09-26 08:11:05 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-09-26 08:11:05 +0000 |
commit | d3a9ebeb1c49e1cf8dd6accec6485dee32ccff17 (patch) | |
tree | b905c1b8dea5fcca6d8890e748ce031f4011d273 /vm_opts.h | |
parent | ee819b0ddb0cbeb9c587e743204988b2e05e7c5d (diff) |
fix OPT_CALL_THREADED_CODE issue.
* insns.def (opt_send_without_block): reorder insn position because
`opt_str_freeze` insn refer this insn (function) when
OPT_CALL_THREADED_CODE is true.
* vm_opts.h (OPT_THREADED_CODE): introduce new macro to select
threaded code implementation with a compile option (-D...).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@64854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_opts.h')
-rw-r--r-- | vm_opts.h | 16 |
1 files changed, 13 insertions, 3 deletions
@@ -30,9 +30,19 @@ */ /* C compiler dependent */ -#define OPT_DIRECT_THREADED_CODE 1 -#define OPT_TOKEN_THREADED_CODE 0 -#define OPT_CALL_THREADED_CODE 0 + +/* + * 0: direct (using labeled goto using GCC special) + * 1: token (switch/case) + * 2: call (function call for each insn dispatch) + */ +#ifndef OPT_THREADED_CODE +#define OPT_THREADED_CODE 0 +#endif + +#define OPT_DIRECT_THREADED_CODE (OPT_THREADED_CODE == 0) +#define OPT_TOKEN_THREADED_CODE (OPT_THREADED_CODE == 1) +#define OPT_CALL_THREADED_CODE (OPT_THREADED_CODE == 2) /* VM running option */ #define OPT_CHECKED_RUN 1 |