Type mismatch detected by DEC C compiler. void* != void**
[openssl.git] / crypto / perlasm / x86nasm.pl
index 27080a0f83099d1f94881f9fbd47db7b8665a0db..b897ed0fda79d00b71ef1738feb64b72e6717baa 100644 (file)
@@ -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");
        }