diff options
Diffstat (limited to 'external/openssl/openssl-3650-masm.patch.1')
-rw-r--r-- | external/openssl/openssl-3650-masm.patch.1 | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/external/openssl/openssl-3650-masm.patch.1 b/external/openssl/openssl-3650-masm.patch.1 new file mode 100644 index 000000000..97f1eb644 --- /dev/null +++ b/external/openssl/openssl-3650-masm.patch.1 @@ -0,0 +1,35 @@ +diff --git a/crypto/perlasm/x86masm.pl b/crypto/perlasm/x86masm.pl +index 1741342..917d0f8 100644 +--- a/crypto/perlasm/x86masm.pl ++++ b/crypto/perlasm/x86masm.pl +@@ -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"); } |