perlasm/x86_64-xlate.pl: work around problem with hex constants in masm.
authorAndy Polyakov <appro@openssl.org>
Thu, 4 May 2017 13:54:29 +0000 (15:54 +0200)
committerAndy Polyakov <appro@openssl.org>
Fri, 5 May 2017 14:53:33 +0000 (16:53 +0200)
Perl, multiple versions, for some reason occasionally takes issue with
letter b[?] in ox([0-9a-f]+) regex. As result some constants, such as
0xb1 came out wrong when generating code for MASM. Fixes GH#3241.

Reviewed-by: Rich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3385)

crypto/perlasm/x86_64-xlate.pl

index b612c215a0548ceb2ee5d583f16da1b7d85f61ce..645be9184d96853b5012aea5fc008327bc489abe 100755 (executable)
@@ -212,8 +212,9 @@ my %globals;
            }
            sprintf "\$%s",$self->{value};
        } else {
            }
            sprintf "\$%s",$self->{value};
        } else {
-           $self->{value} =~ s/0x([0-9a-f]+)/0$1h/ig if ($masm);
-           sprintf "%s",$self->{value};
+           my $value = $self->{value};
+           $value =~ s/0x([0-9a-f]+)/0$1h/ig if ($masm);
+           sprintf "%s",$value;
        }
     }
 }
        }
     }
 }