From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wm0-x232.google.com (mail-wm0-x232.google.com [IPv6:2a00:1450:400c:c09::232]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id 23FFD1A1E02 for ; Tue, 6 Sep 2016 07:23:44 -0700 (PDT) Received: by mail-wm0-x232.google.com with SMTP id 1so193068089wmz.1 for ; Tue, 06 Sep 2016 07:23:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id; bh=UyO7IMuWYOvAp670CN1y2ahFIlQvERkrfUVaLOY16Pk=; b=XtwqeAXVh2gobWle2BWFPhnE8bzT8zM0efJFhxPAwaXtOh+eqYSUfzdrcVFk/LM1EM G20cgZ4s566o3fro11Oz/FNZIho8k11UPX3s2vuM1z4JNoPRAWOMropVSeL/dt4SZbQ3 zJWlCcFW/uLzNujLGtxfynV+jVaiQ6XyMGjwI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=UyO7IMuWYOvAp670CN1y2ahFIlQvERkrfUVaLOY16Pk=; b=Vex5/vZGhOdB9yvDNFOXmdOL247rhq4qnD/bnaVqEWJUyv+fL9rP791Ddr56jl00Jk OGStYUbWrTVBvDBGdLBOLvSbGgU/m+rWB1lNWNEMLpkr0RfBehZnaFksPo4Y1lykRnqN fBpQKXrd3EWoTXgem0NJTqCZkXP9YBCOUw0eG+JXTiJtoIta69ilV2xzVD6cxal6YrZW qOyGbZnxIkEBHLDMxl0wkBQ3L/LvaXGMkrZb0GVa32sznewzKw8cTmVFEW8VJQZ10ZSy aEm8vOAfLcwGI3YlU57ZnwbeRYZei+jI5oMksFpJMTng8/SN6tffvAJQODUSsmTOg3BR 1piw== X-Gm-Message-State: AE9vXwPZigTJITXQ3SFS0247DwIGLmoSt9hogzLSC3RWuaPRmGTdYiby9qv7g5P4c5y7ZX06 X-Received: by 10.28.221.8 with SMTP id u8mr1283452wmg.112.1473171822210; Tue, 06 Sep 2016 07:23:42 -0700 (PDT) Received: from localhost.localdomain ([197.130.133.164]) by smtp.gmail.com with ESMTPSA id f8sm19922140wjh.45.2016.09.06.07.23.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 06 Sep 2016 07:23:41 -0700 (PDT) From: Ard Biesheuvel To: edk2-devel@lists.01.org, leif.lindholm@linaro.org, liming.gao@intel.com Cc: michael.d.kinney@intel.com, Ard Biesheuvel Date: Tue, 6 Sep 2016 15:23:30 +0100 Message-Id: <1473171813-24595-1-git-send-email-ard.biesheuvel@linaro.org> X-Mailer: git-send-email 2.7.4 Subject: [PATCH v2 0/3] MdePkg: add ARM/AARCH64 support to BaseMemoryLib X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Sep 2016 14:23:44 -0000 This adds ARM and AARCH64 support to both BaseMemoryLib (generic C) and BaseMemoryLibOptDxe (accelerated). The former can be used anywhere, the latter only in places where the caches are guaranteed to be on, not only due to the unaligned accesses but also due to the fact that it uses DC ZVA instructions for clearing memory (AArch64 only). Ard Biesheuvel (3): MdePkg/BaseMemoryLib: widen aligned accesses to 32 or 64 bits MdePkg/BaseMemoryLibOptDxe: add accelerated ARM routines MdePkg/BaseMemoryLibOptDxe: add accelerated AARCH64 routines MdePkg/Library/BaseMemoryLib/BaseMemoryLib.inf | 2 +- MdePkg/Library/BaseMemoryLib/CopyMem.c | 112 +++++++- MdePkg/Library/BaseMemoryLib/SetMem.c | 40 ++- MdePkg/Library/BaseMemoryLibOptDxe/AArch64/CompareMem.S | 142 ++++++++++ MdePkg/Library/BaseMemoryLibOptDxe/AArch64/CopyMem.S | 284 ++++++++++++++++++++ MdePkg/Library/BaseMemoryLibOptDxe/AArch64/ScanMem.S | 161 +++++++++++ MdePkg/Library/BaseMemoryLibOptDxe/AArch64/SetMem.S | 244 +++++++++++++++++ MdePkg/Library/BaseMemoryLibOptDxe/Arm/CompareMem.S | 138 ++++++++++ MdePkg/Library/BaseMemoryLibOptDxe/Arm/CompareMem.asm | 140 ++++++++++ MdePkg/Library/BaseMemoryLibOptDxe/Arm/CopyMem.S | 172 ++++++++++++ MdePkg/Library/BaseMemoryLibOptDxe/Arm/CopyMem.asm | 147 ++++++++++ MdePkg/Library/BaseMemoryLibOptDxe/Arm/ScanMem.S | 146 ++++++++++ MdePkg/Library/BaseMemoryLibOptDxe/Arm/ScanMem.asm | 147 ++++++++++ MdePkg/Library/BaseMemoryLibOptDxe/Arm/ScanMemGeneric.c | 142 ++++++++++ MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.S | 69 +++++ MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.asm | 74 +++++ MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf | 37 ++- 17 files changed, 2169 insertions(+), 28 deletions(-) create mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/AArch64/CompareMem.S create mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/AArch64/CopyMem.S create mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/AArch64/ScanMem.S create mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/AArch64/SetMem.S create mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Arm/CompareMem.S create mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Arm/CompareMem.asm create mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Arm/CopyMem.S create mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Arm/CopyMem.asm create mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Arm/ScanMem.S create mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Arm/ScanMem.asm create mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Arm/ScanMemGeneric.c create mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.S create mode 100644 MdePkg/Library/BaseMemoryLibOptDxe/Arm/SetMem.asm -- 2.7.4