diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-09-06 09:16:23 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-09-06 09:16:23 +0000 |
commit | f1e98086f218f1d5de247f1670f94bfcdff2bf33 (patch) | |
tree | db98343cd55b8a4782f4b5f80b1e376a6a7aa97f /vm_insnhelper.h | |
parent | 55cfc1e4098cf742758dd6f4d5c96a30b0e187fa (diff) | |
download | ruby-f1e98086f218f1d5de247f1670f94bfcdff2bf33.tar.gz |
* vm_insnhelper.h (CALL_SIMPLE_METHOD_IC): make a macro
invoke simple method with inline cache entry.
* insns.def (opt_length, opt_size): fix to use inline method cache.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@24771 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_insnhelper.h')
-rw-r--r-- | vm_insnhelper.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/vm_insnhelper.h b/vm_insnhelper.h index bb4cef553b..d4dd5aec4d 100644 --- a/vm_insnhelper.h +++ b/vm_insnhelper.h @@ -189,4 +189,9 @@ extern VALUE ruby_vm_const_missing_count; CALL_METHOD(num, 0, 0, id, rb_method_entry(klass, id), recv); \ } while (0) +#define CALL_SIMPLE_METHOD_IC(num, id, recv, ic) do { \ + VALUE klass = CLASS_OF(recv); \ + CALL_METHOD(num, 0, 0, id, vm_method_search(id, klass, ic), recv); \ +} while (0) + #endif /* RUBY_INSNHELPER_H */ |