diff --git a/ChangeLog b/ChangeLog index bcf7bbc5cb..f8cd53fcaf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Thu Oct 18 18:42:35 2012 Koichi Sasada + + * 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 * insns.def (send): remove unused condition. diff --git a/insns.def b/insns.def index f019435750..a096c5b843 100644 --- a/insns.def +++ b/insns.def @@ -968,6 +968,21 @@ send CALL_METHOD(ci); } +/** + @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 @@ -2045,21 +2060,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