From d3a9ebeb1c49e1cf8dd6accec6485dee32ccff17 Mon Sep 17 00:00:00 2001 From: ko1 Date: Wed, 26 Sep 2018 08:11:05 +0000 Subject: 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 --- vm_opts.h | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'vm_opts.h') diff --git a/vm_opts.h b/vm_opts.h index 0d87e65654..b21db2b5aa 100644 --- a/vm_opts.h +++ b/vm_opts.h @@ -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 -- cgit v1.2.1