Improve explanation of FCALL and VCALL

This commit is contained in:
Takashi Kokubun 2023-04-01 10:17:57 -07:00
parent 4ac8d11724
commit 175538e433

View File

@ -13,19 +13,19 @@
#include "shape.h" #include "shape.h"
enum vm_call_flag_bits { enum vm_call_flag_bits {
VM_CALL_ARGS_SPLAT_bit, /* m(*args) */ VM_CALL_ARGS_SPLAT_bit, // m(*args)
VM_CALL_ARGS_BLOCKARG_bit, /* m(&block) */ VM_CALL_ARGS_BLOCKARG_bit, // m(&block)
VM_CALL_FCALL_bit, /* m(...) */ VM_CALL_FCALL_bit, // m(args) # receiver is self
VM_CALL_VCALL_bit, /* m */ VM_CALL_VCALL_bit, // m # method call that looks like a local variable
VM_CALL_ARGS_SIMPLE_bit, /* (ci->flag & (SPLAT|BLOCKARG)) && blockiseq == NULL && ci->kw_arg == NULL */ VM_CALL_ARGS_SIMPLE_bit, // (ci->flag & (SPLAT|BLOCKARG)) && blockiseq == NULL && ci->kw_arg == NULL
VM_CALL_BLOCKISEQ_bit, /* has blockiseq */ VM_CALL_BLOCKISEQ_bit, // has blockiseq
VM_CALL_KWARG_bit, /* has kwarg */ VM_CALL_KWARG_bit, // has kwarg
VM_CALL_KW_SPLAT_bit, /* m(**opts) */ VM_CALL_KW_SPLAT_bit, // m(**opts)
VM_CALL_TAILCALL_bit, /* located at tail position */ VM_CALL_TAILCALL_bit, // located at tail position
VM_CALL_SUPER_bit, /* super */ VM_CALL_SUPER_bit, // super
VM_CALL_ZSUPER_bit, /* zsuper */ VM_CALL_ZSUPER_bit, // zsuper
VM_CALL_OPT_SEND_bit, /* internal flag */ VM_CALL_OPT_SEND_bit, // internal flag
VM_CALL_KW_SPLAT_MUT_bit, /* kw splat hash can be modified (to avoid allocating a new one) */ VM_CALL_KW_SPLAT_MUT_bit, // kw splat hash can be modified (to avoid allocating a new one)
VM_CALL__END VM_CALL__END
}; };