@@ -18,10 +18,10 @@ sub ::generic
1818
1919 if ($opcode =~ / lea/ && @arg [1] =~ s / .*PTR\s +(\( .*\) )$/ OFFSET $1 / ) # no []
2020 { $opcode =" mov" ; }
21- elsif ($opcode !~ / movq / )
21+ elsif ($opcode !~ / mov[dq] $ / )
2222 { # 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 );
2525 }
2626
2727 &::emit($opcode ,@arg );
@@ -160,13 +160,13 @@ sub ::public_label
160160{ push(@out ,"PUBLIC\t ".&::LABEL($_ [0],$nmdecor .$_ [0])."\n "); }
161161
162162sub ::data_byte
163- { push(@out ,("DB\t ").join(',',@_ ) ."\n "); }
163+ { push(@out ,("DB\t ").join(',',splice( @_ ,0,16)) ."\n ") while( @_ ); }
164164
165165sub ::data_short
166- { push(@out ,("DW\t ").join(',',@_ ) ."\n "); }
166+ { push(@out ,("DW\t ").join(',',splice( @_ ,0,8)) ."\n ") while( @_ ); }
167167
168168sub ::data_word
169- { push(@out ,("DD\t ").join(',',@_ ) ."\n "); }
169+ { push(@out ,("DD\t ").join(',',splice( @_ ,0,4)) ."\n ") while( @_ ); }
170170
171171sub ::align
172172{ push(@out ,"ALIGN\t $_ [0]\n "); }
0 commit comments