1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

insns.def: stop pushing unnecessary keys for MJIT

[Bug #14892]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@63875 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
k0kubun 2018-07-07 14:41:03 +00:00
parent c2df63d08a
commit 8bec3e1fe2
2 changed files with 22 additions and 2 deletions

View file

@ -1260,7 +1260,9 @@ opt_aset_with
}
else {
PUSH(recv);
#ifndef MJIT_HEADER
PUSH(rb_str_resurrect(key));
#endif
PUSH(val);
#ifndef MJIT_HEADER
ADD_PC(-WIDTH_OF_opt_send_without_block);
@ -1280,8 +1282,8 @@ opt_aref_with
if (val == Qundef) {
PUSH(recv);
PUSH(rb_str_resurrect(key));
#ifndef MJIT_HEADER
PUSH(rb_str_resurrect(key));
ADD_PC(-WIDTH_OF_opt_send_without_block);
#endif
DISPATCH_ORIGINAL_INSN(opt_send_without_block);

View file

@ -685,7 +685,7 @@ class TestJIT < Test::Unit::TestCase
end;
end
def test_stack_pointer_with_regexpmatch
def test_program_pointer_with_regexpmatch
assert_eval_with_jit("#{<<~"begin;"}\n#{<<~"end;"}", stdout: "aa", success_count: 1)
begin;
2.times do
@ -695,6 +695,24 @@ class TestJIT < Test::Unit::TestCase
end;
end
def test_pushed_values_with_opt_aset_with
assert_eval_with_jit("#{<<~"begin;"}\n#{<<~"end;"}", stdout: "{}{}", success_count: 1)
begin;
2.times do
print(Thread.current["a"] = {})
end
end;
end
def test_pushed_values_with_opt_aref_with
assert_eval_with_jit("#{<<~"begin;"}\n#{<<~"end;"}", stdout: "nil\nnil\n", success_count: 1)
begin;
2.times do
p(Thread.current["a"])
end
end;
end
private
# The shortest way to test one proc