diff options
author | Takashi Kokubun <[email protected]> | 2020-06-17 09:16:01 -0700 |
---|---|---|
committer | GitHub <[email protected]> | 2020-06-17 09:16:01 -0700 |
commit | e544a3a23cb80460d77dcb145ad1ff84f77524c0 (patch) | |
tree | c4f344b16ec6f0852dc0592cbb637d563af62064 | |
parent | e30ff63fd4eb24fd638259cb10638668f0f2ceeb (diff) |
Remove obsoleted opt_call_c_function insn (#3232)
* Remove obsoleted opt_call_c_function insn
* Keep opt_call_c_function with DEFINE_INSN_IF
Notes
Notes:
Merged-By: k0kubun <[email protected]>
-rw-r--r-- | bootstraptest/test_insns.rb | 2 | ||||
-rw-r--r-- | insns.def | 2 | ||||
-rw-r--r-- | test/ruby/test_jit.rb | 5 | ||||
-rw-r--r-- | tool/ruby_vm/views/mjit_compile.inc.erb | 3 | ||||
-rw-r--r-- | vm_opts.h | 4 |
5 files changed, 6 insertions, 10 deletions
diff --git a/bootstraptest/test_insns.rb b/bootstraptest/test_insns.rb index abfb53f7dc..8addbf7b83 100644 --- a/bootstraptest/test_insns.rb +++ b/bootstraptest/test_insns.rb @@ -412,8 +412,6 @@ tests = [ class String; def =~ other; true; end; end 'true' =~ /true/ }, - - [ 'opt_call_c_function', 'Struct.new(:x).new.x = true', ], ] # normal path @@ -1455,7 +1455,7 @@ opt_regexpmatch2 } /* call native compiled method */ -DEFINE_INSN +DEFINE_INSN_IF(SUPPORT_CALL_C_FUNCTION) opt_call_c_function (rb_insn_func_t funcptr) () diff --git a/test/ruby/test_jit.rb b/test/ruby/test_jit.rb index a5d5fb45a9..97c287f692 100644 --- a/test/ruby/test_jit.rb +++ b/test/ruby/test_jit.rb @@ -22,7 +22,6 @@ class TestJIT < Test::Unit::TestCase TEST_PENDING_INSNS = RubyVM::INSTRUCTION_NAMES.select { |n| n.start_with?('trace_') }.map(&:to_sym) + [ # not supported yet :defineclass, - :opt_call_c_function, # to be tested :invokebuiltin, @@ -613,10 +612,6 @@ class TestJIT < Test::Unit::TestCase assert_compile_once("'true' =~ /true/", result_inspect: '0', insns: %i[opt_regexpmatch2]) end - def test_compile_insn_opt_call_c_function - skip "support this in opt_call_c_function (low priority)" - end - def test_compile_insn_opt_invokebuiltin_delegate_leave insns = collect_insns(RubyVM::InstructionSequence.of("\x00".method(:unpack)).to_a) mark_tested_insn(:opt_invokebuiltin_delegate_leave, used_insns: insns) diff --git a/tool/ruby_vm/views/mjit_compile.inc.erb b/tool/ruby_vm/views/mjit_compile.inc.erb index c9755454ba..0d3678dfb5 100644 --- a/tool/ruby_vm/views/mjit_compile.inc.erb +++ b/tool/ruby_vm/views/mjit_compile.inc.erb @@ -16,8 +16,7 @@ } -%> % % unsupported_insns = [ -% 'defineclass', # low priority -% 'opt_call_c_function', # low priority +% 'defineclass', # low priority % ] % % opt_send_without_block = RubyVM::Instructions.find { |i| i.name == 'opt_send_without_block' } @@ -62,6 +62,10 @@ #define OPT_SUPPORT_JOKE 0 #endif +#ifndef OPT_SUPPORT_CALL_C_FUNCTION +#define OPT_SUPPORT_CALL_C_FUNCTION 0 +#endif + #ifndef VM_COLLECT_USAGE_DETAILS #define VM_COLLECT_USAGE_DETAILS 0 #endif |