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>
This commit is contained in:
Andy Polyakov 2017-02-10 10:59:45 +01:00
parent 86e112788e
commit 1cb35b47db

View File

@ -610,6 +610,8 @@ my %globals;
foreach my $token (split(/,\s*/,$line)) { foreach my $token (split(/,\s*/,$line)) {
if ($token =~ /^%r/) { if ($token =~ /^%r/) {
push @ret,reg($token); 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) { } elsif ($token =~ /(\w+):(\-?(?:0x)?[0-9a-f]+)(U?)/i) {
my $i = 1*eval($2); my $i = 1*eval($2);
push @ret,$DW_OP_complex{$1}, ($3 ? uleb128($i) : sleb128($i)); push @ret,$DW_OP_complex{$1}, ($3 ? uleb128($i) : sleb128($i));