perlasm/x86_64-xlate.pl: recognize even offset(%reg) in cfa_expression.
authorAndy Polyakov <appro@openssl.org>
Fri, 10 Feb 2017 09:59:45 +0000 (10:59 +0100)
committerAndy Polyakov <appro@openssl.org>
Mon, 13 Feb 2017 20:15:14 +0000 (21:15 +0100)
This is handy when "offset(%reg)" is a perl variable.

Reviewed-by: Rich Salz <rsalz@openssl.org>
crypto/perlasm/x86_64-xlate.pl

index 2013043a013029c69adc196a79f864e267de179c..1edea05743a7cf3e877588126fc783a803caeaa1 100755 (executable)
@@ -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));