[svn:parrot] r48082 - trunk/src/call

chromatic at svn.parrot.org chromatic at svn.parrot.org
Tue Jul 13 22:48:26 UTC 2010


Author: chromatic
Date: Tue Jul 13 22:48:26 2010
New Revision: 48082
URL: https://trac.parrot.org/parrot/changeset/48082

Log:
[pcc] Reordered switch to improve branch predicts.

Modified:
   trunk/src/call/args.c

Modified: trunk/src/call/args.c
==============================================================================
--- trunk/src/call/args.c	Tue Jul 13 18:46:52 2010	(r48081)
+++ trunk/src/call/args.c	Tue Jul 13 22:48:26 2010	(r48082)
@@ -583,15 +583,6 @@
 
         /* Regular arguments just set the value */
         switch (type) {
-          case 'I':
-            VTABLE_push_integer(interp, call_object, va_arg(*args, INTVAL));
-            break;
-          case 'N':
-            VTABLE_push_float(interp, call_object, va_arg(*args, FLOATVAL));
-            break;
-          case 'S':
-            VTABLE_push_string(interp, call_object, va_arg(*args, STRING *));
-            break;
           case 'P':
             {
                 const INTVAL type_lookahead = sig[i+1];
@@ -617,6 +608,15 @@
                             : clone_key_arg(interp, pmc_arg));
                 break;
             }
+          case 'S':
+            VTABLE_push_string(interp, call_object, va_arg(*args, STRING *));
+            break;
+          case 'I':
+            VTABLE_push_integer(interp, call_object, va_arg(*args, INTVAL));
+            break;
+          case 'N':
+            VTABLE_push_float(interp, call_object, va_arg(*args, FLOATVAL));
+            break;
           case '-':
             return call_object;
             break;


More information about the parrot-commits mailing list