3 # ====================================================================
4 # Written by Nikos Mavrogiannopoulos
5 # Based on e_padlock-x86_64
6 # ====================================================================
11 if ($flavour =~ /\./) { $output = $flavour; undef $flavour; }
13 $win64=0; $win64=1 if ($flavour =~ /[nm]asm|mingw64/ || $output =~ /\.asm$/);
15 $0 =~ m/(.*[\/\\])[^\
/\\]+$/; $dir=$1;
16 ( $xlate="${dir}x86_64-xlate.pl" and -f
$xlate ) or
17 ( $xlate="${dir}../../crypto/perlasm/x86_64-xlate.pl" and -f
$xlate) or
18 die "can't locate x86_64-xlate.pl";
20 open STDOUT
,"| $^X $xlate $flavour $output";
24 ($arg1,$arg2,$arg3,$arg4)=$win64?
("%rcx","%rdx","%r8", "%r9") : # Win64 order
25 ("%rdi","%rsi","%rdx","%rcx"); # Unix order
30 .type gnutls_cpuid
,\
@function
61 .size gnutls_cpuid
,.-gnutls_cpuid
64 $code =~ s/\`([^\`]*)\`/eval($1)/gem;