summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--insns.def30
2 files changed, 21 insertions, 15 deletions
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 <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.
diff --git a/insns.def b/insns.def
index f019435750..a096c5b843 100644
--- a/insns.def
+++ b/insns.def
@@ -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 ネイティブコンパイルしたメソッドを起動。
*/