Platform update from 8-stable.
[openssl.git] / crypto / perlasm / x86unix.pl
index 59c4fbc0837ce3c698f8b099d8604c7e2f6ead87..9bc5c0e893cf23eca692347f4ab31dff6e805d50 100644 (file)
@@ -209,6 +209,8 @@ sub main'cpuid      { &out0(".byte\t0x0f,0xa2"); }
 sub main'rdtsc { &out0(".byte\t0x0f,0x31"); }
 sub main'halt  { &out0("hlt"); }
 sub main'movz  { &out2("movzbl",@_); }
+sub main'neg   { &out1("negl",@_); }
+sub main'cld   { &out0("cld"); }
 
 # SSE2
 sub main'emms  { &out0("emms"); }
@@ -535,7 +537,8 @@ sub main'file_end
        if ($main'elf && grep {/%[x]*mm[0-7]/i} @out) {
                local($tmp);
 
-               push (@out,"\n.comm\t${under}OPENSSL_ia32cap_P,4,4\n");
+               push (@out,"\n.section\t.bss\n");
+               push (@out,".comm\t${under}OPENSSL_ia32cap_P,4,4\n");
 
                push (@out,".section\t.init\n");
                # One can argue that it's wasteful to craft every
@@ -570,6 +573,7 @@ sub main'file_end
                movl    %edx,0(%edi)
                popl    %ebx
                popl    %edi
+               jmp     1f
        .align  $align
        1:
 ___
@@ -715,7 +719,9 @@ sub main'initseg
                $tmp=<<___;
 .section       .init
        call    $under$f
-       .align  $align
+       jmp     .Linitalign
+.align $align
+.Linitalign:
 ___
                }
        elsif ($main'coff)