summaryrefslogtreecommitdiff
path: root/vm_insnhelper.h
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-09-06 09:16:23 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-09-06 09:16:23 +0000
commitf1e98086f218f1d5de247f1670f94bfcdff2bf33 (patch)
treedb98343cd55b8a4782f4b5f80b1e376a6a7aa97f /vm_insnhelper.h
parent55cfc1e4098cf742758dd6f4d5c96a30b0e187fa (diff)
* 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.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/vm_insnhelper.h b/vm_insnhelper.h
index bb4cef5..d4dd5ae 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 */