audk/MdePkg/Library/BaseLib
Ard Biesheuvel 55f5af1871 MdePkg: fix ARM version of InternalMathSwapBytes64 ()
The ARM asm implementation of InternalMathSwapBytes64 () does
interesting things if bit 7 of operand r1 (upper 32 bits of the
input value) is set. After the recursive swap, bit 7 ends up in
the sign bit position, after which it is right shifted with sign
extension, and or'ed with the upper half of the output value.

This means SwapBytes64 (0x00000080_00000000) returns an incorrect
value of 0xFFFFFFFF_80000000.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Ronald Cron <Ronald.Cron@arm.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@17077 6f19259b-4bc3-4df7-8a09-765794883524
2015-03-27 17:27:14 +00:00
..
AArch64 Add Memory fence for ARM Architecture (32 and 64 bit) 2013-09-02 09:02:16 +00:00
Arm MdePkg: fix ARM version of InternalMathSwapBytes64 () 2015-03-27 17:27:14 +00:00
Ebc
Ia32 MdePkg NASM Thunk16: Add missing ASM_PFX for InternalAsmThunk16 2014-09-04 15:17:57 +00:00
Ipf
X64 MdePkg NASM Thunk16: Add missing ASM_PFX for InternalAsmThunk16 2014-09-04 15:17:57 +00:00
ARShiftU64.c
BaseLib.inf MdeModulePkg, MdePkg, NetworkPkg, OvmfPkg, PerformancePkg, ShellPkg: Library Migration. 2015-01-13 01:04:07 +00:00
BaseLib.uni MdePkg: Convert non DOS format files to DOS format 2014-09-03 08:33:28 +00:00
BaseLibInternals.h Fix minor typos in BaseLib LinkedList comments 2013-03-13 06:44:10 +00:00
BitField.c Correctly character in comments of BaseLib BitField. 2013-07-22 06:41:52 +00:00
CheckSum.c
ChkStkGcc.c
Cpu.c
CpuDeadLoop.c
DivS64x64Remainder.c
DivU64x32.c
DivU64x32Remainder.c
DivU64x64Remainder.c
FilePaths.c MdeModulePkg, MdePkg, NetworkPkg, OvmfPkg, PerformancePkg, ShellPkg: Library Migration. 2015-01-13 01:04:07 +00:00
GetPowerOfTwo32.c
GetPowerOfTwo64.c
HighBitSet32.c
HighBitSet64.c
LRotU32.c
LRotU64.c
LShiftU64.c
LinkedList.c Match the comments with the implementation for Baselib::GetFirstNode. 2013-08-08 03:35:09 +00:00
LongJump.c
LowBitSet32.c
LowBitSet64.c
Math64.c
ModU64x32.c
MultS64x64.c
MultU64x32.c
MultU64x64.c
RRotU32.c
RRotU64.c
RShiftU64.c
SafeString.c Add safe string function to base lib. 2014-11-07 13:43:05 +00:00
SetJump.c
String.c MdePkg: Add deprecate flag for the functions which has a replace function in safe c library. 2014-12-15 10:05:42 +00:00
SwapBytes16.c
SwapBytes32.c
SwapBytes64.c
SwitchStack.c
Unaligned.c
X86DisablePaging32.c
X86DisablePaging64.c
X86EnablePaging32.c
X86EnablePaging64.c
X86FxRestore.c Fix memory out of band access in AsmFxSave() and AsmFxRestore(). 2012-10-30 08:35:08 +00:00
X86FxSave.c Fix memory out of band access in AsmFxSave() and AsmFxRestore(). 2012-10-30 08:35:08 +00:00
X86GetInterruptState.c
X86MemoryFence.c
X86Msr.c Add ASSERT() for BitField operations to make sure the input value is valid. 2012-12-25 02:25:50 +00:00
X86ReadGdtr.c
X86ReadIdtr.c
X86Thunk.c
X86WriteGdtr.c
X86WriteIdtr.c