X-Git-Url: https://git.openssl.org/?a=blobdiff_plain;f=crypto%2Fperlasm%2Fx86nasm.pl;h=b897ed0fda79d00b71ef1738feb64b72e6717baa;hb=49f386578e374b8b1941f500459b0369d92d8615;hp=27080a0f83099d1f94881f9fbd47db7b8665a0db;hpb=c85c5c408af0996daa5f807c488f921e7e7ad524;p=openssl.git diff --git a/crypto/perlasm/x86nasm.pl b/crypto/perlasm/x86nasm.pl index 27080a0f83..b897ed0fda 100644 --- a/crypto/perlasm/x86nasm.pl +++ b/crypto/perlasm/x86nasm.pl @@ -106,7 +106,7 @@ sub get_mem $reg2=&conv($1); $addr="$under$2"; } - elsif ($addr =~ /^[_a-zA-Z]/) + elsif ($addr =~ /^[_a-z][_a-z0-9]*$/i) { $addr="$under$addr"; } @@ -192,6 +192,8 @@ sub main'leave { &out0("leave"); } sub main'cpuid { &out0("cpuid"); } sub main'rdtsc { &out0("rdtsc"); } sub main'halt { &out0("hlt"); } +sub main'movz { &out2("movzx",@_); } +sub main'neg { &out1("neg",@_); } # SSE2 sub main'emms { &out0("emms"); } @@ -359,6 +361,12 @@ sub main'comment } } +sub main'public_label + { + $label{$_[0]}="${under}${_[0]}" if (!defined($label{$_[0]})); + push(@out,"global\t$label{$_[0]}\n"); + } + sub main'label { if (!defined($label{$_[0]})) @@ -376,6 +384,10 @@ sub main'set_label $label{$_[0]}="\@${label}${_[0]}"; $label++; } + if ($_[1]!=0 && $_[1]>1) + { + main'align($_[1]); + } push(@out,"$label{$_[0]}:\n"); }