audk/MdePkg/Library/BaseLib/X64
Takuto Naito 037090cb7c MdePkg: Fix AsmReadMsr64() and AsmWriteMsr64() with GCC toolchain
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3325

1. AsmReadMsr64() in X64/GccInlinePriv.c
AsmReadMsr64 can return uninitialized value if FilterBeforeMsrRead
returns False. This causes build error with the CLANG toolchain.

2. AsmWriteMsr64() in X64/GccInlinePriv.c
In the case that FilterBeforeMsrWrite changes Value and returns True,
The original Value, not the changed Value, is written to the MSR.
This behavior is different from the one of AsmWriteMsr64() in
X64/WriteMsr64.c for the MSFT toolchain.

Signed-off-by: Takuto Naito <naitaku@gmail.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Reviewed-by: Liming Gao <gaoliming@byosoft.com.cn>
2021-04-14 01:50:19 +00:00
..
CpuBreakpoint.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
CpuBreakpoint.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
CpuId.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
CpuIdEx.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
CpuPause.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
DisableCache.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
DisableInterrupts.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
DisablePaging64.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
EnableCache.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
EnableDisableInterrupts.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
EnableInterrupts.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
FlushCacheLine.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
FxRestore.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
FxSave.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
GccInline.c MdePkg/BaseLib: Break out IA32/X64 GCC inline privileged functions 2020-07-15 05:25:21 +00:00
GccInlinePriv.c MdePkg: Fix AsmReadMsr64() and AsmWriteMsr64() with GCC toolchain 2021-04-14 01:50:19 +00:00
Invd.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
Lfence.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
LongJump.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
Monitor.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
Mwait.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
Non-existing.c MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
RdRand.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadCr0.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadCr2.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadCr3.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadCr4.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadCs.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadDr0.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadDr1.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadDr2.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadDr3.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadDr4.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadDr5.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadDr6.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadDr7.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadDs.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadEflags.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadEs.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadFs.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadGdtr.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadGs.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadIdtr.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadLdtr.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadMm0.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadMm1.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadMm2.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadMm3.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadMm4.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadMm5.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadMm6.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadMm7.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadMsr64.c MdePkg/Baseib: Filter/trace MSR access for IA32/X64 2021-04-08 02:02:57 +00:00
ReadMsr64.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadPmc.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadSs.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadTr.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
ReadTsc.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SetJump.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
SwitchStack.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
Thunk16.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
VmgExit.nasm MdePkg/BaseLib: Add support for the VMGEXIT instruction 2020-08-16 16:45:42 +00:00
Wbinvd.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteCr0.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteCr2.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteCr3.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteCr4.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteDr0.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteDr1.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteDr2.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteDr3.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteDr4.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteDr5.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteDr6.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteDr7.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteGdtr.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteIdtr.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteLdtr.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteMm0.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteMm1.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteMm2.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteMm3.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteMm4.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteMm5.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteMm6.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteMm7.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteMsr64.c MdePkg/Baseib: Filter/trace MSR access for IA32/X64 2021-04-08 02:02:57 +00:00
WriteMsr64.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
WriteTr.nasm MdePkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:13 -07:00
XGetBv.nasm MdePkg/BaseLib: Add support for the XGETBV instruction 2020-08-16 16:45:42 +00:00
XSetBv.nasm MdePkg/BaseLib: Add support for the XSETBV instruction 2021-04-06 00:43:49 +00:00