@@ -18,10 +18,10 @@ sub ::generic
18
18
19
19
if ($opcode =~ / lea/ && @arg [1] =~ s / .*PTR\s +(\( .*\) )$/ OFFSET $1 / ) # no []
20
20
{ $opcode =" mov" ; }
21
- elsif ($opcode !~ / movq / )
21
+ elsif ($opcode !~ / mov[dq] $ / )
22
22
{ # fix xmm references
23
- $arg [0] =~ s /\b [A-Z]+WORD\s +PTR/ XMMWORD PTR/ i if ($arg [1]=~/ \b xmm[0-7]\b /i );
24
- $arg [1] =~ s /\b [A-Z]+WORD\s +PTR/ XMMWORD PTR/ i if ($arg [0]=~/ \b xmm[0-7]\b /i );
23
+ $arg [0] =~ s /\b [A-Z]+WORD\s +PTR/ XMMWORD PTR/ i if ($arg [- 1]=~/ \b xmm[0-7]\b /i );
24
+ $arg [- 1] =~ s /\b [A-Z]+WORD\s +PTR/ XMMWORD PTR/ i if ($arg [0]=~/ \b xmm[0-7]\b /i );
25
25
}
26
26
27
27
&::emit($opcode ,@arg );
@@ -160,13 +160,13 @@ sub ::public_label
160
160
{ push(@out ,"PUBLIC\t ".&::LABEL($_ [0],$nmdecor .$_ [0])."\n "); }
161
161
162
162
sub ::data_byte
163
- { push(@out ,("DB\t ").join(',',@_ ) ."\n "); }
163
+ { push(@out ,("DB\t ").join(',',splice( @_ ,0,16)) ."\n ") while( @_ ); }
164
164
165
165
sub ::data_short
166
- { push(@out ,("DW\t ").join(',',@_ ) ."\n "); }
166
+ { push(@out ,("DW\t ").join(',',splice( @_ ,0,8)) ."\n ") while( @_ ); }
167
167
168
168
sub ::data_word
169
- { push(@out ,("DD\t ").join(',',@_ ) ."\n "); }
169
+ { push(@out ,("DD\t ").join(',',splice( @_ ,0,4)) ."\n ") while( @_ ); }
170
170
171
171
sub ::align
172
172
{ push(@out ,"ALIGN\t $_ [0]\n "); }
0 commit comments