merge revision(s) fc03ba50f1: [Backport #19263]

MJIT: Fix JIT code for multiple values in a single case

	[Bug #19263]
	---
	 lib/ruby_vm/mjit/compiler.rb |  2 +-
	 test/ruby/test_mjit.rb       | 10 ++++++++++
	 2 files changed, 11 insertions(+), 1 deletion(-)
This commit is contained in:
NARUSE, Yui 2022-12-27 14:56:51 +09:00
parent a528908271
commit 5c551ac59f
3 changed files with 12 additions and 2 deletions

View file

@ -536,7 +536,7 @@ class RubyVM::MJIT::Compiler # :nodoc: all
when /\A\s+JUMP\((?<dest>[^)]+)\);\s+\z/
dest = Regexp.last_match[:dest]
if insn.name == :opt_case_dispatch # special case... TODO: use another macro to avoid checking name
hash_offsets = C.rb_hash_values(operands[0])
hash_offsets = C.rb_hash_values(operands[0]).uniq
else_offset = cast_offset(operands[1])
base_pos = pos + insn_len