From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pf1-f179.google.com (mail-pf1-f179.google.com [209.85.210.179]) by mx.groups.io with SMTP id smtpd.web12.11419.1663791953564374910 for ; Wed, 21 Sep 2022 13:25:53 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@gmail.com header.s=20210112 header.b=EJ/BY/na; spf=pass (domain: gmail.com, ip: 209.85.210.179, mailfrom: zurcher@gmail.com) Received: by mail-pf1-f179.google.com with SMTP id b23so7095742pfp.9 for ; Wed, 21 Sep 2022 13:25:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date; bh=ZZD5Y1wbDuXQj843jR05VoK1X6JbSw5hcOMtmGEj4Os=; b=EJ/BY/na7VHVhYzG3IeMy1nxO0a1CR/qAUcZFjQDnZNtnDyYLJdspFPQqBYmiGZAQE shY0EOJMQqaGA/Blw6DyIWvvsyuh9fVAvRKNvFXJ46ODU8x6C2IRs903Ga1Wv8YqwrLx /1WuqMea0wOLh+4jps7hwpNknmsxs0WbV43XnItTemKZS4V/Cry9lS8oZ7fZFjEJcja0 TwuznyFmvWU8Gs9+FeQhHdDcDDP6dNzfH0H2BipStXXrCphPdVmLoq/p9DZmISleWDNk pMQHJR00SHitPTlG28ec+lqvBr6uLvCfVYI8/XK1sUUYehh9V4PCEmibMoDJr8ccOITx 4jLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date; bh=ZZD5Y1wbDuXQj843jR05VoK1X6JbSw5hcOMtmGEj4Os=; b=BeiCy3qpIgeePYYnTpzqfZyGpWOxy4E5Cn8BrAI4Gn4HrMfEMOdjDy2tr0DJUqL4iA TBqw6XCQE1Qa8ODRh0jVMqNLl/1CKBIQhSou1g7+IHNkDcadryD/by5ReOelyCc6X+I7 9marmV4BDIbvbwtiFqcu/o2JGXrAOgeq/oTijueFhuINX3NEAXNMtZh/+OgLwHBRukzj C1IAz+gCAkBEgeBwdtx5Z7UD9xktdId4VuKFhi6ejaWgEpx5IRcLdz+nhdtI4UAZBfLO WRdfI1zHgEeJs782x3D9QNRUtY4zwQqoPr63xxB8z9JtwROSbpf4STvjbAPXK42YPAhB WBjg== X-Gm-Message-State: ACrzQf1CAjrwfT+OPoAZO/LF/pG/5WAChG5FQgXFhTur5MwLmCd3tZZl SrgEpwB9JlIEqkRf/NvUIR/sMJ0+C2FclQ== X-Google-Smtp-Source: AMsMyM4zoXCeR2HnFalwMaJezojQHpQN5ew4dmhndr4OTJhBQb/QCqg+oWXuSaJ2/DzcDwpuHE6nSA== X-Received: by 2002:a05:6a00:99f:b0:543:198b:f995 with SMTP id u31-20020a056a00099f00b00543198bf995mr30682902pfg.45.1663791952715; Wed, 21 Sep 2022 13:25:52 -0700 (PDT) Return-Path: Received: from localhost.localdomain ([2001:4898:80e8:38:2594:f5a8:9b23:f197]) by smtp.gmail.com with ESMTPSA id im22-20020a170902bb1600b001709b9d292esm2368406plb.268.2022.09.21.13.25.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 21 Sep 2022 13:25:52 -0700 (PDT) From: "Christopher Zurcher" X-Google-Original-From: Christopher Zurcher To: devel@edk2.groups.io Cc: Yi Li , Jiewen Yao , Jian J Wang , Xiaoyu Lu , Guomin Jiang Subject: [PATCH v1 0/3] CryptoPkg/OpensslLib: Add native instruction support for IA32 Date: Wed, 21 Sep 2022 13:25:38 -0700 Message-Id: <20220921202541.3691-1-christopher.zurcher@microsoft.com> X-Mailer: git-send-email 2.29.2.windows.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3654 PR: https://github.com/tianocore/edk2/pull/3352 This patch adds support for building the native instruction algorithms for the IA32 architecture in OpensslLib. The base variant has been tested with VS2019 and CLANGPDB toolchains, and a GCC variant is also provided. The implementation here follows the previous implementation of X64 native instructions as committed in 878a92a887. Cc: Yi Li Cc: Jiewen Yao Cc: Jian J Wang Cc: Xiaoyu Lu Cc: Guomin Jiang Christopher Zurcher (3): CryptoPkg/OpensslLib: Add native instruction support for IA32 CryptoPkg/OpensslLib: Commit the auto-generated assembly files for IA32 CryptoPkg/OpensslLib: Update generated files for native X64 CryptoPkg/CryptoPkg.ci.yaml | 4 + CryptoPkg/Library/OpensslLib/IA32/crypto/aes/aesni-x86.nasm | 3212 +++++++++++++++++++ CryptoPkg/Library/OpensslLib/IA32/crypto/aes/vpaes-x86.nasm | 651 ++++ CryptoPkg/Library/OpensslLib/IA32/crypto/modes/ghash-x86.nasm | 700 ++++ CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha1-586.nasm | 1394 ++++++++ CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha256-586.nasm | 3364 ++++++++++++++++++++ CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha512-586.nasm | 579 ++++ CryptoPkg/Library/OpensslLib/IA32/crypto/x86cpuid.nasm | 433 +++ CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/aes/aesni-x86.S | 3247 +++++++++++++++++++ CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/aes/vpaes-x86.S | 670 ++++ CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/modes/ghash-x86.S | 703 ++++ CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha1-586.S | 1389 ++++++++ CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha256-586.S | 3356 +++++++++++++++++++ CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha512-586.S | 574 ++++ CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/x86cpuid.S | 449 +++ CryptoPkg/Library/OpensslLib/OpensslLibIa32.inf | 699 ++++ CryptoPkg/Library/OpensslLib/OpensslLibIa32Gcc.inf | 699 ++++ CryptoPkg/Library/OpensslLib/OpensslLibX64.inf | 53 + CryptoPkg/Library/OpensslLib/OpensslLibX64Gcc.inf | 53 + CryptoPkg/Library/OpensslLib/UefiAsm.conf | 18 + CryptoPkg/Library/OpensslLib/process_files.pl | 12 + 21 files changed, 22259 insertions(+) create mode 100644 CryptoPkg/Library/OpensslLib/IA32/crypto/aes/aesni-x86.nasm create mode 100644 CryptoPkg/Library/OpensslLib/IA32/crypto/aes/vpaes-x86.nasm create mode 100644 CryptoPkg/Library/OpensslLib/IA32/crypto/modes/ghash-x86.nasm create mode 100644 CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha1-586.nasm create mode 100644 CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha256-586.nasm create mode 100644 CryptoPkg/Library/OpensslLib/IA32/crypto/sha/sha512-586.nasm create mode 100644 CryptoPkg/Library/OpensslLib/IA32/crypto/x86cpuid.nasm create mode 100644 CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/aes/aesni-x86.S create mode 100644 CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/aes/vpaes-x86.S create mode 100644 CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/modes/ghash-x86.S create mode 100644 CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha1-586.S create mode 100644 CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha256-586.S create mode 100644 CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/sha/sha512-586.S create mode 100644 CryptoPkg/Library/OpensslLib/IA32Gcc/crypto/x86cpuid.S create mode 100644 CryptoPkg/Library/OpensslLib/OpensslLibIa32.inf create mode 100644 CryptoPkg/Library/OpensslLib/OpensslLibIa32Gcc.inf -- 2.29.2.windows.2