PerlASM for x64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I'm trying to understand how the generation of ASM-files
are done on x64. (I have no problems on x86).

With the generated Nmake makefile from a
  perl Configure VC-WIN64A-ONECORE

when doing a:
  nmake crypto\aes\libcrypto-lib-aesni-x86_64.obj

seems to do this:
  set ASM=nasm
  "f:/util/StrawberryPerl/perl/bin/perl.exe" "crypto\aes\asm\aesni-x86_64.pl" auto crypto\aes\aesni-x86_64.asm
  nasm -Ox -f win64 -DNEAR -g -o crypto\aes\libcrypto-lib-aesni-x86_64.obj "crypto\aes\aesni-x86_64.asm"

Except for some warnings, nasm generates a valid libcrypto-lib-aesni-x86_64.obj.

BUT, doing the same on the cmd-line:
  set ASM=nasm
  f:\util\StrawberryPerl\perl\bin\perl crypto\aes\asm\aesni-x86_64.pl auto tmp-file.s

Generates a totally invalid 'tmp-file.s' file:

--- tmp-file.s                  2018-12-21 13:12:19
+++ crypto/aes/aesni-x86_64.asm 2018-12-21 13:11:47
@@ -1,4432 +1,5051 @@
-.text
+default        rel
+%define XMMWORD
+%define YMMWORD
+%define ZMMWORD
+section        .text code align=64

-.globl aesni_encrypt
-.type  aesni_encrypt,@function
-.align 16
+EXTERN OPENSSL_ia32cap_P
+global aesni_encrypt
+

What is going on here? Some other exported env-var playing
tricks?

I experimented some more. I figured the "auto" does not work.
But this works:
  perl crypto\aes\asm\aesni-x86_64.pl nasm > tmp-file.s
  diff tmp-file.s crypto\aes\aesni-x86_64.asm

No diffs.

Why does the the generation of .asm-files be so damn hard to
figure out? Some cmd-line help to show what "auto" does would
be nice.


--
--gv
--
openssl-users mailing list
To unsubscribe: https://mta.openssl.org/mailman/listinfo/openssl-users



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux