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]};