Branch: refs/heads/master
  Home:   https://github.com/tianocore/edk2
  Commit: 60fe5e8a9c8deafcc302c715a91947d75d38e544
      
https://github.com/tianocore/edk2/commit/60fe5e8a9c8deafcc302c715a91947d75d38e544
  Author: Ard Biesheuvel <ard.biesheu...@linaro.org>
  Date:   2016-09-21 (Wed, 21 Sep 2016)

  Changed paths:
    M MdePkg/Library/BaseMemoryLibOptDxe/Arm/CompareMem.S

  Log Message:
  -----------
  MdePkg/BaseMemoryLibOptDxe ARM: fix arithmetic bugs in CompareMem()

Fix two bugs:
- Erroneous shift of 2 in a bytes to bits conversion.
- Use reverse subtract rather than negate for value that is subsequently
  used as operand #2 in a shift operation.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
Reviewed-by: Liming Gao <liming....@intel.com>


  Commit: 217b3ac093d2c1ae2ce066984a9c4302331c07c2
      
https://github.com/tianocore/edk2/commit/217b3ac093d2c1ae2ce066984a9c4302331c07c2
  Author: Ard Biesheuvel <ard.biesheu...@linaro.org>
  Date:   2016-09-21 (Wed, 21 Sep 2016)

  Changed paths:
    A MdePkg/Library/BaseMemoryLibOptDxe/AArch64/CompareGuid.S
    A MdePkg/Library/BaseMemoryLibOptDxe/Arm/CompareGuid.S
    A MdePkg/Library/BaseMemoryLibOptDxe/Arm/CompareGuid.asm
    A MdePkg/Library/BaseMemoryLibOptDxe/Arm/MemLibGuid.c
    M MdePkg/Library/BaseMemoryLibOptDxe/BaseMemoryLibOptDxe.inf

  Log Message:
  -----------
  MdePkg/BaseMemoryLibOptDxe ARM|AARCH64: implement accelerated GUID functions

As reported by Vishal, CompareGuid() is a hotspot, and switching from
BaseMemoryLibStm in ArmPkg/ to BaseMemoryLibOptDxe causes a noticeable
performance regression due to the fact that BaseMemoryLibOptDxe uses
unaligned accessors explicitly to implement CompareGuid() and the related
functions.

Since BaseMemoryLibOptDxe on ARM and AARCH64 can only be used in contexts
where unaligned accesses are allowed, reimplement these functions for ARM
and AARCH64 specifically, using wide accessors that can tolerate any
misalignment.

Reported-by: "Oliyil Kunnil, Vishal" <vish...@qti.qualcomm.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
Reviewed-by: Liming Gao <liming....@intel.com>


  Commit: 3c3cf1cd731f5aa8fdc00392cbf7c5e36055bf18
      
https://github.com/tianocore/edk2/commit/3c3cf1cd731f5aa8fdc00392cbf7c5e36055bf18
  Author: Ard Biesheuvel <ard.biesheu...@linaro.org>
  Date:   2016-09-21 (Wed, 21 Sep 2016)

  Changed paths:
    M ArmVirtPkg/ArmVirt.dsc.inc

  Log Message:
  -----------
  ArmVirtPkg: move all platforms to MdePkg/ BaseMemoryLib implementations

The BaseMemoryLibStm implementation under ArmPkg/ is being deprecated,
in favor of the generic versions under MdePkg, now that ARM and AARCH64
support has been added to both the generic C version (BaseMemoryLib) and
the accelerated version (BaseMemoryLibOptDxe). The latter uses unaligned
accesses and special cache maintenance instructions, and can therefore
not be used when the MMU is off.

So move to BaseMemoryLibOptDxe for the DXE phase and later, and to the
generic BaseMemoryLib before that.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
Reviewed-by: Laszlo Ersek <ler...@redhat.com>


Compare: https://github.com/tianocore/edk2/compare/93638568c1c6...3c3cf1cd731f
------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
edk2-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-commits

Reply via email to