Author: leo
Date: Sat Feb 25 02:39:18 2006
New Revision: 11736

Modified:
   trunk/lib/Parrot/OpTrans/CSwitch.pm
   trunk/src/pic.c

Log:
fix illegal opcode with -Sj; emit better error message

Modified: trunk/lib/Parrot/OpTrans/CSwitch.pm
==============================================================================
--- trunk/lib/Parrot/OpTrans/CSwitch.pm (original)
+++ trunk/lib/Parrot/OpTrans/CSwitch.pm Sat Feb 25 02:39:18 2006
@@ -224,7 +224,7 @@
                *cur_opcode = CORE_OPS_wrapper__;
                continue;
            }
-           internal_exception(1, "illegal opcode\\n");
+           internal_exception(1, "illegal opcode in switch core\\n");
            break;
        } /* switch */
 END_C

Modified: trunk/src/pic.c
==============================================================================
--- trunk/src/pic.c     (original)
+++ trunk/src/pic.c     Sat Feb 25 02:39:18 2006
@@ -253,7 +253,7 @@
     op_lib_t *cg_lib;
 #endif
 
-    if (core == PARROT_SWITCH_CORE)
+    if (core == PARROT_SWITCH_CORE || core == PARROT_SWITCH_JIT_CORE)
         return (void*) op;
 #ifdef HAVE_COMPUTED_GOTO
     cg_lib = PARROT_CORE_CGP_OPLIB_INIT(1);
@@ -605,7 +605,7 @@
     /*
      * rewrite opcode
      */
-    if (core == PARROT_SWITCH_CORE)
+    if (core == PARROT_SWITCH_CORE || core == PARROT_SWITCH_JIT_CORE)
         *pc_pred = (void**) op;
     else
         *pc_pred = ((void **)prederef_op_func)[op];

Reply via email to