Index: assemble.pl
===================================================================
RCS file: /home/perlcvs/parrot/assemble.pl,v
retrieving revision 1.60
diff -u -r1.60 assemble.pl
--- assemble.pl 3 Jun 2002 23:22:45 -0000       1.60
+++ assemble.pl 4 Jun 2002 13:56:25 -0000
@@ -662,6 +662,7 @@
     my $temp = $_->[0];
     $temp=~s/^(\w+)\s*//;
     $_->[0] = [$1];
+    my $extname;
 
     while($temp ne '') {
       $temp=~s/^\s*(,\s*)?//;
@@ -669,49 +670,49 @@
         # Skip flying comments.
       }
       elsif($temp=~s/^($reg_re)//) {
-        $_->[0][0] .= "_".lc(substr($1,0,1));
+        $extname .= "_".lc(substr($1,0,1));
         push @{$_->[0]}, [lc(substr($1,0,1)),$1];
       }
       elsif($temp=~s/^\[(S\d+)\]//) { # The only key register should be Sn
-        $_->[0][0] .= "_s";
+        $extname .= "_s";
         push @{$_->[0]}, ['s',$1];
       }
       elsif($temp=~s/^($flt_re)//) {
-        $_->[0][0] .= "_nc";
+        $extname .= "_nc";
         push @{$_->[0]}, $self->_numeric_constant($1);
       }
       elsif($temp=~s/^\[($str_re)\]//) {
-        $_->[0][0] .= "_sc";
+        $extname .= "_sc";
         push @{$_->[0]}, $self->_string_constant($1);
       }
       elsif($temp=~s/^\[($bin_re)\]//) { # P3[0b11101]
         my $val = $1;$val=~s/0b//;
-        $_->[0][0] .= "_ic";
+        $extname .= "_ic";
         push @{$_->[0]}, ['ic',(strtol($val,2))[0]];
       }
       elsif($temp=~s/^\[($hex_re)\]//) { # P7[0x1234]
-        $_->[0][0] .= "_ic";
+        $extname .= "_ic";
         push @{$_->[0]}, ['ic',(strtol($1,16))[0]];
       }
       elsif($temp=~s/^\[($dec_re)\]//) { # P14[3]
-        $_->[0][0] .= "_ic";
+        $extname .= "_ic";
         push @{$_->[0]}, ['ic',0+$1];
       }
       elsif($temp=~s/^($bin_re)//) {     # 0b1101
         my $val = $1;$val=~s/0b//;
-        $_->[0][0] .= "_ic";
+        $extname .= "_ic";
         push @{$_->[0]}, ['ic',(strtol($val,2))[0]];
       }
       elsif($temp=~s/^($hex_re)//) {     # 0x12aF
-        $_->[0][0] .= "_ic";
+        $extname .= "_ic";
         push @{$_->[0]}, ['ic',(strtol($1,16))[0]];
       }
       elsif($temp=~s/^($dec_re)//) {     # -32
-        $_->[0][0] .= "_ic";
+        $extname .= "_ic";
         push @{$_->[0]}, ['ic',0+$1];
       }
       elsif($temp=~s/^($str_re)//) {     # "Hello World"
-        $_->[0][0] .= "_sc";
+        $extname .= "_sc";
         push @{$_->[0]}, $self->_string_constant($1);
       }
       elsif($temp=~s/^($label_re)//) {
@@ -719,13 +720,16 @@
           print STDERR "Couldn't find global label '$1' at line $_->[1].\n";
           last;
         }
-        $_->[0][0] .= "_ic";
+        $extname .= "_ic";
         push @{$_->[0]}, ['label',$1];
       }
       else {
         print STDERR "Couldn't parse argument '$temp' at line $_->[1].\n";
         last;
       }
+    }
+    if(not defined $self->{fullops}{$_->[0][0]}) {
+        $_->[0][0] .= $extname;
     }
     $self->{line_to_pc}{$_->[1]}=$pc;
     $pc += scalar @{$_->[0]};


Reply via email to