From d8e5077483b39188d88a254e0164d19c706edb77 Mon Sep 17 00:00:00 2001 From: mdkinney Date: Wed, 4 Oct 2006 23:06:00 +0000 Subject: [PATCH] Fix GCC build issue Take advantage of some intrinsics from MSFT build tools git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1661 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Library/BaseLib/BaseLib.msa | 414 +++++++++++++++-------------- 1 file changed, 214 insertions(+), 200 deletions(-) diff --git a/MdePkg/Library/BaseLib/BaseLib.msa b/MdePkg/Library/BaseLib/BaseLib.msa index 7dadaa23e7..5d24dcf425 100644 --- a/MdePkg/Library/BaseLib/BaseLib.msa +++ b/MdePkg/Library/BaseLib/BaseLib.msa @@ -1,4 +1,14 @@  + BaseLib @@ -73,6 +83,7 @@ SwapBytes32.c SwapBytes64.c SwitchStack.c + x86DisablePaging32.c x86DisablePaging64.c x86EnablePaging32.c @@ -91,210 +102,211 @@ Ia32/Non-existing.c Ia32/InternalSwitchStack.c - Ia32/ARShiftU64.c - Ia32/CpuBreakpoint.c - Ia32/CpuFlushTlb.c - Ia32/CpuSleep.c - Ia32/CpuId.c - Ia32/CpuIdEx.c - Ia32/CpuPause.c - Ia32/DisableInterrupts.c - Ia32/DisablePaging32.c - Ia32/DivU64x32.c - Ia32/DivU64x32Remainder.c - Ia32/DivU64x64Remainder.c - Ia32/DivS64x64Remainder.c + + Ia32/LShiftU64.S + Ia32/RShiftU64.S + Ia32/ARShiftU64.S + Ia32/LRotU64.S + Ia32/RRotU64.S + Ia32/MultU64x32.S + Ia32/MultU64x64.S + Ia32/DivU64x32.S + Ia32/ModU64x32.S + Ia32/DivU64x32Remainder.S + Ia32/DivU64x64Remainder.S + Ia32/SwapBytes64.S + Ia32/SetJump.S + Ia32/LongJump.S + Ia32/CpuId.S + Ia32/CpuIdEx.S + Ia32/ReadEflags.S + Ia32/ReadMsr64.S + Ia32/WriteMsr64.S + Ia32/ReadCr0.S + Ia32/ReadCr2.S + Ia32/ReadCr3.S + Ia32/ReadCr4.S + Ia32/WriteCr0.S + Ia32/WriteCr2.S + Ia32/WriteCr3.S + Ia32/WriteCr4.S + Ia32/ReadDr0.S + Ia32/ReadDr1.S + Ia32/ReadDr2.S + Ia32/ReadDr3.S + Ia32/ReadDr4.S + Ia32/ReadDr5.S + Ia32/ReadDr6.S + Ia32/ReadDr7.S + Ia32/WriteDr0.S + Ia32/WriteDr1.S + Ia32/WriteDr2.S + Ia32/WriteDr3.S + Ia32/WriteDr4.S + Ia32/WriteDr5.S + Ia32/WriteDr6.S + Ia32/WriteDr7.S + Ia32/ReadCs.S + Ia32/ReadDs.S + Ia32/ReadEs.S + Ia32/ReadFs.S + Ia32/ReadGs.S + Ia32/ReadSs.S + Ia32/ReadTr.S + Ia32/ReadGdtr.S + Ia32/WriteGdtr.S + Ia32/ReadIdtr.S + Ia32/WriteIdtr.S + Ia32/ReadLdtr.S + Ia32/WriteLdtr.S + Ia32/FxSave.S + Ia32/FxRestore.S + Ia32/ReadMm0.S + Ia32/ReadMm1.S + Ia32/ReadMm2.S + Ia32/ReadMm3.S + Ia32/ReadMm4.S + Ia32/ReadMm5.S + Ia32/ReadMm6.S + Ia32/ReadMm7.S + Ia32/WriteMm0.S + Ia32/WriteMm1.S + Ia32/WriteMm2.S + Ia32/WriteMm3.S + Ia32/WriteMm4.S + Ia32/WriteMm5.S + Ia32/WriteMm6.S + Ia32/WriteMm7.S + Ia32/ReadTsc.S + Ia32/ReadPmc.S + Ia32/Monitor.S + Ia32/Mwait.S + Ia32/EnablePaging32.S + Ia32/DisablePaging32.S + Ia32/EnablePaging64.S + Ia32/Wbinvd.S + Ia32/Invd.S + Ia32/FlushCacheLine.S + Ia32/InterlockedIncrement.S + Ia32/InterlockedDecrement.S + Ia32/InterlockedCompareExchange32.S + Ia32/InterlockedCompareExchange64.S + Ia32/EnableInterrupts.S + Ia32/DisableInterrupts.S + Ia32/EnableDisableInterrupts.S + Ia32/CpuSleep.S + Ia32/CpuPause.S + Ia32/CpuBreakpoint.S + Ia32/CpuFlushTlb.S + Ia32/Thunk16.S + + Ia32/ARShiftU64.c + Ia32/CpuBreakpoint.c + Ia32/CpuFlushTlb.c + Ia32/CpuSleep.c + Ia32/CpuId.c + Ia32/CpuIdEx.c + Ia32/CpuPause.c + Ia32/DisableInterrupts.c + Ia32/DisablePaging32.c + Ia32/DivU64x32.c + Ia32/DivU64x32Remainder.c + Ia32/DivU64x64Remainder.c + Ia32/DivS64x64Remainder.c - Ia32/EnableDisableInterrupts.c - Ia32/EnableInterrupts.c - Ia32/EnablePaging32.c - Ia32/EnablePaging64.asm + Ia32/EnableDisableInterrupts.c + Ia32/EnableInterrupts.c + Ia32/EnablePaging32.c + Ia32/EnablePaging64.asm - Ia32/FlushCacheLine.c + Ia32/FlushCacheLine.c - Ia32/FxSave.c - Ia32/FxRestore.c + Ia32/FxSave.c + Ia32/FxRestore.c - Ia32/InterlockedIncrement.c - Ia32/InterlockedDecrement.c - Ia32/InterlockedCompareExchange32.c - Ia32/InterlockedCompareExchange64.c - Ia32/Invd.c + Ia32/InterlockedIncrement.c + Ia32/InterlockedDecrement.c + Ia32/InterlockedCompareExchange32.c + Ia32/InterlockedCompareExchange64.c + Ia32/Invd.c - Ia32/LongJump.c - Ia32/LRotU64.c - Ia32/LShiftU64.c + Ia32/LongJump.c + Ia32/LRotU64.c + Ia32/LShiftU64.c - Ia32/MultU64x32.c - Ia32/MultU64x64.c - Ia32/ModU64x32.c - Ia32/Monitor.c - Ia32/Mwait.c + Ia32/MultU64x32.c + Ia32/MultU64x64.c + Ia32/ModU64x32.c + Ia32/Monitor.c + Ia32/Mwait.c - Ia32/ReadCr0.c - Ia32/ReadCr2.c - Ia32/ReadCr3.c - Ia32/ReadCr4.c - Ia32/ReadDr0.c - Ia32/ReadDr1.c - Ia32/ReadDr2.c - Ia32/ReadDr3.c - Ia32/ReadDr4.c - Ia32/ReadDr5.c - Ia32/ReadDr6.c - Ia32/ReadDr7.c - Ia32/ReadEflags.c - Ia32/ReadMm0.c - Ia32/ReadMm1.c - Ia32/ReadMm2.c - Ia32/ReadMm3.c - Ia32/ReadMm4.c - Ia32/ReadMm5.c - Ia32/ReadMm6.c - Ia32/ReadMm7.c - Ia32/ReadMsr64.c - Ia32/ReadCs.c - Ia32/ReadDs.c - Ia32/ReadEs.c - Ia32/ReadFs.c - Ia32/ReadGs.c - Ia32/ReadSs.c - Ia32/ReadTr.c - Ia32/ReadGdtr.c - Ia32/ReadIdtr.c - Ia32/ReadLdtr.c - Ia32/ReadTsc.c - Ia32/ReadPmc.c - Ia32/RShiftU64.c - Ia32/RRotU64.c + Ia32/ReadCr0.c + Ia32/ReadCr2.c + Ia32/ReadCr3.c + Ia32/ReadCr4.c + Ia32/ReadDr0.c + Ia32/ReadDr1.c + Ia32/ReadDr2.c + Ia32/ReadDr3.c + Ia32/ReadDr4.c + Ia32/ReadDr5.c + Ia32/ReadDr6.c + Ia32/ReadDr7.c + Ia32/ReadEflags.c + Ia32/ReadMm0.c + Ia32/ReadMm1.c + Ia32/ReadMm2.c + Ia32/ReadMm3.c + Ia32/ReadMm4.c + Ia32/ReadMm5.c + Ia32/ReadMm6.c + Ia32/ReadMm7.c + Ia32/ReadMsr64.c + Ia32/ReadCs.c + Ia32/ReadDs.c + Ia32/ReadEs.c + Ia32/ReadFs.c + Ia32/ReadGs.c + Ia32/ReadSs.c + Ia32/ReadTr.c + Ia32/ReadGdtr.c + Ia32/ReadIdtr.c + Ia32/ReadLdtr.c + Ia32/ReadTsc.c + Ia32/ReadPmc.c + Ia32/RShiftU64.c + Ia32/RRotU64.c - Ia32/SetJump.c - Ia32/SwapBytes64.c - Ia32/Thunk16.asm + Ia32/SetJump.c + Ia32/SwapBytes64.c + Ia32/Thunk16.asm - Ia32/WriteMsr64.c - Ia32/WriteCr0.c - Ia32/WriteCr2.c - Ia32/WriteCr3.c - Ia32/WriteCr4.c - Ia32/WriteDr0.c - Ia32/WriteDr1.c - Ia32/WriteDr2.c - Ia32/WriteDr3.c - Ia32/WriteDr4.c - Ia32/WriteDr5.c - Ia32/WriteDr6.c - Ia32/WriteDr7.c - Ia32/WriteGdtr.c - Ia32/WriteIdtr.c - Ia32/WriteLdtr.c - Ia32/WriteMm0.c - Ia32/WriteMm1.c - Ia32/WriteMm2.c - Ia32/WriteMm3.c - Ia32/WriteMm4.c - Ia32/WriteMm5.c - Ia32/WriteMm6.c - Ia32/WriteMm7.c - Ia32/Wbinvd.c - - - Ia32/LShiftU64.S - Ia32/RShiftU64.S - Ia32/ARShiftU64.S - Ia32/LRotU64.S - Ia32/RRotU64.S - Ia32/MultU64x32.S - Ia32/MultU64x64.S - Ia32/DivU64x32.S - Ia32/ModU64x32.S - Ia32/DivU64x32Remainder.S - Ia32/DivU64x64Remainder.S - Ia32/SwapBytes64.S - Ia32/SetJump.S - Ia32/LongJump.S - Ia32/CpuId.S - Ia32/CpuIdEx.S - Ia32/ReadEflags.S - Ia32/ReadMsr64.S - Ia32/WriteMsr64.S - Ia32/ReadCr0.S - Ia32/ReadCr2.S - Ia32/ReadCr3.S - Ia32/ReadCr4.S - Ia32/WriteCr0.S - Ia32/WriteCr2.S - Ia32/WriteCr3.S - Ia32/WriteCr4.S - Ia32/ReadDr0.S - Ia32/ReadDr1.S - Ia32/ReadDr2.S - Ia32/ReadDr3.S - Ia32/ReadDr4.S - Ia32/ReadDr5.S - Ia32/ReadDr6.S - Ia32/ReadDr7.S - Ia32/WriteDr0.S - Ia32/WriteDr1.S - Ia32/WriteDr2.S - Ia32/WriteDr3.S - Ia32/WriteDr4.S - Ia32/WriteDr5.S - Ia32/WriteDr6.S - Ia32/WriteDr7.S - Ia32/ReadCs.S - Ia32/ReadDs.S - Ia32/ReadEs.S - Ia32/ReadFs.S - Ia32/ReadGs.S - Ia32/ReadSs.S - Ia32/ReadTr.S - Ia32/ReadGdtr.S - Ia32/WriteGdtr.S - Ia32/ReadIdtr.S - Ia32/WriteIdtr.S - Ia32/ReadLdtr.S - Ia32/WriteLdtr.S - Ia32/FxSave.S - Ia32/FxRestore.S - Ia32/ReadMm0.S - Ia32/ReadMm1.S - Ia32/ReadMm2.S - Ia32/ReadMm3.S - Ia32/ReadMm4.S - Ia32/ReadMm5.S - Ia32/ReadMm6.S - Ia32/ReadMm7.S - Ia32/WriteMm0.S - Ia32/WriteMm1.S - Ia32/WriteMm2.S - Ia32/WriteMm3.S - Ia32/WriteMm4.S - Ia32/WriteMm5.S - Ia32/WriteMm6.S - Ia32/WriteMm7.S - Ia32/ReadTsc.S - Ia32/ReadPmc.S - Ia32/Monitor.S - Ia32/Mwait.S - Ia32/EnablePaging32.S - Ia32/DisablePaging32.S - Ia32/EnablePaging64.S - Ia32/Wbinvd.S - Ia32/Invd.S - Ia32/FlushCacheLine.S - Ia32/InterlockedIncrement.S - Ia32/InterlockedDecrement.S - Ia32/InterlockedCompareExchange32.S - Ia32/InterlockedCompareExchange64.S - Ia32/EnableInterrupts.S - Ia32/DisableInterrupts.S - Ia32/EnableDisableInterrupts.S - Ia32/CpuSleep.S - Ia32/CpuPause.S - Ia32/CpuBreakpoint.S - Ia32/CpuFlushTlb.S - Ia32/Thunk16.S + Ia32/WriteMsr64.c + Ia32/WriteCr0.c + Ia32/WriteCr2.c + Ia32/WriteCr3.c + Ia32/WriteCr4.c + Ia32/WriteDr0.c + Ia32/WriteDr1.c + Ia32/WriteDr2.c + Ia32/WriteDr3.c + Ia32/WriteDr4.c + Ia32/WriteDr5.c + Ia32/WriteDr6.c + Ia32/WriteDr7.c + Ia32/WriteGdtr.c + Ia32/WriteIdtr.c + Ia32/WriteLdtr.c + Ia32/WriteMm0.c + Ia32/WriteMm1.c + Ia32/WriteMm2.c + Ia32/WriteMm3.c + Ia32/WriteMm4.c + Ia32/WriteMm5.c + Ia32/WriteMm6.c + Ia32/WriteMm7.c + Ia32/Wbinvd.c + x86DisablePaging32.c x86DisablePaging64.c x86EnablePaging32.c @@ -318,8 +330,8 @@ X64/CpuId.asm X64/CpuIdEx.asm X64/ReadEflags.asm - X64/ReadMsr64.asm - X64/WriteMsr64.asm + X64/ReadMsr64.c + X64/WriteMsr64.c X64/ReadCr0.asm X64/ReadCr2.asm X64/ReadCr3.asm @@ -384,8 +396,8 @@ X64/Wbinvd.asm X64/Invd.asm X64/FlushCacheLine.asm - X64/InterlockedIncrement.asm - X64/InterlockedDecrement.asm + X64/InterlockedIncrement.c + X64/InterlockedDecrement.c X64/InterlockedCompareExchange32.asm X64/InterlockedCompareExchange64.asm X64/EnableInterrupts.asm @@ -393,9 +405,10 @@ X64/EnableDisableInterrupts.asm X64/CpuSleep.asm X64/CpuPause.asm - X64/CpuBreakpoint.asm + X64/CpuBreakpoint.c X64/CpuFlushTlb.asm X64/Thunk16.asm + Math64.c Ipf/asm.h Ipf/ia_64gen.h @@ -412,6 +425,7 @@ Ipf/CpuFlushTlb.s Ipf/GetInterruptState.s Ipf/Non-existing.c + Math64.c Unaligned.c Ebc/SwitchStack.c -- 2.39.2