sha1-x86_64.pl: add missing rex prefix in shaext.

PR: 3405

(Imported from upstream's 1f6d2076256761b44e7336b496ab0887f90cea69)
This commit is contained in:
Adam Langley 2014-06-20 12:00:00 -07:00
parent 8241005bfa
commit 956665b32b

View File

@ -2030,8 +2030,12 @@ sub sha1op38 {
"sha1msg1" => 0xc9,
"sha1msg2" => 0xca );
if (defined($opcodelet{$instr}) && @_[0] =~ /%xmm([0-7]),\s*%xmm([0-7])/) {
if (defined($opcodelet{$instr}) && @_[0] =~ /%xmm([0-9]+),\s*%xmm([0-9]+)/) {
my @opcode=(0x0f,0x38);
my $rex=0;
$rex|=0x04 if ($2>=8);
$rex|=0x01 if ($1>=8);
unshift @opcode,0x40|$rex if ($rex);
push @opcode,$opcodelet{$instr};
push @opcode,0xc0|($1&7)|(($2&7)<<3); # ModR/M
return ".byte\t".join(',',@opcode);