Sfoglia il codice sorgente

perlasm/x86masm.pl: make it work.

Though this doesn't mean that masm becomes supported, the script is
still provided on don't-ask-in-case-of-doubt-use-nasm basis.
See RT#3650 for background.

(Imported from upstream's 2f8d82d641)

The data_word changes were already fixed with our
3e700bb3e812730f60bec529a14c0d35ea9665aa, but best to avoid diverging there.

Change-Id: Iab5455534e8bd632fb2b247ff792d411b105f17a
Reviewed-on: https://boringssl-review.googlesource.com/3581
Reviewed-by: Adam Langley <agl@google.com>
kris/onging/CECPQ3_patch15
David Benjamin 9 anni fa
committed by Adam Langley
parent
commit
6204eba91e
1 ha cambiato i file con 6 aggiunte e 9 eliminazioni
  1. +6
    -9
      crypto/perlasm/x86masm.pl

+ 6
- 9
crypto/perlasm/x86masm.pl Vedi 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,16 +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
{ # MASM can't handle long lines, so emit one word at a time.
foreach(@_)
{ push(@out,"DD\t$_\n"); }
}
{ push(@out,("DD\t").join(',',splice(@_,0,4))."\n") while(@_); }

sub ::align
{ push(@out,"ALIGN\t$_[0]\n"); }


Caricamento…
Annulla
Salva