summaryrefslogtreecommitdiff
path: root/insns.def
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-10-18 08:35:19 +0000
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-10-18 08:35:19 +0000
commit1486b9cf0ac549edb7e7c3f886558d3e98100746 (patch)
tree420918bd203542f92b1ffd72838df9c98fffdaed /insns.def
parent6be52625b25ac334f182a7814c7c0590c5a0bc16 (diff)
* insns.def (opt_send_simple): introduce new instruction used
when no need to care about block and splat. * compile.c: use the `opt_send_simple' instruction. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37258 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r--insns.def15
1 files changed, 15 insertions, 0 deletions
diff --git a/insns.def b/insns.def
index 2f5d5d5508..22b4e4fa5c 100644
--- a/insns.def
+++ b/insns.def
@@ -2050,6 +2050,21 @@ opt_regexpmatch2
/**
@c optimize
+ @e Invoke method without block, splat
+ @j Invoke method without block, splat
+ */
+DEFINE_INSN
+opt_send_simple
+(CALL_INFO ci)
+(...)
+(VALUE val) // inc += -ci->orig_argc;
+{
+ vm_search_method(ci, ci->recv = TOPN(ci->argc));
+ CALL_METHOD(ci);
+}
+
+/**
+ @c optimize
@e call native compiled method
@j ネイティブコンパイルしたメソッドを起動。
*/