deps: fix asm build error of openssl in x86_win32
authorShigeki Ohtsu <ohtsu@iij.ad.jp>
Fri, 13 Feb 2015 09:33:59 +0000 (18:33 +0900)
committerShigeki Ohtsu <ohtsu@iij.ad.jp>
Tue, 14 Apr 2015 15:38:02 +0000 (00:38 +0900)
See
https://mta.openssl.org/pipermail/openssl-dev/2015-February/000651.html

iojs needs to stop using masm and move to nasm or yasm on Win32.

Fixes: https://github.com/iojs/io.js/issues/589
PR-URL: https://github.com/iojs/io.js/pull/1389
Reviewed-By: Fedor Indutny <fedor@indutny.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
deps/openssl/openssl/crypto/perlasm/x86masm.pl

index 786b3c4..b7f49d1 100644 (file)
@@ -18,10 +18,10 @@ sub ::generic
 
     if ($opcode =~ /lea/ && @arg[1] =~ s/.*PTR\s+(\(.*\))$/OFFSET $1/) # no []
     {  $opcode="mov";  }
-    elsif ($opcode !~ /movq/)
+    elsif ($opcode !~ /mov[dq]$/)
     {  # fix xmm references
-       $arg[0] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[1]=~/\bxmm[0-7]\b/i);
-       $arg[1] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[0]=~/\bxmm[0-7]\b/i);
+       $arg[0] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[-1]=~/\bxmm[0-7]\b/i);
+       $arg[-1] =~ s/\b[A-Z]+WORD\s+PTR/XMMWORD PTR/i if ($arg[0]=~/\bxmm[0-7]\b/i);
     }
 
     &::emit($opcode,@arg);
@@ -160,13 +160,13 @@ sub ::public_label
 {   push(@out,"PUBLIC\t".&::LABEL($_[0],$nmdecor.$_[0])."\n");   }
 
 sub ::data_byte
-{   push(@out,("DB\t").join(',',@_)."\n");     }
+{   push(@out,("DB\t").join(',',splice(@_,0,16))."\n") while(@_);      }
 
 sub ::data_short
-{   push(@out,("DW\t").join(',',@_)."\n");     }
+{   push(@out,("DW\t").join(',',splice(@_,0,8))."\n") while(@_);       }
 
 sub ::data_word
-{   push(@out,("DD\t").join(',',@_)."\n");     }
+{   push(@out,("DD\t").join(',',splice(@_,0,4))."\n") while(@_);       }
 
 sub ::align
 {   push(@out,"ALIGN\t$_[0]\n");       }