Rename dirs
authorbbahnsen <bbahnsen@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 24 Apr 2006 22:17:39 +0000 (22:17 +0000)
committerbbahnsen <bbahnsen@6f19259b-4bc3-4df7-8a09-765794883524>
Mon, 24 Apr 2006 22:17:39 +0000 (22:17 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@16 6f19259b-4bc3-4df7-8a09-765794883524

550 files changed:
MdePkg/Library/BaseLib/Ia32/ARShiftU64.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ARShiftU64.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/CpuBreakpoint.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/CpuBreakpoint.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/CpuFlushTlb.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/CpuFlushTlb.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/CpuId.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/CpuId.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/CpuPause.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/CpuPause.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/CpuSleep.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/CpuSleep.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/DisableInterrupts.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/DisableInterrupts.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/DisablePaging32.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/DisablePaging32.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/DivS64x64Remainder.c [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/DivU64x32.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/DivU64x32.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/DivU64x32Remainder.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/DivU64x32Remainder.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/DivU64x64Remainder.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/DivU64x64Remainder.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/EnableDisableInterrupts.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/EnableDisableInterrupts.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/EnableInterrupts.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/EnableInterrupts.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/EnablePaging32.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/EnablePaging32.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/EnablePaging64.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/EnablePaging64.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/FlushCacheLine.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/FlushCacheLine.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/FxRestore.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/FxRestore.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/FxSave.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/FxSave.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange32.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange32.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange64.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange64.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/InterlockedDecrement.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/InterlockedDecrement.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/InterlockedIncrement.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/InterlockedIncrement.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/Invd.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/Invd.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/LRotU64.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/LRotU64.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/LShiftU64.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/LShiftU64.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/LongJump.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/LongJump.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ModU64x32.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ModU64x32.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/Monitor.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/Monitor.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/MultU64x32.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/MultU64x32.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/MultU64x64.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/MultU64x64.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/Mwait.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/Mwait.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/Non-existing.c [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/RRotU64.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/RRotU64.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/RShiftU64.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/RShiftU64.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadCr0.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadCr0.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadCr2.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadCr2.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadCr3.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadCr3.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadCr4.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadCr4.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadCs.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadCs.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadDr0.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadDr0.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadDr1.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadDr1.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadDr2.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadDr2.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadDr3.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadDr3.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadDr4.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadDr5.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadDr6.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadDr6.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadDr7.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadDr7.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadDs.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadDs.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadEflags.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadEflags.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadEs.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadEs.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadFs.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadFs.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadGdtr.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadGdtr.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadGs.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadGs.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadIdtr.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadIdtr.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadLdtr.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadLdtr.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMm0.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMm0.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMm1.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMm1.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMm2.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMm2.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMm3.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMm3.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMm4.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMm4.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMm5.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMm5.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMm6.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMm6.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMm7.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMm7.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMsr64.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadMsr64.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadPmc.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadPmc.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadSs.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadSs.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadTr.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadTr.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadTsc.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/ReadTsc.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/SetJump.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/SetJump.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/SwapBytes64.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/SwitchStack.c [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/Thunk16.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/Thunk16.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/Wbinvd.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/Wbinvd.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteCr0.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteCr0.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteCr2.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteCr2.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteCr3.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteCr3.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteCr4.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteCr4.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteDr0.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteDr0.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteDr1.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteDr1.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteDr2.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteDr2.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteDr3.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteDr3.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteDr4.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteDr5.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteDr6.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteDr6.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteDr7.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteDr7.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteGdtr.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteGdtr.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteIdtr.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteIdtr.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteLdtr.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteLdtr.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMm0.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMm0.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMm1.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMm1.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMm2.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMm2.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMm3.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMm3.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMm4.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMm4.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMm5.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMm5.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMm6.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMm6.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMm7.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMm7.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMsr32.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMsr32.s [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMsr64.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/Ia32/WriteMsr64.s [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/CpuBreakpoint.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/CpuFlushTlb.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/CpuId.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/CpuPause.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/CpuSleep.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/DisableInterrupts.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/DisablePaging64.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/EnableDisableInterrupts.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/EnableInterrupts.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/FlushCacheLine.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/FxRestore.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/FxSave.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/InterlockedCompareExchange32.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/InterlockedCompareExchange64.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/InterlockedDecrement.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/InterlockedIncrement.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/Invd.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/LongJump.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/Monitor.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/Mwait.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/Non-existing.c [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadCr0.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadCr2.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadCr3.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadCr4.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadCs.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadDr0.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadDr1.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadDr2.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadDr3.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadDr4.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadDr5.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadDr6.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadDr7.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadDs.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadEflags.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadEs.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadFs.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadGdtr.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadGs.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadIdtr.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadLdtr.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadMm0.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadMm1.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadMm2.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadMm3.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadMm4.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadMm5.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadMm6.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadMm7.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadMsr32.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadMsr64.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadPmc.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadSs.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadTr.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/ReadTsc.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/SetJump.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/SwitchStack.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/Thunk16.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/Wbinvd.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteCr0.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteCr2.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteCr3.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteCr4.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteDr0.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteDr1.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteDr2.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteDr3.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteDr4.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteDr5.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteDr6.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteDr7.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteGdtr.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteIdtr.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteLdtr.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteMm0.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteMm1.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteMm2.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteMm3.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteMm4.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteMm5.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteMm6.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteMm7.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteMsr32.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/X64/WriteMsr64.asm [new file with mode: 0644]
MdePkg/Library/BaseLib/ia32/ARShiftU64.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ARShiftU64.s [deleted file]
MdePkg/Library/BaseLib/ia32/CpuBreakpoint.asm [deleted file]
MdePkg/Library/BaseLib/ia32/CpuBreakpoint.s [deleted file]
MdePkg/Library/BaseLib/ia32/CpuFlushTlb.asm [deleted file]
MdePkg/Library/BaseLib/ia32/CpuFlushTlb.s [deleted file]
MdePkg/Library/BaseLib/ia32/CpuId.asm [deleted file]
MdePkg/Library/BaseLib/ia32/CpuId.s [deleted file]
MdePkg/Library/BaseLib/ia32/CpuPause.asm [deleted file]
MdePkg/Library/BaseLib/ia32/CpuPause.s [deleted file]
MdePkg/Library/BaseLib/ia32/CpuSleep.asm [deleted file]
MdePkg/Library/BaseLib/ia32/CpuSleep.s [deleted file]
MdePkg/Library/BaseLib/ia32/DisableInterrupts.asm [deleted file]
MdePkg/Library/BaseLib/ia32/DisableInterrupts.s [deleted file]
MdePkg/Library/BaseLib/ia32/DisablePaging32.asm [deleted file]
MdePkg/Library/BaseLib/ia32/DisablePaging32.s [deleted file]
MdePkg/Library/BaseLib/ia32/DivS64x64Remainder.c [deleted file]
MdePkg/Library/BaseLib/ia32/DivU64x32.asm [deleted file]
MdePkg/Library/BaseLib/ia32/DivU64x32.s [deleted file]
MdePkg/Library/BaseLib/ia32/DivU64x32Remainder.asm [deleted file]
MdePkg/Library/BaseLib/ia32/DivU64x32Remainder.s [deleted file]
MdePkg/Library/BaseLib/ia32/DivU64x64Remainder.asm [deleted file]
MdePkg/Library/BaseLib/ia32/DivU64x64Remainder.s [deleted file]
MdePkg/Library/BaseLib/ia32/EnableDisableInterrupts.asm [deleted file]
MdePkg/Library/BaseLib/ia32/EnableDisableInterrupts.s [deleted file]
MdePkg/Library/BaseLib/ia32/EnableInterrupts.asm [deleted file]
MdePkg/Library/BaseLib/ia32/EnableInterrupts.s [deleted file]
MdePkg/Library/BaseLib/ia32/EnablePaging32.asm [deleted file]
MdePkg/Library/BaseLib/ia32/EnablePaging32.s [deleted file]
MdePkg/Library/BaseLib/ia32/EnablePaging64.asm [deleted file]
MdePkg/Library/BaseLib/ia32/EnablePaging64.s [deleted file]
MdePkg/Library/BaseLib/ia32/FlushCacheLine.asm [deleted file]
MdePkg/Library/BaseLib/ia32/FlushCacheLine.s [deleted file]
MdePkg/Library/BaseLib/ia32/FxRestore.asm [deleted file]
MdePkg/Library/BaseLib/ia32/FxRestore.s [deleted file]
MdePkg/Library/BaseLib/ia32/FxSave.asm [deleted file]
MdePkg/Library/BaseLib/ia32/FxSave.s [deleted file]
MdePkg/Library/BaseLib/ia32/InterlockedCompareExchange32.asm [deleted file]
MdePkg/Library/BaseLib/ia32/InterlockedCompareExchange32.s [deleted file]
MdePkg/Library/BaseLib/ia32/InterlockedCompareExchange64.asm [deleted file]
MdePkg/Library/BaseLib/ia32/InterlockedCompareExchange64.s [deleted file]
MdePkg/Library/BaseLib/ia32/InterlockedDecrement.asm [deleted file]
MdePkg/Library/BaseLib/ia32/InterlockedDecrement.s [deleted file]
MdePkg/Library/BaseLib/ia32/InterlockedIncrement.asm [deleted file]
MdePkg/Library/BaseLib/ia32/InterlockedIncrement.s [deleted file]
MdePkg/Library/BaseLib/ia32/Invd.asm [deleted file]
MdePkg/Library/BaseLib/ia32/Invd.s [deleted file]
MdePkg/Library/BaseLib/ia32/LRotU64.asm [deleted file]
MdePkg/Library/BaseLib/ia32/LRotU64.s [deleted file]
MdePkg/Library/BaseLib/ia32/LShiftU64.asm [deleted file]
MdePkg/Library/BaseLib/ia32/LShiftU64.s [deleted file]
MdePkg/Library/BaseLib/ia32/LongJump.asm [deleted file]
MdePkg/Library/BaseLib/ia32/LongJump.s [deleted file]
MdePkg/Library/BaseLib/ia32/ModU64x32.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ModU64x32.s [deleted file]
MdePkg/Library/BaseLib/ia32/Monitor.asm [deleted file]
MdePkg/Library/BaseLib/ia32/Monitor.s [deleted file]
MdePkg/Library/BaseLib/ia32/MultU64x32.asm [deleted file]
MdePkg/Library/BaseLib/ia32/MultU64x32.s [deleted file]
MdePkg/Library/BaseLib/ia32/MultU64x64.asm [deleted file]
MdePkg/Library/BaseLib/ia32/MultU64x64.s [deleted file]
MdePkg/Library/BaseLib/ia32/Mwait.asm [deleted file]
MdePkg/Library/BaseLib/ia32/Mwait.s [deleted file]
MdePkg/Library/BaseLib/ia32/Non-existing.c [deleted file]
MdePkg/Library/BaseLib/ia32/RRotU64.asm [deleted file]
MdePkg/Library/BaseLib/ia32/RRotU64.s [deleted file]
MdePkg/Library/BaseLib/ia32/RShiftU64.asm [deleted file]
MdePkg/Library/BaseLib/ia32/RShiftU64.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadCr0.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadCr0.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadCr2.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadCr2.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadCr3.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadCr3.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadCr4.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadCr4.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadCs.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadCs.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadDr0.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadDr0.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadDr1.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadDr1.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadDr2.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadDr2.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadDr3.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadDr3.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadDr4.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadDr5.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadDr6.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadDr6.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadDr7.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadDr7.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadDs.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadDs.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadEflags.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadEflags.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadEs.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadEs.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadFs.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadFs.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadGdtr.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadGdtr.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadGs.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadGs.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadIdtr.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadIdtr.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadLdtr.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadLdtr.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMm0.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMm0.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMm1.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMm1.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMm2.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMm2.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMm3.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMm3.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMm4.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMm4.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMm5.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMm5.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMm6.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMm6.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMm7.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMm7.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMsr64.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadMsr64.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadPmc.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadPmc.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadSs.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadSs.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadTr.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadTr.s [deleted file]
MdePkg/Library/BaseLib/ia32/ReadTsc.asm [deleted file]
MdePkg/Library/BaseLib/ia32/ReadTsc.s [deleted file]
MdePkg/Library/BaseLib/ia32/SetJump.asm [deleted file]
MdePkg/Library/BaseLib/ia32/SetJump.s [deleted file]
MdePkg/Library/BaseLib/ia32/SwapBytes64.asm [deleted file]
MdePkg/Library/BaseLib/ia32/SwitchStack.c [deleted file]
MdePkg/Library/BaseLib/ia32/Thunk16.asm [deleted file]
MdePkg/Library/BaseLib/ia32/Thunk16.s [deleted file]
MdePkg/Library/BaseLib/ia32/Wbinvd.asm [deleted file]
MdePkg/Library/BaseLib/ia32/Wbinvd.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteCr0.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteCr0.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteCr2.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteCr2.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteCr3.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteCr3.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteCr4.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteCr4.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteDr0.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteDr0.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteDr1.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteDr1.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteDr2.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteDr2.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteDr3.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteDr3.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteDr4.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteDr5.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteDr6.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteDr6.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteDr7.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteDr7.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteGdtr.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteGdtr.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteIdtr.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteIdtr.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteLdtr.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteLdtr.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMm0.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMm0.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMm1.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMm1.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMm2.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMm2.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMm3.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMm3.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMm4.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMm4.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMm5.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMm5.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMm6.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMm6.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMm7.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMm7.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMsr32.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMsr32.s [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMsr64.asm [deleted file]
MdePkg/Library/BaseLib/ia32/WriteMsr64.s [deleted file]
MdePkg/Library/BaseLib/x64/CpuBreakpoint.asm [deleted file]
MdePkg/Library/BaseLib/x64/CpuFlushTlb.asm [deleted file]
MdePkg/Library/BaseLib/x64/CpuId.asm [deleted file]
MdePkg/Library/BaseLib/x64/CpuPause.asm [deleted file]
MdePkg/Library/BaseLib/x64/CpuSleep.asm [deleted file]
MdePkg/Library/BaseLib/x64/DisableInterrupts.asm [deleted file]
MdePkg/Library/BaseLib/x64/DisablePaging64.asm [deleted file]
MdePkg/Library/BaseLib/x64/EnableDisableInterrupts.asm [deleted file]
MdePkg/Library/BaseLib/x64/EnableInterrupts.asm [deleted file]
MdePkg/Library/BaseLib/x64/FlushCacheLine.asm [deleted file]
MdePkg/Library/BaseLib/x64/FxRestore.asm [deleted file]
MdePkg/Library/BaseLib/x64/FxSave.asm [deleted file]
MdePkg/Library/BaseLib/x64/InterlockedCompareExchange32.asm [deleted file]
MdePkg/Library/BaseLib/x64/InterlockedCompareExchange64.asm [deleted file]
MdePkg/Library/BaseLib/x64/InterlockedDecrement.asm [deleted file]
MdePkg/Library/BaseLib/x64/InterlockedIncrement.asm [deleted file]
MdePkg/Library/BaseLib/x64/Invd.asm [deleted file]
MdePkg/Library/BaseLib/x64/LongJump.asm [deleted file]
MdePkg/Library/BaseLib/x64/Monitor.asm [deleted file]
MdePkg/Library/BaseLib/x64/Mwait.asm [deleted file]
MdePkg/Library/BaseLib/x64/Non-existing.c [deleted file]
MdePkg/Library/BaseLib/x64/ReadCr0.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadCr2.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadCr3.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadCr4.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadCs.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadDr0.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadDr1.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadDr2.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadDr3.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadDr4.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadDr5.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadDr6.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadDr7.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadDs.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadEflags.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadEs.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadFs.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadGdtr.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadGs.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadIdtr.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadLdtr.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadMm0.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadMm1.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadMm2.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadMm3.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadMm4.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadMm5.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadMm6.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadMm7.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadMsr32.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadMsr64.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadPmc.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadSs.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadTr.asm [deleted file]
MdePkg/Library/BaseLib/x64/ReadTsc.asm [deleted file]
MdePkg/Library/BaseLib/x64/SetJump.asm [deleted file]
MdePkg/Library/BaseLib/x64/SwitchStack.asm [deleted file]
MdePkg/Library/BaseLib/x64/Thunk16.asm [deleted file]
MdePkg/Library/BaseLib/x64/Wbinvd.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteCr0.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteCr2.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteCr3.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteCr4.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteDr0.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteDr1.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteDr2.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteDr3.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteDr4.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteDr5.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteDr6.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteDr7.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteGdtr.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteIdtr.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteLdtr.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteMm0.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteMm1.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteMm2.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteMm3.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteMm4.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteMm5.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteMm6.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteMm7.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteMsr32.asm [deleted file]
MdePkg/Library/BaseLib/x64/WriteMsr64.asm [deleted file]

diff --git a/MdePkg/Library/BaseLib/Ia32/ARShiftU64.asm b/MdePkg/Library/BaseLib/Ia32/ARShiftU64.asm
new file mode 100644 (file)
index 0000000..6b9cfa1
--- /dev/null
@@ -0,0 +1,38 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ARShiftU64.asm\r
+;\r
+; Abstract:\r
+;\r
+;   64-bit arithmetic right shift function for IA-32\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .686\r
+    .model  flat,C\r
+    .code\r
+\r
+InternalMathARShiftU64  PROC\r
+    mov     cl, [esp + 12]\r
+    mov     eax, [esp + 8]\r
+    cdq\r
+    test    cl, 32\r
+    cmovz   edx, eax\r
+    cmovz   eax, [esp + 4]\r
+    shrd    eax, edx, cl\r
+    sar     edx, cl\r
+    ret\r
+InternalMathARShiftU64  ENDP\r
+\r
+    END
\ No newline at end of file
diff --git a/MdePkg/Library/BaseLib/Ia32/ARShiftU64.s b/MdePkg/Library/BaseLib/Ia32/ARShiftU64.s
new file mode 100644 (file)
index 0000000..d6af974
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ARShiftU64.asm\r
+#\r
+# Abstract:\r
+#\r
+#   64-bit arithmetic right shift function for IA-32\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+.global _ARShiftU64\r
+_ARShiftU64: \r
+    movb    12(%esp),%cl\r
+    movl    8(%esp),%eax\r
+    cltd\r
+    testb   $32,%cl\r
+# MISMATCH: "    cmovz   edx, eax"\r
+    cmovz   %eax, %edx\r
+# MISMATCH: "    cmovz   eax, [esp + 4]"\r
+    cmovz   4(%esp), %eax\r
+    shrdl   %cl,%edx,%eax\r
+    sar     %cl,%edx\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/CpuBreakpoint.asm b/MdePkg/Library/BaseLib/Ia32/CpuBreakpoint.asm
new file mode 100644 (file)
index 0000000..a4d3978
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------ ;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   CpuBreakpoint.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   CpuBreakpoint function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .686\r
+    .model  flat\r
+    .xmm\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; VOID\r
+; EFIAPI\r
+; CpuBreakpoint (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_CpuBreakpoint   PROC\r
+    int  3\r
+    ret\r
+_CpuBreakpoint   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/CpuBreakpoint.s b/MdePkg/Library/BaseLib/Ia32/CpuBreakpoint.s
new file mode 100644 (file)
index 0000000..e5d18c3
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------ ;\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   CpuBreakpoint.s\r
+#\r
+# Abstract:\r
+#\r
+#   CpuBreakpoint function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EFIAPI\r
+# CpuBreakpoint (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _CpuBreakpoint\r
+_CpuBreakpoint: \r
+    int  3\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/CpuFlushTlb.asm b/MdePkg/Library/BaseLib/Ia32/CpuFlushTlb.asm
new file mode 100644 (file)
index 0000000..de87ad7
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------ ;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   CpuFlushTlb.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   CpuFlushTlb function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; VOID\r
+; EFIAPI\r
+; CpuFlushTlb (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_CpuFlushTlb    PROC\r
+    mov     eax, cr3\r
+    mov     cr3, eax\r
+    ret\r
+_CpuFlushTlb    ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/CpuFlushTlb.s b/MdePkg/Library/BaseLib/Ia32/CpuFlushTlb.s
new file mode 100644 (file)
index 0000000..1d85fa7
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------ ;\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   CpuFlushTlb.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   CpuFlushTlb function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EFIAPI\r
+# CpuFlushTlb (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _CpuFlushTlb\r
+_CpuFlushTlb: \r
+    movl    %cr3, %eax\r
+    movl    %eax, %cr3\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/CpuId.asm b/MdePkg/Library/BaseLib/Ia32/CpuId.asm
new file mode 100644 (file)
index 0000000..2c94e3a
--- /dev/null
@@ -0,0 +1,66 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   CpuId.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmCpuid function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .586P\r
+    .model  flat,C\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+;  VOID\r
+;  EFIAPI\r
+;  AsmCpuid (\r
+;    IN   UINT32  RegisterInEax,\r
+;    OUT  UINT32  *RegisterOutEax  OPTIONAL,\r
+;    OUT  UINT32  *RegisterOutEbx  OPTIONAL,\r
+;    OUT  UINT32  *RegisterOutEcx  OPTIONAL,\r
+;    OUT  UINT32  *RegisterOutEdx  OPTIONAL\r
+;    )\r
+;------------------------------------------------------------------------------\r
+AsmCpuid    PROC    USES    ebx\r
+    push    ebp\r
+    mov     ebp, esp\r
+    mov     eax, [ebp + 12]\r
+    cpuid\r
+    push    ecx\r
+    mov     ecx, [ebp + 16]\r
+    jecxz   @F\r
+    mov     [ecx], eax\r
+@@:\r
+    mov     ecx, [ebp + 20]\r
+    jecxz   @F\r
+    mov     [ecx], ebx\r
+@@:\r
+    mov     ecx, [ebp + 24]\r
+    jecxz   @F\r
+    pop     [ecx]\r
+@@:\r
+    mov     ecx, [ebp + 28]\r
+    jecxz   @F\r
+    mov     [ecx], edx\r
+@@:\r
+    mov     eax, [ebp + 12]\r
+    leave\r
+    ret\r
+AsmCpuid    ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/CpuId.s b/MdePkg/Library/BaseLib/Ia32/CpuId.s
new file mode 100644 (file)
index 0000000..989daba
--- /dev/null
@@ -0,0 +1,63 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   CpuId.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmCpuid function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+\r
+#------------------------------------------------------------------------------\r
+#  VOID\r
+#  EFIAPI\r
+#  AsmCpuid (\r
+#    IN   UINT32  RegisterInEax,\r
+#    OUT  UINT32  *RegisterOutEax  OPTIONAL,\r
+#    OUT  UINT32  *RegisterOutEbx  OPTIONAL,\r
+#    OUT  UINT32  *RegisterOutEcx  OPTIONAL,\r
+#    OUT  UINT32  *RegisterOutEdx  OPTIONAL\r
+#    )\r
+#------------------------------------------------------------------------------\r
+.globl _AsmCpuid\r
+_AsmCpuid:\r
+    push   %ebx\r
+    push   %edi\r
+    movl    12(%esp),%eax\r
+    cpuid\r
+    movl    %ecx,%edi\r
+    movl    16(%esp),%ecx\r
+    jecxz   L1\r
+    movl    %eax,(%ecx)\r
+L1:\r
+    movl    20(%esp),%ecx\r
+    jecxz   L2\r
+    movl    %ebx,(%ecx)\r
+L2:\r
+    movl    24(%esp),%ecx\r
+    jecxz   L3\r
+    movl    %edi,(%ecx)\r
+L3:\r
+    movl    28(%esp),%ecx\r
+    jecxz   L4\r
+    movl    %edx,(%ecx)\r
+L4:\r
+    pop    %edi\r
+    pop    %ebx\r
+    ret\r
diff --git a/MdePkg/Library/BaseLib/Ia32/CpuPause.asm b/MdePkg/Library/BaseLib/Ia32/CpuPause.asm
new file mode 100644 (file)
index 0000000..79a4f2f
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------ ;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   CpuPause.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   CpuPause function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .686\r
+    .model  flat\r
+    .xmm\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; VOID\r
+; EFIAPI\r
+; CpuPause (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_CpuPause   PROC\r
+    pause\r
+    ret\r
+_CpuPause   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/CpuPause.s b/MdePkg/Library/BaseLib/Ia32/CpuPause.s
new file mode 100644 (file)
index 0000000..ace2c67
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------ ;\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   CpuPause.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   CpuPause function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EFIAPI\r
+# CpuPause (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _CpuPause\r
+_CpuPause: \r
+    pause\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/CpuSleep.asm b/MdePkg/Library/BaseLib/Ia32/CpuSleep.asm
new file mode 100644 (file)
index 0000000..66fb90e
--- /dev/null
@@ -0,0 +1,39 @@
+;------------------------------------------------------------------------------ ;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   CpuSleep.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   CpuSleep function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; VOID\r
+; EFIAPI\r
+; CpuSleep (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_CpuSleep   PROC\r
+    hlt\r
+    ret\r
+_CpuSleep   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/CpuSleep.s b/MdePkg/Library/BaseLib/Ia32/CpuSleep.s
new file mode 100644 (file)
index 0000000..9b77131
--- /dev/null
@@ -0,0 +1,40 @@
+#------------------------------------------------------------------------------ ;\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   CpuSleep.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   CpuSleep function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EFIAPI\r
+# CpuSleep (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _CpuSleep\r
+_CpuSleep: \r
+    hlt\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/DisableInterrupts.asm b/MdePkg/Library/BaseLib/Ia32/DisableInterrupts.asm
new file mode 100644 (file)
index 0000000..74bdd0b
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   DisableInterrupts.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   DisableInterrupts function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; VOID\r
+; EFIAPI\r
+; DisableInterrupts (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_DisableInterrupts  PROC\r
+    cli\r
+    ret\r
+_DisableInterrupts  ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/DisableInterrupts.s b/MdePkg/Library/BaseLib/Ia32/DisableInterrupts.s
new file mode 100644 (file)
index 0000000..cc9c95c
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   DisableInterrupts.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   DisableInterrupts function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EFIAPI\r
+# DisableInterrupts (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _DisableInterrupts\r
+_DisableInterrupts: \r
+    cli\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/DisablePaging32.asm b/MdePkg/Library/BaseLib/Ia32/DisablePaging32.asm
new file mode 100644 (file)
index 0000000..04ae8cf
--- /dev/null
@@ -0,0 +1,57 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   DisablePaging32.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmDisablePaging32 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat,C\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; VOID\r
+; EFIAPI\r
+; InternalX86DisablePaging32 (\r
+;   IN      SWITCH_STACK_ENTRY_POINT  EntryPoint,\r
+;   IN      VOID                      *Context1,    OPTIONAL\r
+;   IN      VOID                      *Context2,    OPTIONAL\r
+;   IN      VOID                      *NewStack\r
+;   );\r
+;------------------------------------------------------------------------------\r
+InternalX86DisablePaging32    PROC\r
+    mov     ebx, [esp + 4]\r
+    mov     ecx, [esp + 8]\r
+    mov     edx, [esp + 12]\r
+    pushfd\r
+    pop     edi\r
+    cli\r
+    mov     eax, cr0\r
+    btr     eax, 31\r
+    mov     esp, [esp + 16]\r
+    mov     cr0, eax\r
+    push    edi\r
+    popfd\r
+    push    edx\r
+    push    ecx\r
+    call    ebx\r
+    jmp     $\r
+InternalX86DisablePaging32    ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/DisablePaging32.s b/MdePkg/Library/BaseLib/Ia32/DisablePaging32.s
new file mode 100644 (file)
index 0000000..21e8a82
--- /dev/null
@@ -0,0 +1,58 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   DisablePaging32.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmDisablePaging32 function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EFIAPI\r
+# AsmDisablePaging32 (\r
+#   IN      SWITCH_STACK_ENTRY_POINT  EntryPoint,\r
+#   IN      VOID                      *Context1,    OPTIONAL\r
+#   IN      VOID                      *Context2,    OPTIONAL\r
+#   IN      VOID                      *NewStack\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmDisablePaging32\r
+_AsmDisablePaging32: \r
+    movl    4(%esp),%ebx\r
+    movl    8(%esp),%ecx\r
+    movl    12(%esp),%edx\r
+    pushfl\r
+    popl    %edi\r
+    cli\r
+    movl    %cr0, %eax\r
+    btrl    $31,%eax\r
+    movl    16(%esp),%esp\r
+    movl    %eax, %cr0\r
+    pushl   %edi\r
+    popfl\r
+    pushl   %edx\r
+    pushl   %ecx\r
+    call    *%ebx\r
+    jmp     .\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/DivS64x64Remainder.c b/MdePkg/Library/BaseLib/Ia32/DivS64x64Remainder.c
new file mode 100644 (file)
index 0000000..219f48f
--- /dev/null
@@ -0,0 +1,38 @@
+/** @file\r
+  Integer division worker functions for Ia32.\r
+\r
+  Copyright (c) 2006, Intel Corporation<BR>\r
+  All rights reserved. This program and the accompanying materials\r
+  are licensed and made available under the terms and conditions of the BSD License\r
+  which accompanies this distribution.  The full text of the license may be found at\r
+  http://opensource.org/licenses/bsd-license.php\r
+\r
+  THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+  WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+  Module Name:  DivS64x64Remainder.c\r
+\r
+**/\r
+\r
+#include "../BaseLibInternals.h"\r
+\r
+INT64\r
+EFIAPI\r
+InternalMathDivRemS64x64 (\r
+  IN      INT64                     Dividend,\r
+  IN      INT64                     Divisor,\r
+  OUT     INT64                     *Remainder\r
+  )\r
+{\r
+  INT64                             Quot;\r
+\r
+  Quot = InternalMathDivRemU64x64 (\r
+           Dividend >= 0 ? Dividend : -Dividend,\r
+           Divisor >= 0 ? Divisor : -Divisor,\r
+           (UINT64 *) Remainder\r
+           );\r
+  if (Remainder != NULL && Dividend < 0) {\r
+    *Remainder = -*Remainder;\r
+  }\r
+  return (Dividend ^ Divisor) >= 0 ? Quot : -Quot;\r
+}\r
diff --git a/MdePkg/Library/BaseLib/Ia32/DivU64x32.asm b/MdePkg/Library/BaseLib/Ia32/DivU64x32.asm
new file mode 100644 (file)
index 0000000..1ad5474
--- /dev/null
@@ -0,0 +1,38 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   DivU64x32.asm\r
+;\r
+; Abstract:\r
+;\r
+;   Calculate the quotient of a 64-bit integer by a 32-bit integer\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat,C\r
+    .code\r
+\r
+InternalMathDivU64x32   PROC\r
+    mov     eax, [esp + 8]\r
+    mov     ecx, [esp + 12]\r
+    xor     edx, edx\r
+    div     ecx\r
+    push    eax\r
+    mov     eax, [esp + 8]\r
+    div     ecx\r
+    pop     edx\r
+    ret\r
+InternalMathDivU64x32   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/DivU64x32.s b/MdePkg/Library/BaseLib/Ia32/DivU64x32.s
new file mode 100644 (file)
index 0000000..689c709
--- /dev/null
@@ -0,0 +1,39 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   DivU64x32.asm\r
+#\r
+# Abstract:\r
+#\r
+#   Calculate the quotient of a 64-bit integer by a 32-bit integer\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+.global _DivU64x32\r
+_DivU64x32: \r
+    movl    8(%esp),%eax\r
+    movl    12(%esp),%ecx\r
+    xorl    %edx,%edx\r
+    divl    %ecx\r
+    pushl   %eax\r
+    movl    8(%esp),%eax\r
+    divl    %ecx\r
+    popl    %edx\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/DivU64x32Remainder.asm b/MdePkg/Library/BaseLib/Ia32/DivU64x32Remainder.asm
new file mode 100644 (file)
index 0000000..f1c6c1f
--- /dev/null
@@ -0,0 +1,42 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   DivError.asm\r
+;\r
+; Abstract:\r
+;\r
+;   Set error flag for all division functions\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat,C\r
+    .code\r
+\r
+InternalMathDivRemU64x32    PROC\r
+    mov     ecx, [esp + 12]\r
+    mov     eax, [esp + 8]\r
+    xor     edx, edx\r
+    div     ecx\r
+    push    eax\r
+    mov     eax, [esp + 8]\r
+    div     ecx\r
+    mov     ecx, [esp + 20]\r
+    jecxz   @F\r
+    mov     [ecx], edx\r
+@@:\r
+    pop     edx\r
+    ret\r
+InternalMathDivRemU64x32    ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/DivU64x32Remainder.s b/MdePkg/Library/BaseLib/Ia32/DivU64x32Remainder.s
new file mode 100644 (file)
index 0000000..1f34f18
--- /dev/null
@@ -0,0 +1,43 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   DivError.asm\r
+#\r
+# Abstract:\r
+#\r
+#   Set error flag for all division functions\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+.global _InternalMathDivRemU64x32\r
+_InternalMathDivRemU64x32: \r
+    movl    12(%esp),%ecx\r
+    movl    8(%esp),%eax\r
+    xorl    %edx,%edx\r
+    divl    %ecx\r
+    pushl   %eax\r
+    movl    8(%esp),%eax\r
+    divl    %ecx\r
+    movl    20(%esp),%ecx\r
+    jecxz   L1\r
+    movl    %edx,(%ecx)\r
+L1: \r
+    popl    %edx\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/DivU64x64Remainder.asm b/MdePkg/Library/BaseLib/Ia32/DivU64x64Remainder.asm
new file mode 100644 (file)
index 0000000..261211b
--- /dev/null
@@ -0,0 +1,83 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   DivU64x64Remainder.asm\r
+;\r
+; Abstract:\r
+;\r
+;   Calculate the quotient of a 64-bit integer by a 64-bit integer and returns\r
+;   both the quotient and the remainder\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat,C\r
+    .code\r
+\r
+EXTERN  InternalMathDivRemU64x32:PROC\r
+\r
+InternalMathDivRemU64x64    PROC\r
+    mov     ecx, [esp + 16]\r
+    test    ecx, ecx\r
+    jnz     _@DivRemU64x64\r
+    mov     ecx, [esp + 20]\r
+    jecxz   @F\r
+    and     dword ptr [ecx + 4], 0\r
+    mov     [esp + 16], ecx\r
+@@:\r
+    jmp     InternalMathDivRemU64x32\r
+InternalMathDivRemU64x64    ENDP\r
+\r
+_@DivRemU64x64  PROC    USES    ebx esi edi\r
+    mov     edx, dword ptr [esp + 20]\r
+    mov     eax, dword ptr [esp + 16]\r
+    mov     edi, edx\r
+    mov     esi, eax\r
+    mov     ebx, dword ptr [esp + 24]\r
+@@:\r
+    shr     edx, 1\r
+    rcr     eax, 1\r
+    shrd    ebx, ecx, 1\r
+    shr     ecx, 1\r
+    jnz     @B\r
+    div     ebx\r
+    mov     ebx, eax\r
+    mov     ecx, [esp + 28]\r
+    mul     dword ptr [esp + 24]\r
+    imul    ecx, ebx\r
+    add     edx, ecx\r
+    mov     ecx, dword ptr [esp + 32]\r
+    jc      @TooLarge\r
+    cmp     edi, edx\r
+    ja      @Correct\r
+    jb      @TooLarge\r
+    cmp     esi, eax\r
+    jae     @Correct\r
+@TooLarge:\r
+    dec     ebx\r
+    jecxz   @Return\r
+    sub     eax, dword ptr [esp + 24]\r
+    sbb     edx, dword ptr [esp + 28]\r
+@Correct:\r
+    jecxz   @Return\r
+    sub     esi, eax\r
+    sbb     edi, edx\r
+    mov     [ecx], esi\r
+    mov     [ecx + 4], edi\r
+@Return:\r
+    mov     eax, ebx\r
+    xor     edx, edx\r
+    ret\r
+_@DivRemU64x64  ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/DivU64x64Remainder.s b/MdePkg/Library/BaseLib/Ia32/DivU64x64Remainder.s
new file mode 100644 (file)
index 0000000..f604f7c
--- /dev/null
@@ -0,0 +1,89 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   DivU64x64Remainder.asm\r
+#\r
+# Abstract:\r
+#\r
+#   Calculate the quotient of a 64-bit integer by a 64-bit integer and returns\r
+#   both the quotient and the remainder\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+.extern _InternalMathDivRemU64x32\r
+\r
+.global _InternalMathDivRemU64x64\r
+_InternalMathDivRemU64x64: \r
+    movl    16(%esp),%ecx\r
+    testl   %ecx,%ecx\r
+    jnz     _DivRemU64x64\r
+    movl    20(%esp),%ecx\r
+    jecxz   L1\r
+    and     $0,4(%ecx)\r
+    movl    %ecx,16(%esp)\r
+L1: \r
+    jmp     _InternalMathDivRemU64x32\r
+\r
+\r
+.global DivRemU64x64\r
+DivRemU64x64:\r
+# MISMATCH: "DivRemU64x64:    USES    ebx esi edi"\r
+    push   %ebx                                                                             \r
+    push   %esi                                                                             \r
+    push   %edi                                        \r
+    mov     20(%esp), %edx\r
+    mov     16(%esp), %eax\r
+    movl    %edx,%edi\r
+    movl    %eax,%esi\r
+    mov     24(%esp), %ebx\r
+L2: \r
+    shrl    %edx\r
+    rcrl    $1,%eax\r
+    shrdl   $1,%ecx,%ebx\r
+    shrl    %ecx\r
+    jnz     L2\r
+    divl    %ebx\r
+    movl    %eax,%ebx\r
+    movl    28(%esp),%ecx\r
+    mull    24(%esp)\r
+    imull   %ebx,%ecx\r
+    addl    %ecx,%edx\r
+    mov     32(%esp), %ecx\r
+    jc      TooLarge\r
+    cmpl    %edx,%edi\r
+    ja      Correct\r
+    jb      TooLarge\r
+    cmpl    %eax,%esi\r
+    jae     Correct\r
+TooLarge: \r
+    decl    %ebx\r
+    jecxz   Return\r
+    sub     24(%esp), %eax\r
+    sbb     28(%esp), %edx\r
+Correct: \r
+    jecxz   Return\r
+    subl    %eax,%esi\r
+    sbbl    %edx,%edi\r
+    movl    %esi,(%ecx)\r
+    movl    %edi,4(%ecx)\r
+Return: \r
+    movl    %ebx,%eax\r
+    xorl    %edx,%edx\r
+    push   %edi                                        \r
+    push   %esi                                                                             \r
+    push   %ebx                                                                             \r
+    ret\r
diff --git a/MdePkg/Library/BaseLib/Ia32/EnableDisableInterrupts.asm b/MdePkg/Library/BaseLib/Ia32/EnableDisableInterrupts.asm
new file mode 100644 (file)
index 0000000..fe2016d
--- /dev/null
@@ -0,0 +1,41 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   EnableDisableInterrupts.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   EnableDisableInterrupts function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; VOID\r
+; EFIAPI\r
+; EnableDisableInterrupts (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_EnableDisableInterrupts    PROC\r
+    sti\r
+    cli\r
+    ret\r
+_EnableDisableInterrupts    ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/EnableDisableInterrupts.s b/MdePkg/Library/BaseLib/Ia32/EnableDisableInterrupts.s
new file mode 100644 (file)
index 0000000..80362a9
--- /dev/null
@@ -0,0 +1,42 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   EnableDisableInterrupts.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   EnableDisableInterrupts function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EFIAPI\r
+# EnableDisableInterrupts (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _EnableDisableInterrupts\r
+_EnableDisableInterrupts: \r
+    sti\r
+    cli\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/EnableInterrupts.asm b/MdePkg/Library/BaseLib/Ia32/EnableInterrupts.asm
new file mode 100644 (file)
index 0000000..194dd8f
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   EnableInterrupts.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   EnableInterrupts function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; VOID\r
+; EFIAPI\r
+; EnableInterrupts (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_EnableInterrupts   PROC\r
+    sti\r
+    ret\r
+_EnableInterrupts   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/EnableInterrupts.s b/MdePkg/Library/BaseLib/Ia32/EnableInterrupts.s
new file mode 100644 (file)
index 0000000..74413d8
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   EnableInterrupts.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   EnableInterrupts function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EFIAPI\r
+# EnableInterrupts (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _EnableInterrupts\r
+_EnableInterrupts: \r
+    sti\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/EnablePaging32.asm b/MdePkg/Library/BaseLib/Ia32/EnablePaging32.asm
new file mode 100644 (file)
index 0000000..cf6f2fe
--- /dev/null
@@ -0,0 +1,57 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   EnablePaging32.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmEnablePaging32 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat,C\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; VOID\r
+; EFIAPI\r
+; InternalX86EnablePaging32 (\r
+;   IN      SWITCH_STACK_ENTRY_POINT  EntryPoint,\r
+;   IN      VOID                      *Context1,    OPTIONAL\r
+;   IN      VOID                      *Context2,    OPTIONAL\r
+;   IN      VOID                      *NewStack\r
+;   );\r
+;------------------------------------------------------------------------------\r
+InternalX86EnablePaging32 PROC\r
+    mov     ebx, [esp + 4]\r
+    mov     ecx, [esp + 8]\r
+    mov     edx, [esp + 12]\r
+    pushfd\r
+    pop     edi\r
+    cli\r
+    mov     eax, cr0\r
+    bts     eax, 31\r
+    mov     esp, [esp + 16]\r
+    mov     cr0, eax\r
+    push    edi\r
+    popfd\r
+    push    edx\r
+    push    ecx\r
+    call    ebx\r
+    jmp     $\r
+InternalX86EnablePaging32 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/EnablePaging32.s b/MdePkg/Library/BaseLib/Ia32/EnablePaging32.s
new file mode 100644 (file)
index 0000000..6f9befc
--- /dev/null
@@ -0,0 +1,58 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   EnablePaging32.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmEnablePaging32 function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EFIAPI\r
+# AsmEnablePaging32 (\r
+#   IN      SWITCH_STACK_ENTRY_POINT  EntryPoint,\r
+#   IN      VOID                      *Context1,    OPTIONAL\r
+#   IN      VOID                      *Context2,    OPTIONAL\r
+#   IN      VOID                      *NewStack\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmEnablePaging32\r
+_AsmEnablePaging32: \r
+    movl    4(%esp),%ebx\r
+    movl    8(%esp),%ecx\r
+    movl    12(%esp),%edx\r
+    pushfl\r
+    popl    %edi\r
+    cli\r
+    movl    %cr0, %eax\r
+    btsl    $31,%eax\r
+    movl    16(%esp),%esp\r
+    movl    %eax, %cr0\r
+    pushl   %edi\r
+    popfl\r
+    pushl   %edx\r
+    pushl   %ecx\r
+    call    *%ebx\r
+    jmp     .\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/EnablePaging64.asm b/MdePkg/Library/BaseLib/Ia32/EnablePaging64.asm
new file mode 100644 (file)
index 0000000..6c9b0ea
--- /dev/null
@@ -0,0 +1,57 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   EnablePaging64.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmEnablePaging64 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .686p\r
+    .model  flat,C\r
+    .code\r
+\r
+InternalX86EnablePaging64 PROC\r
+    cli\r
+    mov     [esp], @F                   ; offset for far retf\r
+    mov     eax, cr4\r
+    or      al, (1 SHL 5)\r
+    mov     cr4, eax                    ; enable PAE\r
+    mov     ecx, 0c0000080h\r
+    rdmsr\r
+    or      ah, 1                       ; set LME\r
+    wrmsr\r
+    mov     eax, cr0\r
+    bts     eax, 31\r
+    mov     cr0, eax                    ; enable paging\r
+    retf\r
+@@:                                     ; long mode starts here\r
+    DB      67h, 48h\r
+    mov     ebx, [esp]                  ; mov rbx, [esp]\r
+    DB      67h, 48h\r
+    mov     ecx, [esp + 8]              ; mov rcx, [esp + 8]\r
+    DB      67h, 48h\r
+    mov     edx, [esp + 10h]            ; mov rdx, [esp + 10h]\r
+    DB      67h, 48h\r
+    mov     esp, [esp + 18h]            ; mov rsp, [esp + 18h]\r
+    DB      48h\r
+    add     esp, -20h                   ; add rsp, -20h\r
+    call    ebx                         ; call rbx\r
+    jmp     $\r
+InternalX86EnablePaging64 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/EnablePaging64.s b/MdePkg/Library/BaseLib/Ia32/EnablePaging64.s
new file mode 100644 (file)
index 0000000..b365ea7
--- /dev/null
@@ -0,0 +1,66 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   EnablePaging64.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmEnablePaging64 function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+     \r
+    #.MODEL flat\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EFIAPI\r
+# AsmEnablePaging64 (\r
+#   IN      UINT16                    CodeSelector,\r
+#   IN      UINT64                    EntryPoint,\r
+#   IN      UINT64                    Context1,    OPTIONAL\r
+#   IN      UINT64                    Context2,    OPTIONAL\r
+#   IN      UINT64                    NewStack\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmEnablePaging64\r
+_AsmEnablePaging64:\r
+    cli\r
+    movl    $$LongStart, (%esp)\r
+    movl    %cr4, %eax\r
+    orb     $0x20, %al\r
+    movl    %eax, %cr4                  # enable PAE\r
+    movl    $0xc0000080, %ecx\r
+    rdmsr\r
+    orb     $1, %ah                     # set LME\r
+    wrmsr\r
+    movl    %cr0, %eax\r
+    btsl    $31, %eax\r
+    movl    %eax, %cr0                  # enable paging\r
+    lret\r
+LongStart:                              # long mode starts here\r
+    .byte   0x67,0x48\r
+    movl    (%esp), %ebx                # mov rbx, [esp]\r
+    .byte   0x67,0x48\r
+    movl    8(%esp), %ecx               # mov rcx, [esp + 8]\r
+    .byte   0x67,0x48\r
+    movl    0x10(%esp), %edx            # mov rdx, [esp + 10h]\r
+    .byte   0x67,0x48\r
+    movl    0x18(%esp), %esp            # mov rsp, [esp + 18h]\r
+    .byte   0x48\r
+    addl    $0x-20, %esp                # add rsp, -20h\r
+    call    *%ebx                       # call rbx\r
+    jmp     .\r
diff --git a/MdePkg/Library/BaseLib/Ia32/FlushCacheLine.asm b/MdePkg/Library/BaseLib/Ia32/FlushCacheLine.asm
new file mode 100644 (file)
index 0000000..d79f217
--- /dev/null
@@ -0,0 +1,42 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   FlushCacheLine.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmFlushCacheLine function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .586P\r
+    .model  flat\r
+    .xmm\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; VOID\r
+; EFIAPI\r
+; AsmFlushCacheLine (\r
+;   IN      VOID                      *LinearAddress\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmFlushCacheLine  PROC\r
+    mov     eax, [esp + 4]\r
+    clflush [eax]\r
+    ret\r
+_AsmFlushCacheLine  ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/FlushCacheLine.s b/MdePkg/Library/BaseLib/Ia32/FlushCacheLine.s
new file mode 100644 (file)
index 0000000..c14bd11
--- /dev/null
@@ -0,0 +1,43 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   FlushCacheLine.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmFlushCacheLine function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EFIAPI\r
+# AsmFlushCacheLine (\r
+#   IN      VOID                      *LinearAddress\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmFlushCacheLine\r
+_AsmFlushCacheLine: \r
+    movl    4(%esp),%eax\r
+    clflush (%eax)\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/FxRestore.asm b/MdePkg/Library/BaseLib/Ia32/FxRestore.asm
new file mode 100644 (file)
index 0000000..e9e37d1
--- /dev/null
@@ -0,0 +1,42 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   FxRestore.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmFxRestore function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .586P\r
+    .model  flat,C\r
+    .xmm\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; VOID\r
+; EFIAPI\r
+; InternalX86FxRestore (\r
+;   IN CONST IA32_FX_BUFFER *Buffer\r
+;   );\r
+;------------------------------------------------------------------------------\r
+InternalX86FxRestore  PROC\r
+    mov     eax, [esp + 4]\r
+    fxrstor [eax]\r
+    ret\r
+InternalX86FxRestore  ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/FxRestore.s b/MdePkg/Library/BaseLib/Ia32/FxRestore.s
new file mode 100644 (file)
index 0000000..631a3ef
--- /dev/null
@@ -0,0 +1,43 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   FxRestore.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmFxRestore function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EFIAPI\r
+# AsmFxRestore (\r
+#   IN CONST IA32_FX_BUFFER *Buffer\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmFxRestore\r
+_AsmFxRestore: \r
+    movl    4(%esp),%eax\r
+    fxrstor (%eax)\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/FxSave.asm b/MdePkg/Library/BaseLib/Ia32/FxSave.asm
new file mode 100644 (file)
index 0000000..22496c5
--- /dev/null
@@ -0,0 +1,42 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   FxSave.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmFxSave function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .586P\r
+    .model  flat,C\r
+    .xmm\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; VOID\r
+; EFIAPI\r
+; InternalX86FxSave (\r
+;   OUT IA32_FX_BUFFER *Buffer\r
+;   );\r
+;------------------------------------------------------------------------------\r
+InternalX86FxSave PROC\r
+    mov     eax, [esp + 4]\r
+    fxsave  [eax]\r
+    ret\r
+InternalX86FxSave ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/FxSave.s b/MdePkg/Library/BaseLib/Ia32/FxSave.s
new file mode 100644 (file)
index 0000000..44a5512
--- /dev/null
@@ -0,0 +1,43 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   FxSave.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmFxSave function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EFIAPI\r
+# AsmFxSave (\r
+#   OUT IA32_FX_BUFFER *Buffer\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmFxSave\r
+_AsmFxSave: \r
+    movl    4(%esp),%eax\r
+    fxsave  (%eax)\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange32.asm b/MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange32.asm
new file mode 100644 (file)
index 0000000..c8c20fb
--- /dev/null
@@ -0,0 +1,45 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   InterlockedCompareExchange32.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   InterlockedCompareExchange32 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .486\r
+    .model  flat,C\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINT32\r
+; EFIAPI\r
+; InterlockedCompareExchange32 (\r
+;   IN      UINT32                    *Value,\r
+;   IN      UINT32                    CompareValue,\r
+;   IN      UINT32                    ExchangeValue\r
+;   );\r
+;------------------------------------------------------------------------------\r
+InternalSyncCompareExchange32   PROC\r
+    mov     ecx, [esp + 4]\r
+    mov     eax, [esp + 8]\r
+    mov     edx, [esp + 12]\r
+    lock    cmpxchg [ecx], edx\r
+    ret\r
+InternalSyncCompareExchange32   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange32.s b/MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange32.s
new file mode 100644 (file)
index 0000000..43bb925
--- /dev/null
@@ -0,0 +1,64 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   InterlockedCompareExchange32.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   InterlockedCompareExchange32 function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# VOID *\r
+# EFIAPI\r
+# InterlockedCompareExchangePointer (\r
+#   IN      VOID                      **Value,\r
+#   IN      VOID                      *CompareValue,\r
+#   IN      VOID                      *ExchangeValue\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _InterlockedCompareExchangePointer\r
+_InterlockedCompareExchangePointer: \r
+    #\r
+    # InterlockedCompareExchangePointer() shares the same code as\r
+    # InterlockedCompareExchange32() on IA32 and thus no code inside this\r
+    # function\r
+    #\r
+\r
+\r
+#------------------------------------------------------------------------------\r
+# UINT32\r
+# EFIAPI\r
+# InterlockedCompareExchange32 (\r
+#   IN      UINT32                    *Value,\r
+#   IN      UINT32                    CompareValue,\r
+#   IN      UINT32                    ExchangeValue\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _InterlockedCompareExchange32\r
+_InterlockedCompareExchange32: \r
+    movl    4(%esp),%ecx\r
+    movl    8(%esp),%eax\r
+    movl    12(%esp),%edx\r
+    lock    cmpxchgl %edx,(%ecx)\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange64.asm b/MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange64.asm
new file mode 100644 (file)
index 0000000..cded920
--- /dev/null
@@ -0,0 +1,47 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   InterlockedCompareExchange64.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   InterlockedCompareExchange64 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .586P\r
+    .model  flat,C\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINT64\r
+; EFIAPI\r
+; InterlockedCompareExchange64 (\r
+;   IN      UINT64                    *Value,\r
+;   IN      UINT64                    CompareValue,\r
+;   IN      UINT64                    ExchangeValue\r
+;   );\r
+;------------------------------------------------------------------------------\r
+InternalSyncCompareExchange64   PROC    USES    esi ebx\r
+    mov     esi, [esp + 12]\r
+    mov     eax, [esp + 16]\r
+    mov     edx, [esp + 20]\r
+    mov     ebx, [esp + 24]\r
+    mov     ecx, [esp + 28]\r
+    lock    cmpxchg8b   qword ptr [esi]\r
+    ret\r
+InternalSyncCompareExchange64   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange64.s b/MdePkg/Library/BaseLib/Ia32/InterlockedCompareExchange64.s
new file mode 100644 (file)
index 0000000..abc51e9
--- /dev/null
@@ -0,0 +1,52 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   InterlockedCompareExchange64.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   InterlockedCompareExchange64 function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINT64\r
+# EFIAPI\r
+# InterlockedCompareExchange64 (\r
+#   IN      UINT64                    *Value,\r
+#   IN      UINT64                    CompareValue,\r
+#   IN      UINT64                    ExchangeValue\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _InterlockedCompareExchange64\r
+    push    %esi\r
+    push    %ebx\r
+    movl    12(%esp),%esi\r
+    movl    16(%esp),%eax\r
+    movl    20(%esp),%edx\r
+    movl    24(%esp),%ebx\r
+    movl    28(%esp),%ecx\r
+    lock    \r
+    cmpxchg8b   (%esi)\r
+    pop     %ebx\r
+    pop     %esi\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/InterlockedDecrement.asm b/MdePkg/Library/BaseLib/Ia32/InterlockedDecrement.asm
new file mode 100644 (file)
index 0000000..d849540
--- /dev/null
@@ -0,0 +1,42 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   InterlockedDecrement.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   InterlockedDecrement function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat,C\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINT32\r
+; EFIAPI\r
+; InterlockedDecrement (\r
+;   IN      UINT32                    *Value\r
+;   );\r
+;------------------------------------------------------------------------------\r
+InternalSyncDecrement   PROC\r
+    mov     eax, [esp + 4]\r
+    lock    dec     dword ptr [eax]\r
+    mov     eax, [eax]\r
+    ret\r
+InternalSyncDecrement   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/InterlockedDecrement.s b/MdePkg/Library/BaseLib/Ia32/InterlockedDecrement.s
new file mode 100644 (file)
index 0000000..a7b653a
--- /dev/null
@@ -0,0 +1,44 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   InterlockedDecrement.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   InterlockedDecrement function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINT32\r
+# EFIAPI\r
+# InterlockedDecrement (\r
+#   IN      UINT32                    *Value\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _InterlockedDecrement\r
+_InterlockedDecrement: \r
+    movl    4(%esp),%eax\r
+    lock    \r
+    decl     (%eax)\r
+    movl    (%eax),%eax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/InterlockedIncrement.asm b/MdePkg/Library/BaseLib/Ia32/InterlockedIncrement.asm
new file mode 100644 (file)
index 0000000..a7bfb6f
--- /dev/null
@@ -0,0 +1,42 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   InterlockedIncrement.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   InterlockedIncrement function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat,C\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINT32\r
+; EFIAPI\r
+; InterlockedIncrement (\r
+;   IN      UINT32                    *Value\r
+;   );\r
+;------------------------------------------------------------------------------\r
+InternalSyncIncrement   PROC\r
+    mov     eax, [esp + 4]\r
+    lock    inc     dword ptr [eax]\r
+    mov     eax, [eax]\r
+    ret\r
+InternalSyncIncrement   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/InterlockedIncrement.s b/MdePkg/Library/BaseLib/Ia32/InterlockedIncrement.s
new file mode 100644 (file)
index 0000000..3f9beec
--- /dev/null
@@ -0,0 +1,44 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   InterlockedIncrement.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   InterlockedIncrement function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINT32\r
+# EFIAPI\r
+# InterlockedIncrement (\r
+#   IN      UINT32                    *Value\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _InterlockedIncrement\r
+_InterlockedIncrement: \r
+    movl    4(%esp),%eax\r
+    lock    \r
+    incl     (%eax)\r
+    movl    (%eax),%eax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/Invd.asm b/MdePkg/Library/BaseLib/Ia32/Invd.asm
new file mode 100644 (file)
index 0000000..5767f54
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   Invd.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmInvd function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .486p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; VOID\r
+; EFIAPI\r
+; AsmInvd (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmInvd    PROC\r
+    invd\r
+    ret\r
+_AsmInvd    ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/Invd.s b/MdePkg/Library/BaseLib/Ia32/Invd.s
new file mode 100644 (file)
index 0000000..6d6c8d4
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   Invd.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmInvd function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EFIAPI\r
+# AsmInvd (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmInvd\r
+_AsmInvd: \r
+    invd\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/LRotU64.asm b/MdePkg/Library/BaseLib/Ia32/LRotU64.asm
new file mode 100644 (file)
index 0000000..1d5562a
--- /dev/null
@@ -0,0 +1,41 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   LRotU64.asm\r
+;\r
+; Abstract:\r
+;\r
+;   64-bit left rotation for Ia32\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .686\r
+    .model  flat,C\r
+    .code\r
+\r
+InternalMathLRotU64 PROC    USES    ebx\r
+    mov     cl, [esp + 16]\r
+    mov     edx, [esp + 12]\r
+    mov     eax, [esp + 8]\r
+    shld    ebx, edx, cl\r
+    shld    edx, eax, cl\r
+    ror     ebx, cl\r
+    shld    eax, ebx, cl\r
+    test    cl, 32\r
+    cmovnz  ecx, eax\r
+    cmovnz  eax, edx\r
+    cmovnz  edx, ecx\r
+    ret\r
+InternalMathLRotU64 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/LRotU64.s b/MdePkg/Library/BaseLib/Ia32/LRotU64.s
new file mode 100644 (file)
index 0000000..9c961ce
--- /dev/null
@@ -0,0 +1,43 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   LRotU64.asm\r
+#\r
+# Abstract:\r
+#\r
+#   64-bit left rotation for Ia32\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+.global _LRotU64\r
+    push    %ebx\r
+    movb    16(%esp),%cl\r
+    movl    12(%esp),%edx\r
+    movl    8(%esp),%eax\r
+    shldl   %cl,%edx,%ebx\r
+    shldl   %cl,%eax,%edx\r
+    rorl    %cl,%ebx\r
+    shldl   %cl,%ebx,%eax\r
+    testb   $32,%cl\r
+    cmovnz  %eax, %ecx\r
+    cmovnz  %edx, %eax \r
+    cmovnz  %ecx, %edx\r
+    pop     %ebx\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/LShiftU64.asm b/MdePkg/Library/BaseLib/Ia32/LShiftU64.asm
new file mode 100644 (file)
index 0000000..9ce946d
--- /dev/null
@@ -0,0 +1,38 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   LShiftU64.asm\r
+;\r
+; Abstract:\r
+;\r
+;   64-bit left shift function for IA-32\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .686\r
+    .model  flat,C\r
+    .code\r
+\r
+InternalMathLShiftU64   PROC\r
+    mov     cl, [esp + 12]\r
+    xor     eax, eax\r
+    mov     edx, [esp + 4]\r
+    test    cl, 32\r
+    cmovz   eax, edx\r
+    cmovz   edx, [esp + 8]\r
+    shld    edx, eax, cl\r
+    shl     eax, cl\r
+    ret\r
+InternalMathLShiftU64   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/LShiftU64.s b/MdePkg/Library/BaseLib/Ia32/LShiftU64.s
new file mode 100644 (file)
index 0000000..94cbc12
--- /dev/null
@@ -0,0 +1,39 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   LShiftU64.asm\r
+#\r
+# Abstract:\r
+#\r
+#   64-bit left shift function for IA-32\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+.global _LShiftU64\r
+_LShiftU64: \r
+    movb    12(%esp),%cl\r
+    xorl    %eax,%eax\r
+    movl    4(%esp),%edx\r
+    testb   $32,%cl\r
+    cmovz   %edx, %eax\r
+    cmovz   8(%esp), %edx\r
+    shldl   %cl,%eax,%edx\r
+    shll    %cl,%eax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/LongJump.asm b/MdePkg/Library/BaseLib/Ia32/LongJump.asm
new file mode 100644 (file)
index 0000000..ff0cef2
--- /dev/null
@@ -0,0 +1,38 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   LongJump.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   Implementation of LongJump() on IA-32.\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat\r
+    .code\r
+\r
+_LongJump   PROC\r
+    pop     eax\r
+    pop     edx\r
+    pop     eax\r
+    mov     ebx, [edx]\r
+    mov     esi, [edx + 4]\r
+    mov     edi, [edx + 8]\r
+    mov     ebp, [edx + 12]\r
+    mov     esp, [edx + 16]\r
+    jmp     dword ptr [edx + 20]\r
+_LongJump   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/LongJump.s b/MdePkg/Library/BaseLib/Ia32/LongJump.s
new file mode 100644 (file)
index 0000000..3da0914
--- /dev/null
@@ -0,0 +1,39 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   LongJump.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   Implementation of LongJump() on IA-32.\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+.global _LongJump\r
+_LongJump: \r
+    popl    %eax\r
+    popl    %edx\r
+    popl    %eax\r
+    movl    (%edx),%ebx\r
+    movl    4(%edx),%esi\r
+    movl    8(%edx),%edi\r
+    movl    12(%edx),%ebp\r
+    movl    16(%edx),%esp\r
+    jmpl    *20(%edx)\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ModU64x32.asm b/MdePkg/Library/BaseLib/Ia32/ModU64x32.asm
new file mode 100644 (file)
index 0000000..62481ce
--- /dev/null
@@ -0,0 +1,37 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   DivU64x32.asm\r
+;\r
+; Abstract:\r
+;\r
+;   Calculate the remainder of a 64-bit integer by a 32-bit integer\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat,C\r
+    .code\r
+\r
+InternalMathModU64x32   PROC\r
+    mov     eax, [esp + 8]\r
+    mov     ecx, [esp + 12]\r
+    xor     edx, edx\r
+    div     ecx\r
+    mov     eax, [esp + 4]\r
+    div     ecx\r
+    mov     eax, edx\r
+    ret\r
+InternalMathModU64x32   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ModU64x32.s b/MdePkg/Library/BaseLib/Ia32/ModU64x32.s
new file mode 100644 (file)
index 0000000..ed9c2fe
--- /dev/null
@@ -0,0 +1,38 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   DivU64x32.asm\r
+#\r
+# Abstract:\r
+#\r
+#   Calculate the remainder of a 64-bit integer by a 32-bit integer\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+.global _ModU64x32\r
+_ModU64x32: \r
+    movl    8(%esp),%eax\r
+    movl    12(%esp),%ecx\r
+    xorl    %edx,%edx\r
+    divl    %ecx\r
+    movl    4(%esp),%eax\r
+    divl    %ecx\r
+    movl    %edx,%eax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/Monitor.asm b/MdePkg/Library/BaseLib/Ia32/Monitor.asm
new file mode 100644 (file)
index 0000000..5d92d26
--- /dev/null
@@ -0,0 +1,45 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   Monitor.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmMonitor function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .686\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINT64\r
+; EFIAPI\r
+; AsmMonitor (\r
+;   IN      UINTN                     Eax,\r
+;   IN      UINTN                     Ecx,\r
+;   IN      UINTN                     Edx\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmMonitor PROC\r
+    mov     eax, [esp + 4]\r
+    mov     ecx, [esp + 8]\r
+    mov     edx, [esp + 12]\r
+    DB      0fh, 1, 0c8h\r
+    ret\r
+_AsmMonitor ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/Monitor.s b/MdePkg/Library/BaseLib/Ia32/Monitor.s
new file mode 100644 (file)
index 0000000..8da0e34
--- /dev/null
@@ -0,0 +1,46 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   Monitor.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmMonitor function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINT64\r
+# EFIAPI\r
+# AsmMonitor (\r
+#   IN      UINTN                     Eax,\r
+#   IN      UINTN                     Ecx,\r
+#   IN      UINTN                     Edx\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmMonitor\r
+_AsmMonitor: \r
+    movl    4(%esp),%eax\r
+    movl    8(%esp),%ecx\r
+    movl    12(%esp),%edx\r
+    monitor %eax,%ecx,%edx\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/MultU64x32.asm b/MdePkg/Library/BaseLib/Ia32/MultU64x32.asm
new file mode 100644 (file)
index 0000000..e2806e3
--- /dev/null
@@ -0,0 +1,35 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   MultU64x32.asm\r
+;\r
+; Abstract:\r
+;\r
+;   Calculate the product of a 64-bit integer and a 32-bit integer\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat,C\r
+    .code\r
+\r
+InternalMathMultU64x32  PROC\r
+    mov     ecx, [esp + 12]\r
+    mov     eax, ecx\r
+    imul    ecx, [esp + 8]\r
+    mul     dword ptr [esp + 4]\r
+    add     edx, ecx\r
+    ret\r
+InternalMathMultU64x32  ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/MultU64x32.s b/MdePkg/Library/BaseLib/Ia32/MultU64x32.s
new file mode 100644 (file)
index 0000000..03c520b
--- /dev/null
@@ -0,0 +1,36 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   MultU64x32.asm\r
+#\r
+# Abstract:\r
+#\r
+#   Calculate the product of a 64-bit integer and a 32-bit integer\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+.global _MultU64x32\r
+_MultU64x32: \r
+    movl    12(%esp),%ecx\r
+    movl    %ecx,%eax\r
+    imull   8(%esp),%ecx\r
+    mull    4(%esp)\r
+    addl    %ecx,%edx\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/MultU64x64.asm b/MdePkg/Library/BaseLib/Ia32/MultU64x64.asm
new file mode 100644 (file)
index 0000000..24c6a7d
--- /dev/null
@@ -0,0 +1,39 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   MultU64x64.asm\r
+;\r
+; Abstract:\r
+;\r
+;   Calculate the product of a 64-bit integer and another 64-bit integer\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat,C\r
+    .code\r
+\r
+InternalMathMultU64x64  PROC    USES    ebx\r
+    mov     ebx, [esp + 8]\r
+    mov     edx, [esp + 16]\r
+    mov     ecx, ebx\r
+    mov     eax, edx\r
+    imul    ebx, [esp + 20]\r
+    imul    edx, [esp + 12]\r
+    add     ebx, edx\r
+    mul     ecx\r
+    add     edx, ebx\r
+    ret\r
+InternalMathMultU64x64  ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/MultU64x64.s b/MdePkg/Library/BaseLib/Ia32/MultU64x64.s
new file mode 100644 (file)
index 0000000..8841fc4
--- /dev/null
@@ -0,0 +1,49 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   MultU64x64.asm\r
+#\r
+# Abstract:\r
+#\r
+#   Calculate the product of a 64-bit integer and another 64-bit integer\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+.global _MultS64x64\r
+_MultS64x64: \r
+    #\r
+    # MultS64x32 shares the same implementation with _MultU64x32, and thus no\r
+    # code inside this function.\r
+    #\r
+\r
+\r
+.global _MultU64x64\r
+    push    %ebx\r
+    movl    8(%esp),%ebx\r
+    movl    16(%esp),%edx\r
+    movl    %ebx,%ecx\r
+    movl    %edx,%eax\r
+    imull   20(%esp),%ebx\r
+    imull   12(%esp),%edx\r
+    addl    %edx,%ebx\r
+    mull    %ecx\r
+    addl    %ebx,%edx\r
+    pop     %ebx\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/Mwait.asm b/MdePkg/Library/BaseLib/Ia32/Mwait.asm
new file mode 100644 (file)
index 0000000..91d505b
--- /dev/null
@@ -0,0 +1,43 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   Mwait.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmMwait function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .686\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINT64\r
+; EFIAPI\r
+; AsmMwait (\r
+;   IN      UINTN                     Eax,\r
+;   IN      UINTN                     Ecx\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmMwait   PROC\r
+    mov     eax, [esp + 4]\r
+    mov     ecx, [esp + 8]\r
+    DB      0fh, 1, 0c9h\r
+    ret\r
+_AsmMwait   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/Mwait.s b/MdePkg/Library/BaseLib/Ia32/Mwait.s
new file mode 100644 (file)
index 0000000..7e04453
--- /dev/null
@@ -0,0 +1,44 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   Mwait.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmMwait function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINT64\r
+# EFIAPI\r
+# AsmMwait (\r
+#   IN      UINTN                     Eax,\r
+#   IN      UINTN                     Ecx\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmMwait\r
+_AsmMwait: \r
+    movl    4(%esp),%eax\r
+    movl    8(%esp),%ecx\r
+    mwait   %eax,%ecx\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/Non-existing.c b/MdePkg/Library/BaseLib/Ia32/Non-existing.c
new file mode 100644 (file)
index 0000000..4132d30
--- /dev/null
@@ -0,0 +1,30 @@
+/** @file\r
+       Non-existing BaseLib functions on Ia32\r
+\r
+       Copyright (c) 2006, Intel Corporation\r
+       All rights reserved. This program and the accompanying materials\r
+       are licensed and made available under the terms and conditions of the BSD License\r
+       which accompanies this distribution.  The full text of the license may be found at\r
+       http://opensource.org/licenses/bsd-license.php\r
+\r
+       THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+       WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+\r
+       Module Name:    Non-existing.c\r
+\r
+**/\r
+\r
+#include "../BaseLibInternals.h"\r
+\r
+VOID\r
+EFIAPI\r
+InternalX86DisablePaging64 (\r
+  IN      UINT16                    CodeSelector,\r
+  IN      UINT32                    EntryPoint,\r
+  IN      UINT32                    Context1,  OPTIONAL\r
+  IN      UINT32                    Context2,  OPTIONAL\r
+  IN      UINT32                    NewStack\r
+  )\r
+{\r
+  ASSERT (FALSE);\r
+}\r
diff --git a/MdePkg/Library/BaseLib/Ia32/RRotU64.asm b/MdePkg/Library/BaseLib/Ia32/RRotU64.asm
new file mode 100644 (file)
index 0000000..062e201
--- /dev/null
@@ -0,0 +1,41 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   RRotU64.asm\r
+;\r
+; Abstract:\r
+;\r
+;   64-bit right rotation for Ia32\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .686\r
+    .model  flat,C\r
+    .code\r
+\r
+InternalMathRRotU64 PROC    USES    ebx\r
+    mov     cl, [esp + 16]\r
+    mov     eax, [esp + 8]\r
+    mov     edx, [esp + 12]\r
+    shrd    ebx, eax, cl\r
+    shrd    eax, edx, cl\r
+    rol     ebx, cl\r
+    shrd    edx, ebx, cl\r
+    test    cl, 32\r
+    cmovnz  ecx, eax\r
+    cmovnz  eax, edx\r
+    cmovnz  edx, ecx\r
+    ret\r
+InternalMathRRotU64 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/RRotU64.s b/MdePkg/Library/BaseLib/Ia32/RRotU64.s
new file mode 100644 (file)
index 0000000..541e420
--- /dev/null
@@ -0,0 +1,43 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   RRotU64.asm\r
+#\r
+# Abstract:\r
+#\r
+#   64-bit right rotation for Ia32\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+.global _RRotU64\r
+    push    %ebx\r
+    movb    16(%esp),%cl\r
+    movl    8(%esp),%eax\r
+    movl    12(%esp),%edx\r
+    shrdl   %cl,%eax,%ebx\r
+    shrdl   %cl,%edx,%eax\r
+    roll    %cl,%ebx\r
+    shrdl   %cl,%ebx,%edx\r
+    testb   $32,%cl\r
+    cmovnz  %eax, %ecx\r
+    cmovnz  %edx, %eax\r
+    cmovnz  %ecx, %edx\r
+    pop     %ebx\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/RShiftU64.asm b/MdePkg/Library/BaseLib/Ia32/RShiftU64.asm
new file mode 100644 (file)
index 0000000..effbc55
--- /dev/null
@@ -0,0 +1,38 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   RShiftU64.asm\r
+;\r
+; Abstract:\r
+;\r
+;   64-bit logical right shift function for IA-32\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .686\r
+    .model  flat,C\r
+    .code\r
+\r
+InternalMathRShiftU64   PROC\r
+    mov     cl, [esp + 12]\r
+    xor     edx, edx\r
+    mov     eax, [esp + 8]\r
+    test    cl, 32\r
+    cmovz   edx, eax\r
+    cmovz   eax, [esp + 4]\r
+    shrd    eax, edx, cl\r
+    shr     edx, cl\r
+    ret\r
+InternalMathRShiftU64   ENDP\r
+\r
+    END
\ No newline at end of file
diff --git a/MdePkg/Library/BaseLib/Ia32/RShiftU64.s b/MdePkg/Library/BaseLib/Ia32/RShiftU64.s
new file mode 100644 (file)
index 0000000..5b681e3
--- /dev/null
@@ -0,0 +1,39 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   RShiftU64.asm\r
+#\r
+# Abstract:\r
+#\r
+#   64-bit logical right shift function for IA-32\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+.global _RShiftU64\r
+_RShiftU64: \r
+    movb    12(%esp),%cl\r
+    xorl    %edx,%edx\r
+    movl    8(%esp),%eax\r
+    testb   $32,%cl\r
+    cmovz   %eax, %edx\r
+    cmovz   4(%esp), %eax\r
+    shrdl   %cl,%edx,%eax\r
+    shrl    %cl,%edx\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadCr0.asm b/MdePkg/Library/BaseLib/Ia32/ReadCr0.asm
new file mode 100644 (file)
index 0000000..579cee2
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadCr0.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadCr0 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINTN\r
+; EFIAPI\r
+; AsmReadCr0 (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadCr0 PROC\r
+    mov     eax, cr0\r
+    ret\r
+_AsmReadCr0 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadCr0.s b/MdePkg/Library/BaseLib/Ia32/ReadCr0.s
new file mode 100644 (file)
index 0000000..3108b71
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadCr0.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadCr0 function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINTN\r
+# EFIAPI\r
+# AsmReadCr0 (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadCr0\r
+_AsmReadCr0: \r
+    movl    %cr0, %eax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadCr2.asm b/MdePkg/Library/BaseLib/Ia32/ReadCr2.asm
new file mode 100644 (file)
index 0000000..3e4a926
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadCr2.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadCr2 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINTN\r
+; EFIAPI\r
+; AsmReadCr2 (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadCr2 PROC\r
+    mov     eax, cr2\r
+    ret\r
+_AsmReadCr2 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadCr2.s b/MdePkg/Library/BaseLib/Ia32/ReadCr2.s
new file mode 100644 (file)
index 0000000..3ce287a
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadCr2.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadCr2 function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINTN\r
+# EFIAPI\r
+# AsmReadCr2 (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadCr2\r
+_AsmReadCr2: \r
+    movl    %cr2, %eax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadCr3.asm b/MdePkg/Library/BaseLib/Ia32/ReadCr3.asm
new file mode 100644 (file)
index 0000000..c24ded8
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadCr3.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadCr3 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINTN\r
+; EFIAPI\r
+; AsmReadCr3 (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadCr3 PROC\r
+    mov     eax, cr3\r
+    ret\r
+_AsmReadCr3 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadCr3.s b/MdePkg/Library/BaseLib/Ia32/ReadCr3.s
new file mode 100644 (file)
index 0000000..2bd63c7
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadCr3.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadCr3 function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINTN\r
+# EFIAPI\r
+# AsmReadCr3 (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadCr3\r
+_AsmReadCr3: \r
+    movl    %cr3, %eax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadCr4.asm b/MdePkg/Library/BaseLib/Ia32/ReadCr4.asm
new file mode 100644 (file)
index 0000000..258f37a
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadCr4.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadCr4 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .586p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINTN\r
+; EFIAPI\r
+; AsmReadCr4 (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadCr4 PROC\r
+    mov     eax, cr4\r
+    ret\r
+_AsmReadCr4 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadCr4.s b/MdePkg/Library/BaseLib/Ia32/ReadCr4.s
new file mode 100644 (file)
index 0000000..4d746d8
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadCr4.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadCr4 function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINTN\r
+# EFIAPI\r
+# AsmReadCr4 (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadCr4\r
+_AsmReadCr4: \r
+    movl    %cr4, %eax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadCs.asm b/MdePkg/Library/BaseLib/Ia32/ReadCs.asm
new file mode 100644 (file)
index 0000000..5972d66
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadCs.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadCs function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINT16\r
+; EFIAPI\r
+; AsmReadCs (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadCs  PROC\r
+    mov     ax, cs\r
+    ret\r
+_AsmReadCs  ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadCs.s b/MdePkg/Library/BaseLib/Ia32/ReadCs.s
new file mode 100644 (file)
index 0000000..66bf4b9
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadCs.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadCs function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINT16\r
+# EFIAPI\r
+# AsmReadCs (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadCs\r
+_AsmReadCs: \r
+    movw    %cs,%ax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr0.asm b/MdePkg/Library/BaseLib/Ia32/ReadDr0.asm
new file mode 100644 (file)
index 0000000..4da1dd8
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadDr0.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadDr0 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .586p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINTN\r
+; EFIAPI\r
+; AsmReadDr0 (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadDr0 PROC\r
+    mov     eax, dr0\r
+    ret\r
+_AsmReadDr0 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr0.s b/MdePkg/Library/BaseLib/Ia32/ReadDr0.s
new file mode 100644 (file)
index 0000000..00c521b
--- /dev/null
@@ -0,0 +1,40 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadDr0.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadDr0 function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINTN\r
+# EFIAPI\r
+# AsmReadDr0 (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadDr0\r
+_AsmReadDr0: \r
+    movl    %dr0, %eax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr1.asm b/MdePkg/Library/BaseLib/Ia32/ReadDr1.asm
new file mode 100644 (file)
index 0000000..8724dd2
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadDr1.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadDr1 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .586p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINTN\r
+; EFIAPI\r
+; AsmReadDr1 (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadDr1 PROC\r
+    mov     eax, dr1\r
+    ret\r
+_AsmReadDr1 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr1.s b/MdePkg/Library/BaseLib/Ia32/ReadDr1.s
new file mode 100644 (file)
index 0000000..81d0e54
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadDr1.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadDr1 function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINTN\r
+# EFIAPI\r
+# AsmReadDr1 (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadDr1\r
+_AsmReadDr1: \r
+    movl    %dr1, %eax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr2.asm b/MdePkg/Library/BaseLib/Ia32/ReadDr2.asm
new file mode 100644 (file)
index 0000000..9122d42
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadDr2.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadDr2 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .586p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINTN\r
+; EFIAPI\r
+; AsmReadDr2 (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadDr2 PROC\r
+    mov     eax, dr2\r
+    ret\r
+_AsmReadDr2 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr2.s b/MdePkg/Library/BaseLib/Ia32/ReadDr2.s
new file mode 100644 (file)
index 0000000..296fff6
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadDr2.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadDr2 function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINTN\r
+# EFIAPI\r
+# AsmReadDr2 (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadDr2\r
+_AsmReadDr2: \r
+    movl    %dr2, %eax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr3.asm b/MdePkg/Library/BaseLib/Ia32/ReadDr3.asm
new file mode 100644 (file)
index 0000000..7c1ee98
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadDr3.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadDr3 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .586p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINTN\r
+; EFIAPI\r
+; AsmReadDr3 (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadDr3 PROC\r
+    mov     eax, dr3\r
+    ret\r
+_AsmReadDr3 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr3.s b/MdePkg/Library/BaseLib/Ia32/ReadDr3.s
new file mode 100644 (file)
index 0000000..e99391d
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadDr3.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadDr3 function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINTN\r
+# EFIAPI\r
+# AsmReadDr3 (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadDr3\r
+_AsmReadDr3: \r
+    movl    %dr3, %eax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr4.asm b/MdePkg/Library/BaseLib/Ia32/ReadDr4.asm
new file mode 100644 (file)
index 0000000..0172455
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadDr4.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadDr4 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .586p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINTN\r
+; EFIAPI\r
+; AsmReadDr4 (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadDr4 PROC\r
+    DB      0fh, 21h, 0e0h\r
+    ret\r
+_AsmReadDr4 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr5.asm b/MdePkg/Library/BaseLib/Ia32/ReadDr5.asm
new file mode 100644 (file)
index 0000000..a95527e
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadDr5.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadDr5 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .586p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINTN\r
+; EFIAPI\r
+; AsmReadDr5 (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadDr5 PROC\r
+    DB      0fh, 21h, 0e8h\r
+    ret\r
+_AsmReadDr5 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr6.asm b/MdePkg/Library/BaseLib/Ia32/ReadDr6.asm
new file mode 100644 (file)
index 0000000..b2d9a3d
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadDr6.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadDr6 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .586p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINTN\r
+; EFIAPI\r
+; AsmReadDr6 (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadDr6 PROC\r
+    mov     eax, dr6\r
+    ret\r
+_AsmReadDr6 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr6.s b/MdePkg/Library/BaseLib/Ia32/ReadDr6.s
new file mode 100644 (file)
index 0000000..bdadd80
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadDr6.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadDr6 function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINTN\r
+# EFIAPI\r
+# AsmReadDr6 (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadDr6\r
+_AsmReadDr6: \r
+    movl    %dr6, %eax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr7.asm b/MdePkg/Library/BaseLib/Ia32/ReadDr7.asm
new file mode 100644 (file)
index 0000000..23924b1
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadDr7.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadDr7 function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .586p\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINTN\r
+; EFIAPI\r
+; AsmReadDr7 (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadDr7 PROC\r
+    mov     eax, dr7\r
+    ret\r
+_AsmReadDr7 ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDr7.s b/MdePkg/Library/BaseLib/Ia32/ReadDr7.s
new file mode 100644 (file)
index 0000000..cf213ca
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadDr7.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadDr7 function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINTN\r
+# EFIAPI\r
+# AsmReadDr7 (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadDr7\r
+_AsmReadDr7: \r
+    movl    %dr7, %eax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDs.asm b/MdePkg/Library/BaseLib/Ia32/ReadDs.asm
new file mode 100644 (file)
index 0000000..6992766
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadDs.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadDs function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINT16\r
+; EFIAPI\r
+; AsmReadDs (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadDs  PROC\r
+    mov     ax, ds\r
+    ret\r
+_AsmReadDs  ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadDs.s b/MdePkg/Library/BaseLib/Ia32/ReadDs.s
new file mode 100644 (file)
index 0000000..ca1e379
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadDs.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadDs function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINT16\r
+# EFIAPI\r
+# AsmReadDs (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadDs\r
+_AsmReadDs: \r
+    movw    %ds,%ax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadEflags.asm b/MdePkg/Library/BaseLib/Ia32/ReadEflags.asm
new file mode 100644 (file)
index 0000000..365b1de
--- /dev/null
@@ -0,0 +1,41 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadEflags.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadEflags function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINTN\r
+; EFIAPI\r
+; AsmReadEflags (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadEflags  PROC\r
+    pushfd\r
+    pop     eax\r
+    ret\r
+_AsmReadEflags  ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadEflags.s b/MdePkg/Library/BaseLib/Ia32/ReadEflags.s
new file mode 100644 (file)
index 0000000..a70a209
--- /dev/null
@@ -0,0 +1,42 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadEflags.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadEflags function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINTN\r
+# EFIAPI\r
+# AsmReadEflags (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadEflags\r
+_AsmReadEflags: \r
+    pushfl\r
+    popl    %eax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadEs.asm b/MdePkg/Library/BaseLib/Ia32/ReadEs.asm
new file mode 100644 (file)
index 0000000..0ced46a
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadEs.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadEs function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINT16\r
+; EFIAPI\r
+; AsmReadEs (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadEs  PROC\r
+    mov     ax, es\r
+    ret\r
+_AsmReadEs  ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadEs.s b/MdePkg/Library/BaseLib/Ia32/ReadEs.s
new file mode 100644 (file)
index 0000000..69727b5
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadEs.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadEs function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINT16\r
+# EFIAPI\r
+# AsmReadEs (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadEs\r
+_AsmReadEs: \r
+    movw    %es,%ax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadFs.asm b/MdePkg/Library/BaseLib/Ia32/ReadFs.asm
new file mode 100644 (file)
index 0000000..f1790c6
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadFs.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadFs function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINT16\r
+; EFIAPI\r
+; AsmReadFs (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadFs  PROC\r
+    mov     ax, fs\r
+    ret\r
+_AsmReadFs  ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadFs.s b/MdePkg/Library/BaseLib/Ia32/ReadFs.s
new file mode 100644 (file)
index 0000000..7f4fdfa
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadFs.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadFs function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINT16\r
+# EFIAPI\r
+# AsmReadFs (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadFs\r
+_AsmReadFs: \r
+    movw    %fs,%ax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadGdtr.asm b/MdePkg/Library/BaseLib/Ia32/ReadGdtr.asm
new file mode 100644 (file)
index 0000000..beacb62
--- /dev/null
@@ -0,0 +1,41 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadGdtr.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadGdtr function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat,C\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; VOID\r
+; EFIAPI\r
+; InternalX86ReadGdtr (\r
+;   OUT IA32_DESCRIPTOR  *Gdtr\r
+;   );\r
+;------------------------------------------------------------------------------\r
+InternalX86ReadGdtr   PROC\r
+    mov     eax, [esp + 4]\r
+    sgdt    fword ptr [eax]\r
+    ret\r
+InternalX86ReadGdtr   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadGdtr.s b/MdePkg/Library/BaseLib/Ia32/ReadGdtr.s
new file mode 100644 (file)
index 0000000..f03a056
--- /dev/null
@@ -0,0 +1,42 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadGdtr.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadGdtr function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# VOID\r
+# EFIAPI\r
+# AsmReadGdtr (\r
+#   OUT IA32_DESCRIPTOR  *Gdtr\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadGdtr\r
+_AsmReadGdtr: \r
+    movl    4(%esp),%eax\r
+    sgdt    (%eax)\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadGs.asm b/MdePkg/Library/BaseLib/Ia32/ReadGs.asm
new file mode 100644 (file)
index 0000000..1de0ebf
--- /dev/null
@@ -0,0 +1,40 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadGs.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadGs function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat\r
+    .code\r
+\r
+;------------------------------------------------------------------------------\r
+; UINT16\r
+; EFIAPI\r
+; AsmReadGs (\r
+;   VOID\r
+;   );\r
+;------------------------------------------------------------------------------\r
+_AsmReadGs  PROC\r
+    mov     ax, gs\r
+    ret\r
+_AsmReadGs  ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadGs.s b/MdePkg/Library/BaseLib/Ia32/ReadGs.s
new file mode 100644 (file)
index 0000000..0d88a60
--- /dev/null
@@ -0,0 +1,41 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r
+# are licensed and made available under the terms and conditions of the BSD License\r
+# which accompanies this distribution.  The full text of the license may be found at\r
+# http://opensource.org/licenses/bsd-license.php\r
+#\r
+# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+#\r
+# Module Name:\r
+#\r
+#   ReadGs.Asm\r
+#\r
+# Abstract:\r
+#\r
+#   AsmReadGs function\r
+#\r
+# Notes:\r
+#\r
+#------------------------------------------------------------------------------\r
+\r
+\r
+\r
+     \r
+\r
+#------------------------------------------------------------------------------\r
+# UINT16\r
+# EFIAPI\r
+# AsmReadGs (\r
+#   VOID\r
+#   );\r
+#------------------------------------------------------------------------------\r
+.global _AsmReadGs\r
+_AsmReadGs: \r
+    movw    %gs,%ax\r
+    ret\r
+\r
+\r
+\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadIdtr.asm b/MdePkg/Library/BaseLib/Ia32/ReadIdtr.asm
new file mode 100644 (file)
index 0000000..95158be
--- /dev/null
@@ -0,0 +1,34 @@
+;------------------------------------------------------------------------------\r
+;\r
+; Copyright (c) 2006, Intel Corporation\r
+; All rights reserved. This program and the accompanying materials\r
+; are licensed and made available under the terms and conditions of the BSD License\r
+; which accompanies this distribution.  The full text of the license may be found at\r
+; http://opensource.org/licenses/bsd-license.php\r
+;\r
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,\r
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.\r
+;\r
+; Module Name:\r
+;\r
+;   ReadIdtr.Asm\r
+;\r
+; Abstract:\r
+;\r
+;   AsmReadIdtr function\r
+;\r
+; Notes:\r
+;\r
+;------------------------------------------------------------------------------\r
+\r
+    .386\r
+    .model  flat,C\r
+    .code\r
+\r
+InternalX86ReadIdtr   PROC\r
+    mov     eax, [esp + 4]\r
+    sidt    fword ptr [eax]\r
+    ret\r
+InternalX86ReadIdtr   ENDP\r
+\r
+    END\r
diff --git a/MdePkg/Library/BaseLib/Ia32/ReadIdtr.s b/MdePkg/Library/BaseLib/Ia32/ReadIdtr.s
new file mode 100644 (file)
index 0000000..fa72d3b
--- /dev/null
@@ -0,0 +1,42 @@
+#------------------------------------------------------------------------------\r
+#\r
+# Copyright (c) 2006, Intel Corporation\r
+# All rights reserved. This program and the accompanying materials\r