diff options
author | Andy Polyakov <appro@openssl.org> | 2017-02-10 10:59:45 +0100 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2017-02-13 21:15:14 +0100 |
commit | 1cb35b47db8462f5653803501ed68d33b10c249f (patch) | |
tree | 95db91551bd190ac458f5e6d2b5bb8167556e433 /crypto/perlasm/x86_64-xlate.pl | |
parent | 86e112788e2ab9740c0cabf3ae4b1eb67b386bab (diff) |
perlasm/x86_64-xlate.pl: recognize even offset(%reg) in cfa_expression.
This is handy when "offset(%reg)" is a perl variable.
Reviewed-by: Rich Salz <rsalz@openssl.org>
Diffstat (limited to 'crypto/perlasm/x86_64-xlate.pl')
-rwxr-xr-x | crypto/perlasm/x86_64-xlate.pl | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl index 2013043a01..1edea05743 100755 --- a/crypto/perlasm/x86_64-xlate.pl +++ b/crypto/perlasm/x86_64-xlate.pl @@ -610,6 +610,8 @@ my %globals; foreach my $token (split(/,\s*/,$line)) { if ($token =~ /^%r/) { push @ret,reg($token); + } elsif ($token =~ /((?:0x)?[0-9a-f]+)\((%r\w+)\)/) { + push @ret,reg("$2+$1"); } elsif ($token =~ /(\w+):(\-?(?:0x)?[0-9a-f]+)(U?)/i) { my $i = 1*eval($2); push @ret,$DW_OP_complex{$1}, ($3 ? uleb128($i) : sleb128($i)); |