Loading crypto/perlasm/x86_64-xlate.pl +22 −7 Original line number Diff line number Diff line Loading @@ -508,6 +508,11 @@ my %globals; } } elsif ($dir =~ /\.(text|data)/) { $current_segment=".$1"; } elsif ($dir =~ /\.hidden/) { if ($flavour eq "macosx") { $self->{value} = ".private_extern\t$prefix$line"; } elsif ($flavour eq "mingw64") { $self->{value} = ""; } } elsif ($dir =~ /\.comm/) { $self->{value} = "$dir\t$prefix$line"; } $line = ""; return $self; Loading Loading @@ -615,6 +620,19 @@ my %globals; .join(",",@str) if (@str); last; }; /\.comm/ && do { my @str=split(/,\s*/,$line); my $v=undef; if ($nasm) { $v.="common $prefix@str[0] @str[1]:near"; } else { $v="$current_segment\tENDS\n" if ($current_segment); $current_segment = ".data"; $v.="$current_segment\tSEGMENT\n"; $v.="COMM @str[0]:DWORD:".@str[1]/4; } $self->{value} = $v; last; }; } $line = ""; } Loading @@ -629,14 +647,11 @@ my %globals; sub rex { local *opcode=shift; my ($dst,$src)=@_; my ($dst,$src,$rex)=@_; if ($dst>=8 || $src>=8) { $rex=0x40; $rex|=0x04 if($dst>=8); $rex|=0x01 if($src>=8); push @opcode,$rex; } push @opcode,($rex|0x40) if ($rex); } # older gas and ml64 don't handle SSE>2 instructions Loading crypto/x86_64cpuid.pl +4 −0 Original line number Diff line number Diff line Loading @@ -14,9 +14,13 @@ open STDOUT,"| $^X ${dir}perlasm/x86_64-xlate.pl $flavour $output"; print<<___; .extern OPENSSL_cpuid_setup .hidden OPENSSL_cpuid_setup .section .init call OPENSSL_cpuid_setup .hidden OPENSSL_ia32cap_P .comm OPENSSL_ia32cap_P,8 .text .globl OPENSSL_atomic_add Loading Loading
crypto/perlasm/x86_64-xlate.pl +22 −7 Original line number Diff line number Diff line Loading @@ -508,6 +508,11 @@ my %globals; } } elsif ($dir =~ /\.(text|data)/) { $current_segment=".$1"; } elsif ($dir =~ /\.hidden/) { if ($flavour eq "macosx") { $self->{value} = ".private_extern\t$prefix$line"; } elsif ($flavour eq "mingw64") { $self->{value} = ""; } } elsif ($dir =~ /\.comm/) { $self->{value} = "$dir\t$prefix$line"; } $line = ""; return $self; Loading Loading @@ -615,6 +620,19 @@ my %globals; .join(",",@str) if (@str); last; }; /\.comm/ && do { my @str=split(/,\s*/,$line); my $v=undef; if ($nasm) { $v.="common $prefix@str[0] @str[1]:near"; } else { $v="$current_segment\tENDS\n" if ($current_segment); $current_segment = ".data"; $v.="$current_segment\tSEGMENT\n"; $v.="COMM @str[0]:DWORD:".@str[1]/4; } $self->{value} = $v; last; }; } $line = ""; } Loading @@ -629,14 +647,11 @@ my %globals; sub rex { local *opcode=shift; my ($dst,$src)=@_; my ($dst,$src,$rex)=@_; if ($dst>=8 || $src>=8) { $rex=0x40; $rex|=0x04 if($dst>=8); $rex|=0x01 if($src>=8); push @opcode,$rex; } push @opcode,($rex|0x40) if ($rex); } # older gas and ml64 don't handle SSE>2 instructions Loading
crypto/x86_64cpuid.pl +4 −0 Original line number Diff line number Diff line Loading @@ -14,9 +14,13 @@ open STDOUT,"| $^X ${dir}perlasm/x86_64-xlate.pl $flavour $output"; print<<___; .extern OPENSSL_cpuid_setup .hidden OPENSSL_cpuid_setup .section .init call OPENSSL_cpuid_setup .hidden OPENSSL_ia32cap_P .comm OPENSSL_ia32cap_P,8 .text .globl OPENSSL_atomic_add Loading