diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-10-18 09:44:19 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2012-10-18 09:44:19 +0000 |
commit | 7e8f558aea05d97f7879d6ead4488cc9807c5136 (patch) | |
tree | 0ec4f1f27070d4aa1363439b6eecd856b54cfdd4 | |
parent | d0ead20888daff68f58472ad7f5002d6b168e1d5 (diff) |
* insns.def (opt_send_simple): move the location of
`opt_send_simple' to the place near `send' definition.
(to take care about icache locality).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37260 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | insns.def | 30 |
2 files changed, 21 insertions, 15 deletions
@@ -1,3 +1,9 @@ +Thu Oct 18 18:42:35 2012 Koichi Sasada <ko1@atdot.net> + + * insns.def (opt_send_simple): move the location of + `opt_send_simple' to the place near `send' definition. + (to take care about icache locality). + Thu Oct 18 18:29:25 2012 Koichi Sasada <ko1@atdot.net> * insns.def (send): remove unused condition. @@ -969,6 +969,21 @@ send } /** + @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 method/iterator @e super(args) # args.size => num @j super を実行する。ci に必要な情報が格納されている。 @@ -2047,21 +2062,6 @@ 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 ネイティブコンパイルしたメソッドを起動。 */ |