# New Ticket Created by  "Alek Storm" 
# Please include the string:  [perl #41620]
# in the subject line of all future correspondence about this issue. 
# <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=41620 >


This patch changes the <label INT>, <labelvar INT>, and <labelconst
INT> syntax in opcodes to <in LABEL>, <invar LABEL>, and <inconst
LABEL>, respectively.  The argument is still an integer, however.
This cuts the number of argument directions down by three, and only
adds one argument type, making the code clearer.  This is really an
argument type, after all, not a special kind of direction.  I doubt
there will be any confusion about LABEL really being INT, because no
ops do any arithmetic with it; they just use it for <goto OFFSET($1)>
and <goto ADDRESS($1)>.

Files affected:
languages/dotnet/ops/dotnet.ops
lib/Parrot/OpsFile.pm
src/ops/cmp.ops
src/ops/core.ops
src/ops/stm.ops

Thanks,
Alek Storm
diff -ur --exclude=.svn --exclude=Makefile languages/dotnet/ops/dotnet.ops languages/dotnet/ops/dotnet.ops
--- languages/dotnet/ops/dotnet.ops	2007-02-16 15:42:26.000000000 +0000
+++ languages/dotnet/ops/dotnet.ops	2007-02-25 20:49:28.000000000 +0000
@@ -526,7 +526,7 @@
 
 
 /* Unsigned branch ops. */
-inline op net_bge_un(in INT, in INT, labelconst INT) :base_core {
+inline op net_bge_un(in INT, in INT, inconst LABEL) :base_core {
         if ((unsigned int)$1 >= (unsigned int)$2)
         {
                 goto OFFSET($3);
@@ -537,7 +537,7 @@
         }
 }
 
-inline op net_bge_un(in NUM, in NUM, labelconst INT) :base_core {
+inline op net_bge_un(in NUM, in NUM, inconst LABEL) :base_core {
         if ((unsigned int)$1 >= (unsigned int)$2)
         {
                 goto OFFSET($3);
@@ -548,7 +548,7 @@
         }
 }
 
-inline op net_bge_un(invar PMC, invar PMC, labelconst INT) :base_core {
+inline op net_bge_un(invar PMC, invar PMC, inconst LABEL) :base_core {
     int result;
     if ($1->vtable->isa(interp, $1,
         string_from_const_cstring(interp, "UInt64", 0)))
@@ -573,7 +573,7 @@
     }
 }
 
-inline op net_bgt_un(in INT, in INT, labelconst INT) :base_core {
+inline op net_bgt_un(in INT, in INT, inconst LABEL) :base_core {
         if ((unsigned int)$1 > (unsigned int)$2)
         {
                 goto OFFSET($3);
@@ -584,7 +584,7 @@
         }
 }
 
-inline op net_bgt_un(in NUM, in NUM, labelconst INT) :base_core {
+inline op net_bgt_un(in NUM, in NUM, inconst LABEL) :base_core {
         if ($1 > $2)
         {
                 goto OFFSET($3);
@@ -595,7 +595,7 @@
         }
 }
 
-inline op net_bgt_un(invar PMC, invar PMC, labelconst INT) :base_core {
+inline op net_bgt_un(invar PMC, invar PMC, inconst LABEL) :base_core {
     int result;
     if ($1->vtable->isa(interp, $1,
         string_from_const_cstring(interp, "UInt64", 0)))
@@ -620,7 +620,7 @@
     }
 }
 
-inline op net_ble_un(in INT, in INT, labelconst INT) :base_core {
+inline op net_ble_un(in INT, in INT, inconst LABEL) :base_core {
         if ((unsigned int)$1 <= (unsigned int)$2)
         {
                 goto OFFSET($3);
@@ -631,7 +631,7 @@
         }
 }
 
-inline op net_ble_un(in NUM, in NUM, labelconst INT) :base_core {
+inline op net_ble_un(in NUM, in NUM, inconst LABEL) :base_core {
         if ($1 <= $2)
         {
                 goto OFFSET($3);
@@ -642,7 +642,7 @@
         }
 }
 
-inline op net_ble_un(invar PMC, invar PMC, labelconst INT) :base_core {
+inline op net_ble_un(invar PMC, invar PMC, inconst LABEL) :base_core {
     int result;
     if ($1->vtable->isa(interp, $1,
         string_from_const_cstring(interp, "UInt64", 0)))
@@ -667,7 +667,7 @@
     }
 }
 
-inline op net_blt_un(in INT, in INT, labelconst INT) :base_core {
+inline op net_blt_un(in INT, in INT, inconst LABEL) :base_core {
         if ((unsigned int)$1 < (unsigned int)$2)
         {
                 goto OFFSET($3);
@@ -678,7 +678,7 @@
         }
 }
 
-inline op net_blt_un(in NUM, in NUM, labelconst INT) :base_core {
+inline op net_blt_un(in NUM, in NUM, inconst LABEL) :base_core {
         if ($1 < $2)
         {
                 goto OFFSET($3);
@@ -689,7 +689,7 @@
         }
 }
 
-inline op net_blt_un(invar PMC, invar PMC, labelconst INT) :base_core {
+inline op net_blt_un(invar PMC, invar PMC, inconst LABEL) :base_core {
     int result;
     if ($1->vtable->isa(interp, $1,
         string_from_const_cstring(interp, "UInt64", 0)))
@@ -714,7 +714,7 @@
     }
 }
 
-inline op net_bne_un(in INT, in INT, labelconst INT) :base_core {
+inline op net_bne_un(in INT, in INT, inconst LABEL) :base_core {
         if ((unsigned int)$1 != (unsigned int)$2)
         {
                 goto OFFSET($3);
@@ -725,7 +725,7 @@
         }
 }
 
-inline op net_bne_un(in NUM, in NUM, labelconst INT) :base_core {
+inline op net_bne_un(in NUM, in NUM, inconst LABEL) :base_core {
         if ($1 != $2)
         {
                 goto OFFSET($3);
@@ -736,7 +736,7 @@
         }
 }
 
-inline op net_bne_un(invar PMC, invar PMC, labelconst INT) :base_core {
+inline op net_bne_un(invar PMC, invar PMC, inconst LABEL) :base_core {
     int result;
     if ($1->vtable->isa(interp, $1,
         string_from_const_cstring(interp, "UInt64", 0)))
diff -ur --exclude=.svn --exclude=Makefile /lib/Parrot/OpsFile.pm parrot/lib/Parrot/OpsFile.pm
--- lib/Parrot/OpsFile.pm	2007-02-24 00:15:24.000000000 +0000
+++ lib/Parrot/OpsFile.pm	2007-02-25 20:35:47.000000000 +0000
@@ -51,9 +51,6 @@
     inout         the argument passes a value into and out of the op
     inconst       the argument passes a constant value into the op
     invar         the argument passes a variable value into the op
-    label         an in argument containing a branch offset or address
-    labelconst    an invar argument containing a branch offset or address
-    labelvar      an inconst argument containing a branch offset or address
 
 Argument direction is used to determine the life times of symbols and
 their related register allocations. When an argument is passed into an
@@ -68,6 +65,7 @@
     PMC       the argument is an PMC
     KEY       the argument is an aggregate PMC key
     INTKEY    the argument is an aggregate PMC integer key
+    LABEL     the argument is an integer branch offset or address
 
 The size of the return offset is determined from the op function's
 signature.
@@ -329,29 +327,28 @@
 
             foreach my $arg (@args) {
                 my ( $use, $type ) =
-                    $arg =~ m/^(in|out|inout|inconst|invar|label|labelconst|labelvar)
+                    $arg =~ m/^(in|out|inout|inconst|invar)
                     \s+
-                    (INT|NUM|STR|PMC|KEY|INTKEY)$/ix;
+                    (INT|NUM|STR|PMC|KEY|INTKEY|LABEL)$/ix;
 
                 die "Unrecognized arg format '$arg' in '$_'!"
                     unless defined($use)
                     and defined($type);
 
-                if ( $type =~ /^INTKEY$/i ) {
-                    $type = "ki";
+                # remember it's a label, then to int
+                if ( $type =~ /^LABEL$/i ) {
+                    $type = "i";
+                    push @labels, 1;
                 }
                 else {
-                    $type = lc substr( $type, 0, 1 );
+                    push @labels, 0;
                 }
 
-                # convert e.g. "labelvar" to "invar" and remember labels
-
-                if ( $use =~ /label(\w*)/ ) {
-                    push @labels, 1;
-                    $use = "in$1";
+                if ( $type =~ /^INTKEY$/i ) {
+                    $type = "ki";
                 }
                 else {
-                    push @labels, 0;
+                    $type = lc substr( $type, 0, 1 );
                 }
 
                 if ( $use eq 'in' ) {
diff -ur --exclude=.svn --exclude=Makefile src/ops/cmp.ops parrot/src/ops/cmp.ops
--- src/ops/cmp.ops	2007-02-16 15:42:29.000000000 +0000
+++ src/ops/cmp.ops	2007-02-25 20:46:07.000000000 +0000
@@ -34,27 +34,27 @@
 
 ########################################
 
-=item B<eq>(in INT, in INT, labelconst INT)
+=item B<eq>(in INT, in INT, inconst LABEL)
 
-=item B<eq>(in NUM, in NUM, labelconst INT)
+=item B<eq>(in NUM, in NUM, inconst LABEL)
 
-=item B<eq>(in STR, in STR, labelconst INT)
+=item B<eq>(in STR, in STR, inconst LABEL)
 
-=item B<eq>(invar PMC, invar PMC, labelconst INT)
+=item B<eq>(invar PMC, invar PMC, inconst LABEL)
 
-=item B<eq>(invar PMC, in INT, labelconst INT)
+=item B<eq>(invar PMC, in INT, inconst LABEL)
 
-=item B<eq>(invar PMC, in NUM, labelconst INT)
+=item B<eq>(invar PMC, in NUM, inconst LABEL)
 
-=item B<eq>(invar PMC, in STR, labelconst INT)
+=item B<eq>(invar PMC, in STR, inconst LABEL)
 
-=item B<eq_str>(invar PMC, invar PMC, labelconst INT)
+=item B<eq_str>(invar PMC, invar PMC, inconst LABEL)
 
-=item B<eq_num>(invar PMC, invar PMC, labelconst INT)
+=item B<eq_num>(invar PMC, invar PMC, inconst LABEL)
 
-=item B<eq_addr>(in STR, in STR, labelconst INT)
+=item B<eq_addr>(in STR, in STR, inconst LABEL)
 
-=item B<eq_addr>(invar PMC, invar PMC, labelconst INT)
+=item B<eq_addr>(invar PMC, invar PMC, inconst LABEL)
 
 Branch if $1 is equal to $2. For PMCs this does a generic comparison,
 whatever that is for the involved PMCs. Mixed PMC number/string
@@ -66,35 +66,35 @@
 
 =cut
 
-inline op eq(in INT, in INT, labelconst INT) :base_core {
+inline op eq(in INT, in INT, inconst LABEL) :base_core {
   if ($1 == $2) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-inline op eq(in NUM, in NUM, labelconst INT) :base_core {
+inline op eq(in NUM, in NUM, inconst LABEL) :base_core {
   if ($1 == $2) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op eq(in STR, in STR, labelconst INT) :base_core {
+op eq(in STR, in STR, inconst LABEL) :base_core {
   if (string_equal(interp, $1, $2) == 0) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op eq (invar PMC, invar PMC, labelconst INT) :base_core {
+op eq (invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_EQ)) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op eq (invar PMC, in INT, labelconst INT) :base_core {
+op eq (invar PMC, in INT, inconst LABEL) :base_core {
   /*
    * see also #34949
    * the temp is necessary, *if* $1 isa BigInt
@@ -107,7 +107,7 @@
   goto NEXT();
 }
 
-op eq (invar PMC, in NUM, labelconst INT) :base_core {
+op eq (invar PMC, in NUM, inconst LABEL) :base_core {
   /*
    * the get_number and get_string should probably
    * be also replaced with code like above, as
@@ -120,7 +120,7 @@
   goto NEXT();
 }
 
-op eq (invar PMC, in STR, labelconst INT) :base_core {
+op eq (invar PMC, in STR, inconst LABEL) :base_core {
   if (0 == string_equal(interp,
       $1->vtable->get_string(interp, $1), $2)) {
     goto OFFSET($3);
@@ -128,28 +128,28 @@
   goto NEXT();
 }
 
-op eq_str (invar PMC, invar PMC, labelconst INT) :base_core {
+op eq_str (invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_STREQ)) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op eq_num (invar PMC, invar PMC, labelconst INT) :base_core {
+op eq_num (invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_NUMEQ)) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op eq_addr(in STR, in STR, labelconst INT) :base_core {
+op eq_addr(in STR, in STR, inconst LABEL) :base_core {
   if ($1 == $2) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op eq_addr(invar PMC, invar PMC, labelconst INT) :base_core {
+op eq_addr(invar PMC, invar PMC, inconst LABEL) :base_core {
   if ($1 == $2) {
     goto OFFSET($3);
   }
@@ -158,61 +158,61 @@
 
 ########################################
 
-=item B<ne>(in INT, in INT, labelconst INT)
+=item B<ne>(in INT, in INT, inconst LABEL)
 
-=item B<ne>(in NUM, in NUM, labelconst INT)
+=item B<ne>(in NUM, in NUM, inconst LABEL)
 
-=item B<ne>(in STR, in STR, labelconst INT)
+=item B<ne>(in STR, in STR, inconst LABEL)
 
-=item B<ne>(invar PMC, invar PMC, labelconst INT)
+=item B<ne>(invar PMC, invar PMC, inconst LABEL)
 
-=item B<ne>(invar PMC, in INT, labelconst INT)
+=item B<ne>(invar PMC, in INT, inconst LABEL)
 
-=item B<ne>(invar PMC, in NUM, labelconst INT)
+=item B<ne>(invar PMC, in NUM, inconst LABEL)
 
-=item B<ne>(invar PMC, in STR, labelconst INT)
+=item B<ne>(invar PMC, in STR, inconst LABEL)
 
-=item B<ne_str>(invar PMC, invar PMC, labelconst INT)
+=item B<ne_str>(invar PMC, invar PMC, inconst LABEL)
 
-=item B<ne_num>(invar PMC, invar PMC, labelconst INT)
+=item B<ne_num>(invar PMC, invar PMC, inconst LABEL)
 
-=item B<ne_addr>(in STR, in STR, labelconst INT)
+=item B<ne_addr>(in STR, in STR, inconst LABEL)
 
-=item B<ne_addr>(invar PMC, invar PMC, labelconst INT)
+=item B<ne_addr>(invar PMC, invar PMC, inconst LABEL)
 
 Branch if $1 is not equal to $2.
 
 =cut
 
-inline op ne(in INT, in INT, labelconst INT) :base_core {
+inline op ne(in INT, in INT, inconst LABEL) :base_core {
   if ($1 != $2) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-inline op ne(in NUM, in NUM, labelconst INT) :base_core {
+inline op ne(in NUM, in NUM, inconst LABEL) :base_core {
   if ($1 != $2) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op ne(in STR, in STR, labelconst INT) :base_core {
+op ne(in STR, in STR, inconst LABEL) :base_core {
   if (string_equal(interp, $1, $2) != 0) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op ne(invar PMC, invar PMC, labelconst INT) :base_core {
+op ne(invar PMC, invar PMC, inconst LABEL) :base_core {
   if (! mmd_dispatch_i_pp(interp, $1, $2, MMD_EQ)) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op ne (invar PMC, in INT, labelconst INT) :base_core {
+op ne (invar PMC, in INT, inconst LABEL) :base_core {
   PMC *temp = pmc_new(interp, enum_class_Integer);
   PMC_int_val(temp) = $2;
   if (! mmd_dispatch_i_pp(interp, $1, temp, MMD_EQ)) {
@@ -221,14 +221,14 @@
   goto NEXT();
 }
 
-op ne (invar PMC, in NUM, labelconst INT) :base_core {
+op ne (invar PMC, in NUM, inconst LABEL) :base_core {
   if ($1->vtable->get_number(interp, $1) != $2) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op ne (invar PMC, in STR, labelconst INT) :base_core {
+op ne (invar PMC, in STR, inconst LABEL) :base_core {
   if (0 != string_equal(interp,
       $1->vtable->get_string(interp, $1), $2)) {
     goto OFFSET($3);
@@ -236,28 +236,28 @@
   goto NEXT();
 }
 
-op ne_str (invar PMC, invar PMC, labelconst INT) :base_core {
+op ne_str (invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_STRCMP) != 0) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op ne_num (invar PMC, invar PMC, labelconst INT) :base_core {
+op ne_num (invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_NUMCMP) != 0) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op ne_addr(in STR, in STR, labelconst INT) :base_core {
+op ne_addr(in STR, in STR, inconst LABEL) :base_core {
   if ($1 != $2) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op ne_addr(invar PMC, invar PMC, labelconst INT) :base_core {
+op ne_addr(invar PMC, invar PMC, inconst LABEL) :base_core {
   if ($1 != $2) {
     goto OFFSET($3);
   }
@@ -266,57 +266,57 @@
 
 ########################################
 
-=item B<lt>(in INT, in INT, labelconst INT)
+=item B<lt>(in INT, in INT, inconst LABEL)
 
-=item B<lt>(in NUM, in NUM, labelconst INT)
+=item B<lt>(in NUM, in NUM, inconst LABEL)
 
-=item B<lt>(in STR, in STR, labelconst INT)
+=item B<lt>(in STR, in STR, inconst LABEL)
 
-=item B<lt>(invar PMC, invar PMC, labelconst INT)
+=item B<lt>(invar PMC, invar PMC, inconst LABEL)
 
-=item B<lt>(invar PMC, in INT, labelconst INT)
+=item B<lt>(invar PMC, in INT, inconst LABEL)
 
-=item B<lt>(invar PMC, in NUM, labelconst INT)
+=item B<lt>(invar PMC, in NUM, inconst LABEL)
 
-=item B<lt>(invar PMC, in STR, labelconst INT)
+=item B<lt>(invar PMC, in STR, inconst LABEL)
 
-=item B<lt_str>(invar PMC, invar PMC, labelconst INT)
+=item B<lt_str>(invar PMC, invar PMC, inconst LABEL)
 
-=item B<lt_num>(invar PMC, invar PMC, labelconst INT)
+=item B<lt_num>(invar PMC, invar PMC, inconst LABEL)
 
 Branch if $1 is less than $2.
 
 =cut
 
-inline op lt(in INT, in INT, labelconst INT) :base_core {
+inline op lt(in INT, in INT, inconst LABEL) :base_core {
   if ($1 < $2) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-inline op lt(in NUM, in NUM, labelconst INT) :base_core {
+inline op lt(in NUM, in NUM, inconst LABEL) :base_core {
   if ($1 < $2) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op lt(in STR, in STR, labelconst INT) :base_core {
+op lt(in STR, in STR, inconst LABEL) :base_core {
   if (string_compare(interp, $1, $2) < 0) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op lt (invar PMC, invar PMC, labelconst INT) :base_core {
+op lt (invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_CMP) < 0) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op lt (invar PMC, in INT, labelconst INT) :base_core {
+op lt (invar PMC, in INT, inconst LABEL) :base_core {
   PMC *temp = pmc_new(interp, enum_class_Integer);
   PMC_int_val(temp) = $2;
   if (mmd_dispatch_i_pp(interp, $1, temp, MMD_CMP) < 0) {
@@ -325,14 +325,14 @@
   goto NEXT();
 }
 
-op lt (invar PMC, in NUM, labelconst INT) :base_core {
+op lt (invar PMC, in NUM, inconst LABEL) :base_core {
   if ($1->vtable->get_number(interp, $1) < $2) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op lt (invar PMC, in STR, labelconst INT) :base_core {
+op lt (invar PMC, in STR, inconst LABEL) :base_core {
   if (string_compare(interp,
       $1->vtable->get_string(interp, $1), $2) < 0) {
     goto OFFSET($3);
@@ -340,14 +340,14 @@
   goto NEXT();
 }
 
-op lt_str (invar PMC, invar PMC, labelconst INT) :base_core {
+op lt_str (invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_STRCMP) < 0) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op lt_num (invar PMC, invar PMC, labelconst INT) :base_core {
+op lt_num (invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_NUMCMP) < 0) {
     goto OFFSET($3);
   }
@@ -356,57 +356,57 @@
 
 ########################################
 
-=item B<le>(in INT, in INT, labelconst INT)
+=item B<le>(in INT, in INT, inconst LABEL)
 
-=item B<le>(in NUM, in NUM, labelconst INT)
+=item B<le>(in NUM, in NUM, inconst LABEL)
 
-=item B<le>(in STR, in STR, labelconst INT)
+=item B<le>(in STR, in STR, inconst LABEL)
 
-=item B<le>(invar PMC, invar PMC, labelconst INT)
+=item B<le>(invar PMC, invar PMC, inconst LABEL)
 
-=item B<le>(invar PMC, in INT, labelconst INT)
+=item B<le>(invar PMC, in INT, inconst LABEL)
 
-=item B<le>(invar PMC, in NUM, labelconst INT)
+=item B<le>(invar PMC, in NUM, inconst LABEL)
 
-=item B<le>(invar PMC, in STR, labelconst INT)
+=item B<le>(invar PMC, in STR, inconst LABEL)
 
-=item B<le_str>(invar PMC, invar PMC, labelconst INT)
+=item B<le_str>(invar PMC, invar PMC, inconst LABEL)
 
-=item B<le_num>(invar PMC, invar PMC, labelconst INT)
+=item B<le_num>(invar PMC, invar PMC, inconst LABEL)
 
 Branch if $1 is less than or equal to $2.
 
 =cut
 
-inline op le(in INT, in INT, labelconst INT) :base_core {
+inline op le(in INT, in INT, inconst LABEL) :base_core {
   if ($1 <= $2) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-inline op le(in NUM, in NUM, labelconst INT) :base_core {
+inline op le(in NUM, in NUM, inconst LABEL) :base_core {
   if ($1 <= $2) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op le(in STR, in STR, labelconst INT) :base_core {
+op le(in STR, in STR, inconst LABEL) :base_core {
   if (string_compare(interp, $1, $2) <= 0) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op le(invar PMC, invar PMC, labelconst INT) :base_core {
+op le(invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_CMP) <= 0) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op le(invar PMC, in INT, labelconst INT) :base_core {
+op le(invar PMC, in INT, inconst LABEL) :base_core {
   PMC *temp = pmc_new(interp, enum_class_Integer);
   PMC_int_val(temp) = $2;
   if (mmd_dispatch_i_pp(interp, $1, temp, MMD_CMP) <= 0) {
@@ -415,14 +415,14 @@
   goto NEXT();
 }
 
-op le (invar PMC, in NUM, labelconst INT) :base_core {
+op le (invar PMC, in NUM, inconst LABEL) :base_core {
   if ($1->vtable->get_number(interp, $1) <= $2) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op le (invar PMC, in STR, labelconst INT) :base_core {
+op le (invar PMC, in STR, inconst LABEL) :base_core {
   if (string_compare(interp,
       $1->vtable->get_string(interp, $1), $2) <= 0) {
     goto OFFSET($3);
@@ -430,14 +430,14 @@
   goto NEXT();
 }
 
-op le_str (invar PMC, invar PMC, labelconst INT) :base_core {
+op le_str (invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_STRCMP) <= 0) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op le_num (invar PMC, invar PMC, labelconst INT) :base_core {
+op le_num (invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_NUMCMP) <= 0) {
     goto OFFSET($3);
   }
@@ -446,30 +446,30 @@
 
 ########################################
 
-=item B<gt>(invar PMC, invar PMC, labelconst INT)
+=item B<gt>(invar PMC, invar PMC, inconst LABEL)
 
-=item B<gt>(invar PMC, in INT, labelconst INT)
+=item B<gt>(invar PMC, in INT, inconst LABEL)
 
-=item B<gt>(invar PMC, in NUM, labelconst INT)
+=item B<gt>(invar PMC, in NUM, inconst LABEL)
 
-=item B<gt>(invar PMC, in STR, labelconst INT)
+=item B<gt>(invar PMC, in STR, inconst LABEL)
 
-=item B<gt_str>(invar PMC, invar PMC, labelconst INT)
+=item B<gt_str>(invar PMC, invar PMC, inconst LABEL)
 
-=item B<gt_num>(invar PMC, invar PMC, labelconst INT)
+=item B<gt_num>(invar PMC, invar PMC, inconst LABEL)
 
 Branch if $1 is greater than $2.
 
 =cut
 
-op gt(invar PMC, invar PMC, labelconst INT) :base_core {
+op gt(invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_CMP) > 0) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op gt(invar PMC, in INT, labelconst INT) :base_core {
+op gt(invar PMC, in INT, inconst LABEL) :base_core {
   PMC *temp = pmc_new(interp, enum_class_Integer);
   PMC_int_val(temp) = $2;
   if (mmd_dispatch_i_pp(interp, $1, temp, MMD_CMP) > 0) {
@@ -478,14 +478,14 @@
   goto NEXT();
 }
 
-op gt (invar PMC, in NUM, labelconst INT) :base_core {
+op gt (invar PMC, in NUM, inconst LABEL) :base_core {
   if ($1->vtable->get_number(interp, $1) > $2) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op gt (invar PMC, in STR, labelconst INT) :base_core {
+op gt (invar PMC, in STR, inconst LABEL) :base_core {
   if (string_compare(interp,
       $1->vtable->get_string(interp, $1), $2) > 0) {
     goto OFFSET($3);
@@ -493,14 +493,14 @@
   goto NEXT();
 }
 
-op gt_str (invar PMC, invar PMC, labelconst INT) :base_core {
+op gt_str (invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_STRCMP) > 0) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op gt_num (invar PMC, invar PMC, labelconst INT) :base_core {
+op gt_num (invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_NUMCMP) > 0) {
     goto OFFSET($3);
   }
@@ -509,30 +509,30 @@
 
 ########################################
 
-=item B<ge>(invar PMC, invar PMC, labelconst INT)
+=item B<ge>(invar PMC, invar PMC, inconst LABEL)
 
-=item B<ge>(invar PMC, in INT, labelconst INT)
+=item B<ge>(invar PMC, in INT, inconst LABEL)
 
-=item B<ge>(invar PMC, in NUM, labelconst INT)
+=item B<ge>(invar PMC, in NUM, inconst LABEL)
 
-=item B<ge>(invar PMC, in STR, labelconst INT)
+=item B<ge>(invar PMC, in STR, inconst LABEL)
 
-=item B<ge_str>(invar PMC, invar PMC, labelconst INT)
+=item B<ge_str>(invar PMC, invar PMC, inconst LABEL)
 
-=item B<ge_num>(invar PMC, invar PMC, labelconst INT)
+=item B<ge_num>(invar PMC, invar PMC, inconst LABEL)
 
 Branch if $1 is greater than or equal to $2.
 
 =cut
 
-op ge(invar PMC, invar PMC, labelconst INT) :base_core {
+op ge(invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_CMP) >= 0) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op ge(invar PMC, in INT, labelconst INT) :base_core {
+op ge(invar PMC, in INT, inconst LABEL) :base_core {
   PMC *temp = pmc_new(interp, enum_class_Integer);
   PMC_int_val(temp) = $2;
   if (mmd_dispatch_i_pp(interp, $1, temp, MMD_CMP) >= 0) {
@@ -541,14 +541,14 @@
   goto NEXT();
 }
 
-op ge (invar PMC, in NUM, labelconst INT) :base_core {
+op ge (invar PMC, in NUM, inconst LABEL) :base_core {
   if ($1->vtable->get_number(interp, $1) >= $2) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op ge (invar PMC, in STR, labelconst INT) :base_core {
+op ge (invar PMC, in STR, inconst LABEL) :base_core {
   if (string_compare(interp,
       $1->vtable->get_string(interp, $1), $2) >= 0) {
     goto OFFSET($3);
@@ -556,14 +556,14 @@
   goto NEXT();
 }
 
-op ge_str (invar PMC, invar PMC, labelconst INT) :base_core {
+op ge_str (invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_STRCMP) >= 0) {
     goto OFFSET($3);
   }
   goto NEXT();
 }
 
-op ge_num (invar PMC, invar PMC, labelconst INT) :base_core {
+op ge_num (invar PMC, invar PMC, inconst LABEL) :base_core {
   if (mmd_dispatch_i_pp(interp, $1, $2, MMD_NUMCMP) >= 0) {
     goto OFFSET($3);
   }
@@ -572,24 +572,24 @@
 
 ########################################
 
-=item B<if_null>(invar PMC, labelconst INT)
+=item B<if_null>(invar PMC, inconst LABEL)
 
 Branch to $2 if $1 is a NULL PMC.
 
-=item B<if_null>(invar STR, labelconst INT)
+=item B<if_null>(invar STR, inconst LABEL)
 
 Branch to $2 if $1 is a NULL STRING.
 
 =cut
 
-op if_null(invar PMC, labelconst INT) {
+op if_null(invar PMC, inconst LABEL) {
   if (PMC_IS_NULL($1)) {
     goto OFFSET($2);
   }
   goto NEXT();
 }
 
-op if_null(invar STR, labelconst INT) {
+op if_null(invar STR, inconst LABEL) {
   if (!$1) {
     goto OFFSET($2);
   }
@@ -598,24 +598,24 @@
 
 ########################################
 
-=item B<unless_null>(invar PMC, labelconst INT)
+=item B<unless_null>(invar PMC, inconst LABEL)
 
 Branch to $2 if $1 is I<not> a NULL PMC.
 
-=item B<unless_null>(invar STR, labelconst INT)
+=item B<unless_null>(invar STR, inconst LABEL)
 
 Branch to $2 if $1 is I<not> a NULL STRING.
 
 =cut
 
-op unless_null(invar PMC, labelconst INT) {
+op unless_null(invar PMC, inconst LABEL) {
   if (!PMC_IS_NULL($1)) {
     goto OFFSET($2);
   }
   goto NEXT();
 }
 
-op unless_null(invar STR, labelconst INT) {
+op unless_null(invar STR, inconst LABEL) {
   if ($1) {
     goto OFFSET($2);
   }
diff -ur --exclude=.svn --exclude=Makefile src/ops/core.ops parrot/src/ops/core.ops
--- src/ops/core.ops	2007-02-16 15:42:29.000000000 +0000
+++ src/ops/core.ops	2007-02-25 20:46:07.000000000 +0000
@@ -166,13 +166,13 @@
 
 ########################################
 
-=item B<branch>(label INT)
+=item B<branch>(in LABEL)
 
 Branch forward or backward by the amount in $1.
 
 =cut
 
-inline op branch (label INT) :base_loop {
+inline op branch (in LABEL) :base_loop {
     goto OFFSET($1);
 }
 
@@ -200,14 +200,14 @@
 
 ########################################
 
-=item B<bsr>(label INT)
+=item B<bsr>(in LABEL)
 
 Branch to the location specified by $1. Push the current location onto the call
 stack for later returning.
 
 =cut
 
-inline op bsr (label INT) :base_core,check_event {
+inline op bsr (in LABEL) :base_core,check_event {
     stack_push(interp, &interp->dynamic_env,
              expr NEXT(),  STACK_ENTRY_DESTINATION, STACK_CLEANUP_NULL);
     goto OFFSET($1);
@@ -226,14 +226,14 @@
 
 ########################################
 
-=item B<jsr>(label INT)
+=item B<jsr>(in LABEL)
 
 Jump to the location specified by register $1. Push the current
 location onto the call stack for later returning.
 
 =cut
 
-inline op jsr(label INT) :base_core,check_event {
+inline op jsr(in LABEL) :base_core,check_event {
     opcode_t * loc;
     stack_push(interp, &interp->dynamic_env,
              expr NEXT(),  STACK_ENTRY_DESTINATION, STACK_CLEANUP_NULL);
@@ -244,13 +244,13 @@
 
 ########################################
 
-=item B<jump>(label INT)
+=item B<jump>(in LABEL)
 
 Jump to the address held in register $1.
 
 =cut
 
-inline op jump(label INT) :base_loop {
+inline op jump(in LABEL) :base_loop {
     opcode_t * const loc = INTVAL2PTR(opcode_t *, $1);
     goto ADDRESS(loc);
 }
@@ -286,40 +286,40 @@
 
 ########################################
 
-=item B<if>(invar INT, labelconst INT)
+=item B<if>(invar INT, inconst LABEL)
 
-=item B<if>(invar NUM, labelconst INT)
+=item B<if>(invar NUM, inconst LABEL)
 
-=item B<if>(invar PMC, labelconst INT)
+=item B<if>(invar PMC, inconst LABEL)
 
-=item B<if>(invar STR, labelconst INT)
+=item B<if>(invar STR, inconst LABEL)
 
 Check register $1. If true, branch by $2.
 
 =cut
 
-inline op if(invar INT, labelconst INT) {
+inline op if(invar INT, inconst LABEL) {
     if ($1 != 0) {
         goto OFFSET($2);
     }
     goto NEXT();
 }
 
-inline op if(invar NUM, labelconst INT) {
+inline op if(invar NUM, inconst LABEL) {
     if ($1 != 0.0) {
         goto OFFSET($2);
     }
     goto NEXT();
 }
 
-op if (invar STR, labelconst INT) {
+op if (invar STR, inconst LABEL) {
     if (string_bool(interp, $1)) {
         goto OFFSET($2);
     }
     goto NEXT();
 }
 
-op if(invar PMC, labelconst INT) {
+op if(invar PMC, inconst LABEL) {
     if ($1->vtable->get_bool(interp, $1)) {
         goto OFFSET($2);
     }
@@ -328,40 +328,40 @@
 
 ########################################
 
-=item B<unless>(invar INT, labelconst INT)
+=item B<unless>(invar INT, inconst LABEL)
 
-=item B<unless>(invar NUM, labelconst INT)
+=item B<unless>(invar NUM, inconst LABEL)
 
-=item B<unless>(invar PMC, labelconst INT)
+=item B<unless>(invar PMC, inconst LABEL)
 
-=item B<unless>(invar STR, labelconst INT)
+=item B<unless>(invar STR, inconst LABEL)
 
 Check register $1. If false, branch by $2.
 
 =cut
 
-inline op unless(invar INT, labelconst INT) {
+inline op unless(invar INT, inconst LABEL) {
     if ($1 == 0) {
         goto OFFSET($2);
     }
     goto NEXT();
 }
 
-inline op unless(invar NUM, labelconst INT) {
+inline op unless(invar NUM, inconst LABEL) {
     if ($1 == 0.0) {
         goto OFFSET($2);
     }
     goto NEXT();
 }
 
-op unless (invar STR, labelconst INT) {
+op unless (invar STR, inconst LABEL) {
     if (!string_bool(interp, $1)) {
         goto OFFSET($2);
     }
     goto NEXT();
 }
 
-op unless(invar PMC, labelconst INT) {
+op unless(invar PMC, inconst LABEL) {
     if (!$1->vtable->get_bool(interp, $1)) {
         goto OFFSET($2);
     }
@@ -627,15 +627,15 @@
 
 =over 4
 
-=item B<set_addr>(out INT, labelconst INT)
+=item B<set_addr>(out INT, inconst LABEL)
 
 Sets register $1 to the current address plus the offset $2.
 
-=item B<set_addr>(invar PMC, labelconst INT)
+=item B<set_addr>(invar PMC, inconst LABEL)
 
 Sets PMC in register $1 to the current address plus the offset $2.
 
-=item B<set_addr>(invar PMC, labelvar INT)
+=item B<set_addr>(invar PMC, invar LABEL)
 
 Sets PMC in register $1 to the absolute address $2 obtained from B<get_addr>.
 
@@ -645,17 +645,17 @@
 
 =cut
 
-inline op set_addr(out INT, labelconst INT) {
+inline op set_addr(out INT, inconst LABEL) {
     $1 = PTR2OPCODE_T(CUR_OPCODE + $2);
     goto NEXT();
 }
 
-inline op set_addr(invar PMC, labelconst INT) {
+inline op set_addr(invar PMC, inconst LABEL) {
     $1->vtable->set_pointer(interp, $1, (CUR_OPCODE + $2));
     goto NEXT();
 }
 
-inline op set_addr(invar PMC, labelvar INT) {
+inline op set_addr(invar PMC, invar LABEL) {
     $1->vtable->set_pointer(interp, $1, (void* )$2);
     goto NEXT();
 }
@@ -675,7 +675,7 @@
 
 =over 4
 
-=item B<push_eh>(labelconst INT)
+=item B<push_eh>(inconst LABEL)
 
 Create an exception handler for the given catch label and push it onto
 the control stack.
@@ -720,7 +720,7 @@
 
 =cut
 
-inline op push_eh(labelconst INT) {
+inline op push_eh(inconst LABEL) {
     PMC * const eh = pmc_new(interp, enum_class_Exception_Handler);
     VTABLE_set_pointer(interp, eh, CUR_OPCODE + $1);
     push_exception(interp, eh);
@@ -993,7 +993,7 @@
 
 ########################################
 
-=item B<runinterp>(invar PMC, label INT)
+=item B<runinterp>(invar PMC, in LABEL)
 
 Run the code starting at offset $2 within interpreter $1.
 
@@ -1003,7 +1003,7 @@
 
 =cut
 
-op runinterp(invar PMC, label INT) {
+op runinterp(invar PMC, in LABEL) {
     Interp * const new_interp = (Interp *)PMC_data($1);
     Interp_flags_SET(new_interp, PARROT_EXTERN_CODE_FLAG);
     new_interp->code = interp->code;
diff -ur --exclude=.svn --exclude=Makefile src/ops/stm.ops parrot/src/ops/stm.ops
--- src/ops/stm.ops	2007-02-24 13:38:06.000000000 +0000
+++ src/ops/stm.ops	2007-02-25 20:46:07.000000000 +0000
@@ -31,7 +31,7 @@
     goto NEXT();
 }
 
-=item B<stm_validate>(label INT)
+=item B<stm_validate>(in LABEL)
 
 If the current transaction is invalid jump to $1; otherwise,
 excecution continues normally.
@@ -40,13 +40,13 @@
 
 =cut
 
-inline op stm_validate(labelconst INT) {
+inline op stm_validate(inconst LABEL) {
     if (!Parrot_STM_validate(interp))
         goto OFFSET($1);
     goto NEXT();
 }
 
-=item B<stm_commit>(labelconst INT)
+=item B<stm_commit>(inconst LABEL)
 
 Commits the most recently opened transaction. Jumps to $1 if the
 commit fails. (If the outer transaction is invalid, this should succeed
@@ -56,13 +56,13 @@
 
 =cut
 
-inline op stm_commit(labelconst INT) {
+inline op stm_commit(inconst LABEL) {
     if (!Parrot_STM_commit(interp))
         goto OFFSET($1); /* retry */
     goto NEXT();
 }
 
-=item B<stm_wait>(label INT)
+=item B<stm_wait>(in LABEL)
 
 Does what stm_wait does, but if the outer transaction is invalid after
 waiting or after the inner transaction is aborted, jumps to $1.
@@ -72,7 +72,7 @@
 
 =cut
 
-inline op stm_wait(labelconst INT) {
+inline op stm_wait(inconst LABEL) {
     Parrot_STM_wait(interp);
     if (!Parrot_STM_validate(interp))
         goto OFFSET($1);

Reply via email to