Loading crypto/perlasm/ppc-xlate.pl +8 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,14 @@ my $machine = sub { } ".machine $arch"; }; my $asciz = sub { shift; my $line = join(",",@_); if ($line =~ /^"(.*)"$/) { ".byte " . join(",",unpack("C*",$1),0); } else { ""; } }; ################################################################ # simplified mnemonics not handled by at least one assembler Loading crypto/perlasm/x86_64-xlate.pl +8 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -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 = ""; } Loading crypto/perlasm/x86asm.pl +2 −0 Original line number Diff line number Diff line Loading @@ -94,6 +94,8 @@ sub ::function_end_A $stack+=16; # readjust esp as if we didn't pop anything } sub ::asciz { foreach (@_) { &data_byte(unpack("C*",$_[0]),0); } } sub ::asm_finish { &file_end(); print @out; Loading Loading
crypto/perlasm/ppc-xlate.pl +8 −0 Original line number Diff line number Diff line Loading @@ -64,6 +64,14 @@ my $machine = sub { } ".machine $arch"; }; my $asciz = sub { shift; my $line = join(",",@_); if ($line =~ /^"(.*)"$/) { ".byte " . join(",",unpack("C*",$1),0); } else { ""; } }; ################################################################ # simplified mnemonics not handled by at least one assembler Loading
crypto/perlasm/x86_64-xlate.pl +8 −0 Original line number Diff line number Diff line Loading @@ -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; } Loading Loading @@ -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 = ""; } Loading
crypto/perlasm/x86asm.pl +2 −0 Original line number Diff line number Diff line Loading @@ -94,6 +94,8 @@ sub ::function_end_A $stack+=16; # readjust esp as if we didn't pop anything } sub ::asciz { foreach (@_) { &data_byte(unpack("C*",$_[0]),0); } } sub ::asm_finish { &file_end(); print @out; Loading