[svn:parrot] r44907 - branches/ops_pct/compilers/opsc/src/Ops/Compiler

bacek at svn.parrot.org bacek at svn.parrot.org
Sat Mar 13 20:19:55 UTC 2010


Author: bacek
Date: Sat Mar 13 20:19:53 2010
New Revision: 44907
URL: https://trac.parrot.org/parrot/changeset/44907

Log:
Fix handling of 'restart NEXT'

Modified:
   branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm

Modified: branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm
==============================================================================
--- branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm	Fri Mar 12 22:47:14 2010	(r44906)
+++ branches/ops_pct/compilers/opsc/src/Ops/Compiler/Actions.pm	Sat Mar 13 20:19:53 2010	(r44907)
@@ -336,9 +336,9 @@
     # expr NEXT()         -> expr_offset(opsize())
     # expr OFFSET($addr)  -> expr_offset($addr)
     # expr ADDRERR($addr) -> expr_address($addr)
-    # restart NEXT()      -> restart_offset(opsize()); goto_offset(opsize())
+    # restart NEXT()      -> restart_offset(opsize()); goto_address(0)
     # restart OFFSET()    -> restart_offset($addr); goto_offset($addr)
-    # restart ADDRESS()   -> restart_address($addr); goto_offset($addr)
+    # restart ADDRESS()   -> restart_address($addr); goto_address($addr)
 
     my $macro_type := ~$<macro_type>;
     my $macro_dest := ~$<macro_destination>;
@@ -383,12 +383,12 @@
 
         $macro := PAST::Op.new(
             :pasttype<call>,
-            :name('goto_' ~ ($is_next ?? 'offset' !! lc($macro_dest))),
+            :name<goto_address>,
         );
         if $is_next {
             $macro.push(PAST::Op.new(
-                :pasttype<call>,
-                :name<OPSIZE>,
+                :pasttype<inline>,
+                :inline<0>,
             ));
         }
         else {


More information about the parrot-commits mailing list