RJIT: Fix arguments for shift_stack
This commit is contained in:
parent
1d529f382c
commit
6ab86e4626
@ -1,16 +1,30 @@
|
||||
assert_equal 'true', %q{
|
||||
def nil_nil = nil == nil
|
||||
nil_nil
|
||||
# VM_CALL_OPT_SEND + VM_METHOD_TYPE_ATTRSET
|
||||
assert_equal '1', %q{
|
||||
class Foo
|
||||
attr_writer :foo
|
||||
|
||||
def bar
|
||||
send(:foo=, 1)
|
||||
end
|
||||
end
|
||||
|
||||
Foo.new.bar
|
||||
}
|
||||
|
||||
assert_equal 'true', %q{
|
||||
def lt(a, b) = a < b
|
||||
lt(1, 2)
|
||||
lt('a', 'b')
|
||||
# VM_CALL_OPT_SEND + OPTIMIZED_METHOD_TYPE_CALL
|
||||
assert_equal 'foo', %q{
|
||||
def bar(&foo)
|
||||
foo.send(:call)
|
||||
end
|
||||
|
||||
bar { :foo }
|
||||
}
|
||||
|
||||
assert_equal '3', %q{
|
||||
def foo = 2
|
||||
def bar = 1 + foo + nil.to_i
|
||||
bar
|
||||
# VM_CALL_OPT_SEND + OPTIMIZED_METHOD_TYPE_STRUCT_AREF
|
||||
assert_equal 'bar', %q{
|
||||
def bar(foo)
|
||||
foo.send(:bar)
|
||||
end
|
||||
|
||||
bar(Struct.new(:bar).new(:bar))
|
||||
}
|
||||
|
@ -5128,7 +5128,7 @@ module RubyVM::RJIT
|
||||
|
||||
# This is a .send call and we need to adjust the stack
|
||||
if flags & C::VM_CALL_OPT_SEND != 0
|
||||
handle_opt_send_shift_stack(ctx, asm, argc, send_shift:)
|
||||
handle_opt_send_shift_stack(asm, argc, ctx, send_shift:)
|
||||
end
|
||||
|
||||
# Save the PC and SP because the callee may allocate
|
||||
@ -5316,7 +5316,7 @@ module RubyVM::RJIT
|
||||
|
||||
# If this is a .send call we need to adjust the stack
|
||||
if flags & C::VM_CALL_OPT_SEND != 0
|
||||
handle_opt_send_shift_stack(ctx, asm, argc, send_shift:)
|
||||
handle_opt_send_shift_stack(asm, argc, ctx, send_shift:)
|
||||
end
|
||||
|
||||
# About to reset the SP, need to load this here
|
||||
@ -5363,7 +5363,7 @@ module RubyVM::RJIT
|
||||
|
||||
# This is a .send call and we need to adjust the stack
|
||||
if flags & C::VM_CALL_OPT_SEND != 0
|
||||
handle_opt_send_shift_stack(ctx, asm, argc, send_shift:)
|
||||
handle_opt_send_shift_stack(asm, argc, ctx, send_shift:)
|
||||
end
|
||||
|
||||
# All structs from the same Struct class should have the same
|
||||
|
Loading…
x
Reference in New Issue
Block a user