diff options
author | Andy Polyakov <appro@openssl.org> | 2006-10-17 06:43:11 +0000 |
---|---|---|
committer | Andy Polyakov <appro@openssl.org> | 2006-10-17 06:43:11 +0000 |
commit | d68ff71004282eedd8faa4411187fee08f54f75f (patch) | |
tree | 461bf5330d67f2b4cb7f02ee3fb168df268af898 /crypto/perlasm/x86_64-xlate.pl | |
parent | 591e85e92813225cc4ed8840a636ea966f3053e8 (diff) |
Support for .asciz directive in perlasm modules.
Diffstat (limited to 'crypto/perlasm/x86_64-xlate.pl')
-rwxr-xr-x | crypto/perlasm/x86_64-xlate.pl | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/crypto/perlasm/x86_64-xlate.pl b/crypto/perlasm/x86_64-xlate.pl index b158f72971..4370a97b6a 100755 --- a/crypto/perlasm/x86_64-xlate.pl +++ b/crypto/perlasm/x86_64-xlate.pl @@ -323,6 +323,8 @@ my $current_function; $line =~ s/\@function.*/\@function/; if ($line =~ /\.picmeup\s+(%r[\w]+)/i) { $self->{value} = sprintf "\t.long\t0x%x,0x90000000",$opcode{$1}; + } elsif ($line =~ /\.asciz\s+"(.*)"$/) { + $self->{value} = ".byte\t".join(",",unpack("C*",$1),0); } else { $self->{value} = $line; } @@ -378,6 +380,12 @@ my $current_function; /\.picmeup/ && do { $self->{value} = sprintf"\tDD\t 0%Xh,090000000h",$opcode{$line}; last; }; + /\.asciz/ && do { if ($line =~ /^"(.*)"$/) { + $self->{value} = "DB\t" + .join(",",unpack("C*",$1),0); + } + last; + }; } $line = ""; } |