Fix GCC build issue
authormdkinney <mdkinney@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 4 Oct 2006 23:06:00 +0000 (23:06 +0000)
committermdkinney <mdkinney@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 4 Oct 2006 23:06:00 +0000 (23:06 +0000)
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

index 7dadaa2..5d24dcf 100644 (file)
@@ -1,4 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>\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
 <ModuleSurfaceArea xmlns="http://www.TianoCore.org/2006/Edk2.0">\r
   <MsaHeader>\r
     <ModuleName>BaseLib</ModuleName>\r
@@ -73,6 +83,7 @@
     <Filename>SwapBytes32.c</Filename>\r
     <Filename>SwapBytes64.c</Filename>\r
     <Filename>SwitchStack.c</Filename>\r
+    \r
     <Filename SupArchList="IA32">x86DisablePaging32.c</Filename>\r
     <Filename SupArchList="IA32">x86DisablePaging64.c</Filename>\r
     <Filename SupArchList="IA32">x86EnablePaging32.c</Filename>\r
     <Filename SupArchList="IA32">Ia32/Non-existing.c</Filename>\r
     <Filename SupArchList="IA32">Ia32/InternalSwitchStack.c</Filename>\r
 \r
-    <Filename SupArchList="IA32">Ia32/ARShiftU64.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/CpuBreakpoint.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/CpuFlushTlb.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/CpuSleep.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/CpuId.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/CpuIdEx.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/CpuPause.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/DisableInterrupts.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/DisablePaging32.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/DivU64x32.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/DivU64x32Remainder.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/DivU64x64Remainder.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/DivS64x64Remainder.c</Filename>\r
+    <!-- GCC assembly code is with .S extension -->\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/LShiftU64.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/RShiftU64.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ARShiftU64.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/LRotU64.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/RRotU64.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/MultU64x32.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/MultU64x64.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/DivU64x32.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ModU64x32.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/DivU64x32Remainder.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/DivU64x64Remainder.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/SwapBytes64.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/SetJump.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/LongJump.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/CpuId.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/CpuIdEx.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadEflags.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadMsr64.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteMsr64.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadCr0.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadCr2.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadCr3.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadCr4.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteCr0.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteCr2.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteCr3.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteCr4.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadDr0.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadDr1.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadDr2.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadDr3.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadDr4.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadDr5.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadDr6.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadDr7.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteDr0.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteDr1.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteDr2.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteDr3.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteDr4.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteDr5.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteDr6.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteDr7.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadCs.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadDs.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadEs.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadFs.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadGs.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadSs.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadTr.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadGdtr.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteGdtr.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadIdtr.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteIdtr.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadLdtr.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteLdtr.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/FxSave.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/FxRestore.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadMm0.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadMm1.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadMm2.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadMm3.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadMm4.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadMm5.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadMm6.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadMm7.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteMm0.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteMm1.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteMm2.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteMm3.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteMm4.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteMm5.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteMm6.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/WriteMm7.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadTsc.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/ReadPmc.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/Monitor.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/Mwait.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/EnablePaging32.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/DisablePaging32.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/EnablePaging64.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/Wbinvd.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/Invd.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/FlushCacheLine.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/InterlockedIncrement.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/InterlockedDecrement.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/InterlockedCompareExchange32.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/InterlockedCompareExchange64.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/EnableInterrupts.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/DisableInterrupts.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/EnableDisableInterrupts.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/CpuSleep.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/CpuPause.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/CpuBreakpoint.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/CpuFlushTlb.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="GCC">Ia32/Thunk16.S</Filename>\r
+    \r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ARShiftU64.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/CpuBreakpoint.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/CpuFlushTlb.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/CpuSleep.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/CpuId.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/CpuIdEx.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/CpuPause.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/DisableInterrupts.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/DisablePaging32.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/DivU64x32.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/DivU64x32Remainder.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/DivU64x64Remainder.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/DivS64x64Remainder.c</Filename>\r
 \r
-    <Filename SupArchList="IA32">Ia32/EnableDisableInterrupts.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/EnableInterrupts.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/EnablePaging32.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/EnablePaging64.asm</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/EnableDisableInterrupts.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/EnableInterrupts.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/EnablePaging32.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/EnablePaging64.asm</Filename>\r
     \r
-    <Filename SupArchList="IA32">Ia32/FlushCacheLine.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/FlushCacheLine.c</Filename>\r
 \r
-    <Filename SupArchList="IA32">Ia32/FxSave.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/FxRestore.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/FxSave.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/FxRestore.c</Filename>\r
 \r
-    <Filename SupArchList="IA32">Ia32/InterlockedIncrement.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/InterlockedDecrement.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/InterlockedCompareExchange32.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/InterlockedCompareExchange64.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/Invd.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/InterlockedIncrement.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/InterlockedDecrement.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/InterlockedCompareExchange32.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/InterlockedCompareExchange64.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/Invd.c</Filename>\r
     \r
-    <Filename SupArchList="IA32">Ia32/LongJump.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/LRotU64.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/LShiftU64.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/LongJump.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/LRotU64.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/LShiftU64.c</Filename>\r
 \r
-    <Filename SupArchList="IA32">Ia32/MultU64x32.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/MultU64x64.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ModU64x32.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/Monitor.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/Mwait.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/MultU64x32.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/MultU64x64.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ModU64x32.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/Monitor.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/Mwait.c</Filename>\r
 \r
-    <Filename SupArchList="IA32">Ia32/ReadCr0.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadCr2.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadCr3.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadCr4.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDr0.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDr1.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDr2.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDr3.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDr4.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDr5.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDr6.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDr7.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadEflags.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMm0.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMm1.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMm2.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMm3.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMm4.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMm5.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMm6.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMm7.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMsr64.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadCs.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDs.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadEs.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadFs.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadGs.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadSs.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadTr.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadGdtr.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadIdtr.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadLdtr.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadTsc.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadPmc.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/RShiftU64.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/RRotU64.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadCr0.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadCr2.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadCr3.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadCr4.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadDr0.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadDr1.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadDr2.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadDr3.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadDr4.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadDr5.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadDr6.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadDr7.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadEflags.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadMm0.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadMm1.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadMm2.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadMm3.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadMm4.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadMm5.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadMm6.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadMm7.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadMsr64.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadCs.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadDs.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadEs.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadFs.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadGs.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadSs.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadTr.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadGdtr.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadIdtr.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadLdtr.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadTsc.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/ReadPmc.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/RShiftU64.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/RRotU64.c</Filename>\r
 \r
-    <Filename SupArchList="IA32">Ia32/SetJump.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/SwapBytes64.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/Thunk16.asm</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/SetJump.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/SwapBytes64.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/Thunk16.asm</Filename>\r
 \r
-    <Filename SupArchList="IA32">Ia32/WriteMsr64.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteCr0.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteCr2.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteCr3.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteCr4.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteDr0.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteDr1.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteDr2.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteDr3.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteDr4.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteDr5.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteDr6.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteDr7.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteGdtr.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteIdtr.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteLdtr.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMm0.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMm1.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMm2.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMm3.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMm4.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMm5.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMm6.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMm7.c</Filename>\r
-    <Filename SupArchList="IA32">Ia32/Wbinvd.c</Filename>\r
-    \r
-    <!-- GCC assembly code is with .S extension -->\r
-    <Filename SupArchList="IA32">Ia32/LShiftU64.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/RShiftU64.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ARShiftU64.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/LRotU64.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/RRotU64.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/MultU64x32.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/MultU64x64.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/DivU64x32.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ModU64x32.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/DivU64x32Remainder.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/DivU64x64Remainder.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/SwapBytes64.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/SetJump.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/LongJump.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/CpuId.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/CpuIdEx.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadEflags.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMsr64.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMsr64.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadCr0.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadCr2.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadCr3.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadCr4.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteCr0.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteCr2.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteCr3.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteCr4.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDr0.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDr1.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDr2.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDr3.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDr4.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDr5.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDr6.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDr7.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteDr0.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteDr1.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteDr2.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteDr3.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteDr4.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteDr5.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteDr6.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteDr7.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadCs.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadDs.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadEs.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadFs.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadGs.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadSs.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadTr.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadGdtr.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteGdtr.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadIdtr.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteIdtr.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadLdtr.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteLdtr.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/FxSave.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/FxRestore.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMm0.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMm1.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMm2.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMm3.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMm4.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMm5.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMm6.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadMm7.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMm0.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMm1.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMm2.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMm3.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMm4.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMm5.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMm6.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/WriteMm7.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadTsc.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/ReadPmc.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/Monitor.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/Mwait.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/EnablePaging32.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/DisablePaging32.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/EnablePaging64.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/Wbinvd.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/Invd.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/FlushCacheLine.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/InterlockedIncrement.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/InterlockedDecrement.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/InterlockedCompareExchange32.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/InterlockedCompareExchange64.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/EnableInterrupts.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/DisableInterrupts.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/EnableDisableInterrupts.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/CpuSleep.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/CpuPause.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/CpuBreakpoint.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/CpuFlushTlb.S</Filename>\r
-    <Filename SupArchList="IA32">Ia32/Thunk16.S</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteMsr64.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteCr0.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteCr2.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteCr3.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteCr4.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteDr0.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteDr1.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteDr2.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteDr3.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteDr4.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteDr5.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteDr6.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteDr7.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteGdtr.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteIdtr.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteLdtr.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteMm0.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteMm1.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteMm2.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteMm3.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteMm4.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteMm5.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteMm6.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/WriteMm7.c</Filename>\r
+    <Filename SupArchList="IA32" ToolChainFamily="MSFT">Ia32/Wbinvd.c</Filename>\r
+                                \r
     <Filename SupArchList="X64">x86DisablePaging32.c</Filename>\r
     <Filename SupArchList="X64">x86DisablePaging64.c</Filename>\r
     <Filename SupArchList="X64">x86EnablePaging32.c</Filename>\r
     <Filename SupArchList="X64">X64/CpuId.asm</Filename>\r
     <Filename SupArchList="X64">X64/CpuIdEx.asm</Filename>\r
     <Filename SupArchList="X64">X64/ReadEflags.asm</Filename>\r
-    <Filename SupArchList="X64">X64/ReadMsr64.asm</Filename>\r
-    <Filename SupArchList="X64">X64/WriteMsr64.asm</Filename>\r
+    <Filename SupArchList="X64">X64/ReadMsr64.c</Filename>\r
+    <Filename SupArchList="X64">X64/WriteMsr64.c</Filename>\r
     <Filename SupArchList="X64">X64/ReadCr0.asm</Filename>\r
     <Filename SupArchList="X64">X64/ReadCr2.asm</Filename>\r
     <Filename SupArchList="X64">X64/ReadCr3.asm</Filename>\r
     <Filename SupArchList="X64">X64/Wbinvd.asm</Filename>\r
     <Filename SupArchList="X64">X64/Invd.asm</Filename>\r
     <Filename SupArchList="X64">X64/FlushCacheLine.asm</Filename>\r
-    <Filename SupArchList="X64">X64/InterlockedIncrement.asm</Filename>\r
-    <Filename SupArchList="X64">X64/InterlockedDecrement.asm</Filename>\r
+    <Filename SupArchList="X64">X64/InterlockedIncrement.c</Filename>\r
+    <Filename SupArchList="X64">X64/InterlockedDecrement.c</Filename>\r
     <Filename SupArchList="X64">X64/InterlockedCompareExchange32.asm</Filename>\r
     <Filename SupArchList="X64">X64/InterlockedCompareExchange64.asm</Filename>\r
     <Filename SupArchList="X64">X64/EnableInterrupts.asm</Filename>\r
     <Filename SupArchList="X64">X64/EnableDisableInterrupts.asm</Filename>\r
     <Filename SupArchList="X64">X64/CpuSleep.asm</Filename>\r
     <Filename SupArchList="X64">X64/CpuPause.asm</Filename>\r
-    <Filename SupArchList="X64">X64/CpuBreakpoint.asm</Filename>\r
+    <Filename SupArchList="X64">X64/CpuBreakpoint.c</Filename>\r
     <Filename SupArchList="X64">X64/CpuFlushTlb.asm</Filename>\r
     <Filename SupArchList="X64">X64/Thunk16.asm</Filename>\r
+    \r
     <Filename SupArchList="IPF">Math64.c</Filename>\r
     <Filename SupArchList="IPF">Ipf/asm.h</Filename>\r
     <Filename SupArchList="IPF">Ipf/ia_64gen.h</Filename>\r
     <Filename SupArchList="IPF">Ipf/CpuFlushTlb.s</Filename>\r
     <Filename SupArchList="IPF">Ipf/GetInterruptState.s</Filename>\r
     <Filename SupArchList="IPF">Ipf/Non-existing.c</Filename>\r
+    \r
     <Filename SupArchList="EBC">Math64.c</Filename>\r
     <Filename SupArchList="EBC">Unaligned.c</Filename>\r
     <Filename SupArchList="EBC">Ebc/SwitchStack.c</Filename>\r