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
This commit is contained in:
ko1 2018-09-26 08:11:05 +00:00
parent ee819b0ddb
commit d3a9ebeb1c
2 changed files with 29 additions and 19 deletions

View file

@ -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