Permalink
Browse files

Merge pull request #429 from tgiphil/master

Fixed IDE
  • Loading branch information...
tgiphil committed Sep 27, 2017
2 parents 01b17cf + a9e9faa commit 4f17f33c60fa9281123358df2c03827471014e27
Showing with 2,201 additions and 1,410 deletions.
  1. +19 −17 Source/MOSA.sln
  2. +1 −1 Source/Mosa.BootLoader.x86/Boot.cs
  3. +0 −3 Source/Mosa.ClassLib/Mosa.ClassLib.csproj
  4. +6 −1 Source/Mosa.Compiler.Framework/CompilerStages/TypeInitializerSchedulerStage.cs
  5. +41 −0 Source/Mosa.Compiler.Framework/Intrinsics/Load16.cs
  6. +9 −2 Source/Mosa.Compiler.Framework/Intrinsics/Load32.cs
  7. +9 −2 Source/Mosa.Compiler.Framework/Intrinsics/Load64.cs
  8. +41 −0 Source/Mosa.Compiler.Framework/Intrinsics/Load8.cs
  9. +41 −0 Source/Mosa.Compiler.Framework/Intrinsics/Store16.cs
  10. +41 −0 Source/Mosa.Compiler.Framework/Intrinsics/Store32.cs
  11. +41 −0 Source/Mosa.Compiler.Framework/Intrinsics/Store64.cs
  12. +41 −0 Source/Mosa.Compiler.Framework/Intrinsics/Store8.cs
  13. +64 −0 Source/Mosa.Compiler.Framework/LoadStore.cs
  14. +7 −0 Source/Mosa.Compiler.Framework/Mosa.Compiler.Framework.csproj
  15. +18 −0 Source/Mosa.Compiler.Framework/Operand.cs
  16. +35 −35 Source/Mosa.CoolWorld.x86/Boot.cs
  17. +46 −25 Source/Mosa.CoolWorld.x86/HAL/Hardware.cs
  18. +95 −19 Source/Mosa.CoolWorld.x86/HAL/IOPort.cs
  19. +0 −122 Source/Mosa.CoolWorld.x86/HAL/Memory.cs
  20. +3 −6 Source/Mosa.CoolWorld.x86/Mosa.AppSystem/AppManager.cs
  21. +6 −7 Source/Mosa.CoolWorld.x86/Mosa.CoolWorld.x86.csproj
  22. +16 −18 Source/Mosa.DeviceDriver/ISA/CMOS.cs
  23. +61 −65 Source/Mosa.DeviceDriver/ISA/DMA8Bit.cs
  24. +9 −10 Source/Mosa.DeviceDriver/ISA/FloppyDiskController.cs
  25. +58 −51 Source/Mosa.DeviceDriver/ISA/IDEController.cs
  26. +6 −6 Source/Mosa.DeviceDriver/ISA/PCIController.cs
  27. +10 −10 Source/Mosa.DeviceDriver/ISA/PIC.cs
  28. +6 −6 Source/Mosa.DeviceDriver/ISA/PIT.cs
  29. +26 −27 Source/Mosa.DeviceDriver/ISA/Serial.cs
  30. +4 −5 Source/Mosa.DeviceDriver/ISA/StandardKeyboard.cs
  31. +30 −31 Source/Mosa.DeviceDriver/ISA/VGAText.cs
  32. +0 −4 Source/Mosa.DeviceDriver/Mosa.DeviceDriver.csproj
  33. +33 −27 Source/Mosa.DeviceDriver/PCI/AMD/AMDPCNetII.cs
  34. +1 −1 Source/Mosa.DeviceDriver/PCI/Intel/Intel440FX.cs
  35. +1 −1 Source/Mosa.DeviceDriver/PCI/Intel/Intel82540EM.cs
  36. +1 −1 Source/Mosa.DeviceDriver/PCI/Intel/Intel82541EI.cs
  37. +1 −1 Source/Mosa.DeviceDriver/PCI/Intel/IntelPIIX3.cs
  38. +1 −1 Source/Mosa.DeviceDriver/PCI/Intel/IntelPIIX4.cs
  39. +1 −1 Source/Mosa.DeviceDriver/PCI/Intel/QuarkSoC/IntelGPIOController.cs
  40. +2 −2 Source/Mosa.DeviceDriver/PCI/Intel/QuarkSoC/IntelHSUART.cs
  41. +90 −57 Source/Mosa.DeviceDriver/PCI/MassStorage/PCIIDEController.cs
  42. +19 −19 Source/Mosa.DeviceDriver/PCI/S3/S3Trio64V2.cs
  43. +6 −7 Source/Mosa.DeviceDriver/PCI/VMware/VMwareSVGAII.cs
  44. +40 −40 Source/Mosa.DeviceDriver/PCI/VideoCard/GenericVGA.cs
  45. +1 −1 Source/Mosa.DeviceDriver/Setup.cs
  46. +29 −15 Source/{Mosa.HardwareSystem/IHardwareAbstraction.cs → Mosa.DeviceSystem/BaseHardwareAbstraction.cs}
  47. +30 −15 Source/{Mosa.HardwareSystem/IMemory.cs → Mosa.DeviceSystem/BaseMemory.cs}
  48. +1 −1 Source/{Mosa.ClassLib → Mosa.DeviceSystem}/DataBlock.cs
  49. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/Device.cs
  50. +2 −2 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/DeviceBusType.cs
  51. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/DeviceDriverPhysicalMemory.cs
  52. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/DeviceDriverRegistry.cs
  53. +2 −2 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/DeviceDriverStartStatus.cs
  54. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/DeviceManager.cs
  55. +149 −0 Source/Mosa.DeviceSystem/DeviceManagerX.cs
  56. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/DeviceStatus.cs
  57. +20 −0 Source/Mosa.DeviceSystem/DeviceX.cs
  58. +1 −2 Source/Mosa.DeviceSystem/DiskControllerManager.cs
  59. +6 −8 Source/Mosa.DeviceSystem/DiskDevice.cs
  60. +8 −10 Source/Mosa.DeviceSystem/FrameBuffer.cs
  61. +2 −4 Source/Mosa.DeviceSystem/FrameBuffer16bpp.cs
  62. +2 −5 Source/Mosa.DeviceSystem/FrameBuffer24bpp.cs
  63. +2 −5 Source/Mosa.DeviceSystem/FrameBuffer32bpp.cs
  64. +2 −5 Source/Mosa.DeviceSystem/FrameBuffer8bpp.cs
  65. +0 −2 Source/Mosa.DeviceSystem/GUIDPartitionTable.cs
  66. +31 −10 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/HAL.cs
  67. +2 −2 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/HardwareDevice.cs
  68. +32 −25 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/HardwareResources.cs
  69. +4 −26 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/IDMAChannel.cs
  70. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/IDevice.cs
  71. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/IDeviceDriver.cs
  72. +2 −2 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/IHardwareDevice.cs
  73. +87 −0 Source/Mosa.DeviceSystem/IIOPorts.cs
  74. +6 −6 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/IOPortRegion.cs
  75. +8 −19 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/IOPortResources.cs
  76. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/IPCIController.cs
  77. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/IPCIDeviceDriver.cs
  78. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/ISADeviceDriver.cs
  79. +11 −0 Source/Mosa.DeviceSystem/IService.cs
  80. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/InterruptHandler.cs
  81. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/InterruptManager.cs
  82. +0 −2 Source/Mosa.DeviceSystem/MasterBootBlock.cs
  83. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/MemoryRegion.cs
  84. +6 −6 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/MemoryResources.cs
  85. +42 −12 Source/Mosa.DeviceSystem/Mosa.DeviceSystem.csproj
  86. +10 −11 Source/Mosa.DeviceSystem/NetworkDevicePacketBuffer.cs
  87. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/PCI/AddressType.cs
  88. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/PCI/BaseAddress.cs
  89. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/PCI/ClassCodeTable.cs
  90. +2 −2 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/PCI/IPCIDevice.cs
  91. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/PCI/IPCIDeviceResource.cs
  92. +5 −5 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/PCI/PCIDevice.cs
  93. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/PCI/SubClassCodeTable.cs
  94. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/PCIControllerManager.cs
  95. +5 −7 Source/Mosa.DeviceSystem/PartitionDevice.cs
  96. +0 −2 Source/Mosa.DeviceSystem/PartitionManager.cs
  97. +6 −6 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/PlatformArchitecture.cs
  98. +4 −2 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/Setup.cs
  99. +1 −1 Source/{Mosa.HardwareSystem → Mosa.DeviceSystem}/SpinLock.cs
  100. +1 −2 Source/Mosa.FileSystem/FAT/FatFileSystemDevice.cs
  101. +3 −3 Source/Mosa.FileSystem/FAT/Find/ByCluster.cs
  102. +2 −1 Source/Mosa.FileSystem/FAT/Find/Empty.cs
  103. +2 −1 Source/Mosa.FileSystem/FAT/Find/Volume.cs
  104. +3 −2 Source/Mosa.FileSystem/FAT/Find/WithName.cs
  105. +0 −4 Source/Mosa.FileSystem/Mosa.FileSystem.csproj
  106. +0 −19 Source/Mosa.HardwareSystem/IFindDevice.cs
  107. +0 −71 Source/Mosa.HardwareSystem/IIOPorts.cs
  108. +13 −12 Source/Mosa.Kernel.x86/Debugger.cs
  109. +11 −10 Source/Mosa.Kernel.x86/GDT.cs
  110. +11 −11 Source/Mosa.Kernel.x86/IDT.cs
  111. +72 −0 Source/Mosa.Kernel.x86/IOPort.cs
  112. +1 −1 Source/Mosa.Kernel.x86/Kernel.cs
  113. +8 −8 Source/Mosa.Kernel.x86/LZF.cs
  114. +1 −1 Source/Mosa.Kernel.x86/{Memory.cs → MemoryBlock.cs}
  115. +2 −1 Source/Mosa.Kernel.x86/Mosa.Kernel.x86.csproj
  116. +1 −2 Source/Mosa.Kernel.x86/Multiboot.cs
  117. +6 −6 Source/Mosa.Kernel.x86/PageFrameAllocator.cs
  118. +9 −6 Source/Mosa.Kernel.x86/PageTable.cs
  119. +15 −9 Source/Mosa.Kernel.x86/Screen.cs
  120. +21 −12 Source/Mosa.Kernel.x86/Smbios/BiosInformationStructure.cs
  121. +27 −15 Source/Mosa.Kernel.x86/Smbios/CpuStructure.cs
  122. +64 −40 Source/Mosa.Kernel.x86/Smbios/SmbiosManager.cs
  123. +7 −7 Source/Mosa.Kernel.x86/Smbios/SmbiosStructure.cs
  124. +15 −15 Source/Mosa.Kernel.x86/UnitTestQueue.cs
  125. +4 −3 Source/Mosa.Kernel.x86/UnitTestRunner.cs
  126. +7 −7 Source/Mosa.Kernel.x86/VirtualPageAllocator.cs
  127. +114 −0 Source/Mosa.Kernel/Memory.cs
  128. +28 −49 Source/{Mosa.HardwareSystem/Mosa.HardwareSystem.csproj → Mosa.Kernel/Mosa.Kernel.csproj}
  129. +27 −0 Source/Mosa.Kernel/Mosa.Kernel.nuspec
  130. +2 −2 Source/Mosa.Platform.x86/Intrinsic/Get32.cs
  131. +2 −2 Source/Mosa.Platform.x86/Intrinsic/LockSet.cs
  132. +1 −1 Source/Mosa.Platform.x86/Intrinsic/Memclr256.cs
  133. +2 −2 Source/Mosa.Platform.x86/Intrinsic/Set.cs
  134. +10 −0 Source/Mosa.Platform.x86/Stages/IRTransformationStage.cs
  135. +10 −10 Source/Mosa.Runtime.x86/Internal.cs
  136. +63 −0 Source/Mosa.Runtime/Intrinsic.cs
  137. +3 −2 Source/Mosa.TestWorld.x86/Tests/OtherTest.cs
  138. +1 −1 Source/Mosa.UnitTests.x86/Boot.cs
  139. +7 −3 Source/Mosa.Utility.BootImage/BlockFileStream.cs
  140. +6 −4 Source/Mosa.Utility.BootImage/Generator.cs
  141. +2 −4 Source/Mosa.Utility.BootImage/Mosa.Utility.BootImage.csproj
  142. +6 −4 Source/{Mosa.DeviceSystem → Mosa.Utility.BootImage}/VDI.cs
  143. +5 −3 Source/{Mosa.DeviceSystem → Mosa.Utility.BootImage}/VHD.cs
  144. +2 −1 Source/Mosa.Utility.Launcher/Options.cs
  145. +2 −2 Source/Mosa.VBEWorld.x86/Boot.cs
  146. +46 −27 Source/Mosa.VBEWorld.x86/HAL/Hardware.cs
  147. +0 −122 Source/Mosa.VBEWorld.x86/HAL/Memory.cs
  148. +6 −7 Source/Mosa.VBEWorld.x86/Mosa.VBEWorld.x86.csproj
  149. +9 −6 Source/Mosa.VBEWorld.x86/MosaLogo.cs
  150. +7 −6 Source/Mosa.VBEWorld.x86/VBE.cs
  151. +0 −4 Source/Mosa.Workspace.FileSystem.Debug/Mosa.Workspace.FileSystem.Debug.csproj
  152. +4 −3 Source/Mosa.Workspace.FileSystem.Debug/Synthetic/DiskDevice.cs
  153. +4 −3 Source/Mosa.Workspace.FileSystem.Debug/Synthetic/RamDiskDevice.cs
View
@@ -1,7 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 15
VisualStudioVersion = 15.0.26430.14
VisualStudioVersion = 15.0.26430.16
VisualStudioVersion = 15.0.26730.16
MinimumVisualStudioVersion = 12.0.31101.0
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Platforms", "Platforms", "{AB88960E-B233-475B-96E4-8C10EEF8622C}"
EndProject
@@ -131,8 +130,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mosa.Runtime", "Mosa.Runtim
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mosa.Workspace.FileSystem.Debug", "Mosa.Workspace.FileSystem.Debug\Mosa.Workspace.FileSystem.Debug.csproj", "{A8765C3C-1194-4A3A-8579-745CA47C36D3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mosa.HardwareSystem", "Mosa.HardwareSystem\Mosa.HardwareSystem.csproj", "{4DBD4C50-BEC5-48D9-B471-9FB0C7F69999}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mosa.UnitTest.Engine", "Mosa.UnitTest.Engine\Mosa.UnitTest.Engine.csproj", "{B0776C9D-7F3D-4E6E-8C5D-5F735326C7D7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mosa.UnitTest.Collection.xUnit", "Mosa.UnitTest.Collection.xUnit\Mosa.UnitTest.Collection.xUnit.csproj", "{2A98B95B-B900-485C-85F7-7CD2944612C0}"
@@ -160,6 +157,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mosa.Tool.GDBDebugger", "Mo
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mosa.VBEWorld.x86", "Mosa.VBEWorld.x86\Mosa.VBEWorld.x86.csproj", "{E039B97A-FEA6-4655-94D6-32381A9F9931}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mosa.Kernel", "Mosa.Kernel\Mosa.Kernel.csproj", "{FF099D48-3FA5-4ED6-BBA0-1497D994962A}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -627,18 +626,6 @@ Global
{A8765C3C-1194-4A3A-8579-745CA47C36D3}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{A8765C3C-1194-4A3A-8579-745CA47C36D3}.Release|x86.ActiveCfg = Release|Any CPU
{A8765C3C-1194-4A3A-8579-745CA47C36D3}.Release|x86.Build.0 = Release|Any CPU
{4DBD4C50-BEC5-48D9-B471-9FB0C7F69999}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4DBD4C50-BEC5-48D9-B471-9FB0C7F69999}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4DBD4C50-BEC5-48D9-B471-9FB0C7F69999}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{4DBD4C50-BEC5-48D9-B471-9FB0C7F69999}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{4DBD4C50-BEC5-48D9-B471-9FB0C7F69999}.Debug|x86.ActiveCfg = Debug|Any CPU
{4DBD4C50-BEC5-48D9-B471-9FB0C7F69999}.Debug|x86.Build.0 = Debug|Any CPU
{4DBD4C50-BEC5-48D9-B471-9FB0C7F69999}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4DBD4C50-BEC5-48D9-B471-9FB0C7F69999}.Release|Any CPU.Build.0 = Release|Any CPU
{4DBD4C50-BEC5-48D9-B471-9FB0C7F69999}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{4DBD4C50-BEC5-48D9-B471-9FB0C7F69999}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{4DBD4C50-BEC5-48D9-B471-9FB0C7F69999}.Release|x86.ActiveCfg = Release|Any CPU
{4DBD4C50-BEC5-48D9-B471-9FB0C7F69999}.Release|x86.Build.0 = Release|Any CPU
{B0776C9D-7F3D-4E6E-8C5D-5F735326C7D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B0776C9D-7F3D-4E6E-8C5D-5F735326C7D7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B0776C9D-7F3D-4E6E-8C5D-5F735326C7D7}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
@@ -771,6 +758,18 @@ Global
{E039B97A-FEA6-4655-94D6-32381A9F9931}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{E039B97A-FEA6-4655-94D6-32381A9F9931}.Release|x86.ActiveCfg = Release|Any CPU
{E039B97A-FEA6-4655-94D6-32381A9F9931}.Release|x86.Build.0 = Release|Any CPU
{FF099D48-3FA5-4ED6-BBA0-1497D994962A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FF099D48-3FA5-4ED6-BBA0-1497D994962A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FF099D48-3FA5-4ED6-BBA0-1497D994962A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
{FF099D48-3FA5-4ED6-BBA0-1497D994962A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
{FF099D48-3FA5-4ED6-BBA0-1497D994962A}.Debug|x86.ActiveCfg = Debug|Any CPU
{FF099D48-3FA5-4ED6-BBA0-1497D994962A}.Debug|x86.Build.0 = Debug|Any CPU
{FF099D48-3FA5-4ED6-BBA0-1497D994962A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{FF099D48-3FA5-4ED6-BBA0-1497D994962A}.Release|Any CPU.Build.0 = Release|Any CPU
{FF099D48-3FA5-4ED6-BBA0-1497D994962A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
{FF099D48-3FA5-4ED6-BBA0-1497D994962A}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{FF099D48-3FA5-4ED6-BBA0-1497D994962A}.Release|x86.ActiveCfg = Release|Any CPU
{FF099D48-3FA5-4ED6-BBA0-1497D994962A}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -817,7 +816,6 @@ Global
{B69C2F31-5161-47AA-9FD3-2F2F2BCCF659} = {90065B0F-1BFE-40D8-AED5-11096B2535B0}
{77961864-DB33-4189-804F-D774022C96E2} = {3C5A2C4B-FD05-42B3-B6C6-C366DF978A62}
{A8765C3C-1194-4A3A-8579-745CA47C36D3} = {AC7C3CDA-E0E8-408C-BB32-DBCBB905E3E1}
{4DBD4C50-BEC5-48D9-B471-9FB0C7F69999} = {FF773BDF-A20C-4A5F-BFF9-F422C2AFF3CE}
{B0776C9D-7F3D-4E6E-8C5D-5F735326C7D7} = {88D3D1D0-85D2-4301-A9EA-3F964CB05415}
{2A98B95B-B900-485C-85F7-7CD2944612C0} = {88D3D1D0-85D2-4301-A9EA-3F964CB05415}
{1717C7EB-06ED-434B-BA3C-E46C9644EEDF} = {AC7C3CDA-E0E8-408C-BB32-DBCBB905E3E1}
@@ -829,5 +827,9 @@ Global
{FD266261-809F-483C-99CF-F26A7C143E52} = {1F29608A-4C39-42C7-B981-154F92B9EDAC}
{DFD831EA-79D8-49FC-8923-3AFFDA1283B9} = {D032B24A-CE3A-4881-BACE-CC4FE0AFD69D}
{E039B97A-FEA6-4655-94D6-32381A9F9931} = {1AB7FA6A-829C-4DCF-BCA6-A27156D8DA26}
{FF099D48-3FA5-4ED6-BBA0-1497D994962A} = {FF773BDF-A20C-4A5F-BFF9-F422C2AFF3CE}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C22A5C94-6B05-4B1B-845A-A2EA7615E093}
EndGlobalSection
EndGlobal
@@ -6,7 +6,7 @@
namespace Mosa.BootLoader.x86
{
/// <summary>
///
/// Boot
/// </summary>
public static class Boot
{
@@ -62,9 +62,6 @@
</PropertyGroup>
<ItemGroup>
<Compile Include="CRC.cs" />
<Compile Include="DataBlock.cs">
<SubType>Code</SubType>
</Compile>
<Compile Include="LZF.cs" />
<Compile Include="Math.cs">
<SubType>Code</SubType>
@@ -32,6 +32,7 @@ public sealed class TypeInitializerSchedulerStage : BaseCompilerStage
private readonly BasicBlocks basicBlocks;
private MosaMethod typeInitializerMethod;
private readonly object _lockObject = new object();
#endregion Data Members
@@ -92,7 +93,11 @@ protected override void RunPostCompile()
public void Schedule(MosaMethod method)
{
var symbol = Operand.CreateSymbolFromMethod(method, TypeSystem);
start.AppendInstruction(IRInstruction.CallStatic, null, symbol);
lock (_lockObject)
{
start.AppendInstruction(IRInstruction.CallStatic, null, symbol);
}
}
#endregion Methods
@@ -0,0 +1,41 @@
// Copyright (c) MOSA Project. Licensed under the New BSD License.
using Mosa.Compiler.Common;
using Mosa.Compiler.Framework.IR;
namespace Mosa.Compiler.Framework.Intrinsics
{
/// <summary>
///
/// </summary>
/// <seealso cref="Mosa.Compiler.Framework.IIntrinsicInternalMethod" />
[ReplacementTarget("Mosa.Runtime.Intrinsic::Load16")]
public sealed class Load16 : IIntrinsicInternalMethod
{
/// <summary>
/// Replaces the intrinsic call site
/// </summary>
/// <param name="context">The context.</param>
/// <param name="methodCompiler">The method compiler.</param>
/// <exception cref="InvalidCompilerException"></exception>
void IIntrinsicInternalMethod.ReplaceIntrinsicCall(Context context, BaseMethodCompiler methodCompiler)
{
const InstructionSize size = InstructionSize.Size16;
if (context.OperandCount == 1)
{
context.SetInstruction(IRInstruction.LoadZeroExtended, size, context.Result, context.Operand1, methodCompiler.ConstantZero);
}
else if (context.OperandCount == 2)
{
context.SetInstruction(IRInstruction.LoadZeroExtended, size, context.Result, context.Operand1, context.Operand2);
}
else
{
throw new InvalidCompilerException();
}
LoadStore.OrderLoadOperands(context.Node, methodCompiler);
}
}
}
@@ -22,18 +22,25 @@ void IIntrinsicInternalMethod.ReplaceIntrinsicCall(Context context, BaseMethodCo
{
const InstructionSize size = InstructionSize.Size32;
BaseIRInstruction instruction = IRInstruction.LoadZeroExtended;
if (methodCompiler.Architecture.NativeIntegerSize == 32)
instruction = IRInstruction.LoadInteger;
if (context.OperandCount == 1)
{
context.SetInstruction(IRInstruction.LoadInteger, size, context.Result, context.Operand1, Operand.CreateConstant(0, methodCompiler.TypeSystem));
context.SetInstruction(instruction, size, context.Result, context.Operand1, methodCompiler.ConstantZero);
}
else if (context.OperandCount == 2)
{
context.SetInstruction(IRInstruction.LoadInteger, size, context.Result, context.Operand1, context.Operand2);
context.SetInstruction(instruction, size, context.Result, context.Operand1, context.Operand2);
}
else
{
throw new InvalidCompilerException();
}
LoadStore.OrderLoadOperands(context.Node, methodCompiler);
}
}
}
@@ -18,18 +18,25 @@ void IIntrinsicInternalMethod.ReplaceIntrinsicCall(Context context, BaseMethodCo
{
const InstructionSize size = InstructionSize.Size64;
BaseIRInstruction instruction = IRInstruction.LoadZeroExtended;
if (methodCompiler.Architecture.NativeIntegerSize == 64)
instruction = IRInstruction.LoadInteger;
if (context.OperandCount == 1)
{
context.SetInstruction(IRInstruction.LoadInteger, size, context.Result, context.Operand1, Operand.CreateConstant(0, methodCompiler.TypeSystem));
context.SetInstruction(IRInstruction.LoadZeroExtended, size, context.Result, context.Operand1, methodCompiler.ConstantZero);
}
else if (context.OperandCount == 2)
{
context.SetInstruction(IRInstruction.LoadInteger, size, context.Result, context.Operand1, context.Operand2);
context.SetInstruction(IRInstruction.LoadZeroExtended, size, context.Result, context.Operand1, context.Operand2);
}
else
{
throw new InvalidCompilerException();
}
LoadStore.OrderLoadOperands(context.Node, methodCompiler);
}
}
}
@@ -0,0 +1,41 @@
// Copyright (c) MOSA Project. Licensed under the New BSD License.
using Mosa.Compiler.Common;
using Mosa.Compiler.Framework.IR;
namespace Mosa.Compiler.Framework.Intrinsics
{
/// <summary>
///
/// </summary>
/// <seealso cref="Mosa.Compiler.Framework.IIntrinsicInternalMethod" />
[ReplacementTarget("Mosa.Runtime.Intrinsic::Load8")]
public sealed class Load8 : IIntrinsicInternalMethod
{
/// <summary>
/// Replaces the intrinsic call site
/// </summary>
/// <param name="context">The context.</param>
/// <param name="methodCompiler">The method compiler.</param>
/// <exception cref="InvalidCompilerException"></exception>
void IIntrinsicInternalMethod.ReplaceIntrinsicCall(Context context, BaseMethodCompiler methodCompiler)
{
const InstructionSize size = InstructionSize.Size8;
if (context.OperandCount == 1)
{
context.SetInstruction(IRInstruction.LoadZeroExtended, size, context.Result, context.Operand1, methodCompiler.ConstantZero);
}
else if (context.OperandCount == 2)
{
context.SetInstruction(IRInstruction.LoadZeroExtended, size, context.Result, context.Operand1, context.Operand2);
}
else
{
throw new InvalidCompilerException();
}
LoadStore.OrderLoadOperands(context.Node, methodCompiler);
}
}
}
@@ -0,0 +1,41 @@
// Copyright (c) MOSA Project. Licensed under the New BSD License.
using Mosa.Compiler.Common;
using Mosa.Compiler.Framework.IR;
namespace Mosa.Compiler.Framework.Intrinsics
{
/// <summary>
///
/// </summary>
/// <seealso cref="Mosa.Compiler.Framework.IIntrinsicInternalMethod" />
[ReplacementTarget("Mosa.Runtime.Intrinsic::Store16")]
public sealed class Store16 : IIntrinsicInternalMethod
{
/// <summary>
/// Replaces the intrinsic call site
/// </summary>
/// <param name="context">The context.</param>
/// <param name="methodCompiler">The method compiler.</param>
/// <exception cref="InvalidCompilerException"></exception>
void IIntrinsicInternalMethod.ReplaceIntrinsicCall(Context context, BaseMethodCompiler methodCompiler)
{
const InstructionSize size = InstructionSize.Size16;
if (context.OperandCount == 2)
{
context.SetInstruction(IRInstruction.StoreInteger, size, null, context.Operand1, methodCompiler.ConstantZero, context.Operand2);
}
else if (context.OperandCount == 3)
{
context.SetInstruction(IRInstruction.StoreInteger, size, null, context.Operand1, context.Operand2, context.Operand3);
}
else
{
throw new InvalidCompilerException();
}
LoadStore.OrderStoreOperands(context.Node, methodCompiler);
}
}
}
@@ -0,0 +1,41 @@
// Copyright (c) MOSA Project. Licensed under the New BSD License.
using Mosa.Compiler.Common;
using Mosa.Compiler.Framework.IR;
namespace Mosa.Compiler.Framework.Intrinsics
{
/// <summary>
///
/// </summary>
/// <seealso cref="Mosa.Compiler.Framework.IIntrinsicInternalMethod" />
[ReplacementTarget("Mosa.Runtime.Intrinsic::Store32")]
public sealed class Store32 : IIntrinsicInternalMethod
{
/// <summary>
/// Replaces the intrinsic call site
/// </summary>
/// <param name="context">The context.</param>
/// <param name="methodCompiler">The method compiler.</param>
/// <exception cref="InvalidCompilerException"></exception>
void IIntrinsicInternalMethod.ReplaceIntrinsicCall(Context context, BaseMethodCompiler methodCompiler)
{
const InstructionSize size = InstructionSize.Size32;
if (context.OperandCount == 2)
{
context.SetInstruction(IRInstruction.StoreInteger, size, null, context.Operand1, methodCompiler.ConstantZero, context.Operand2);
}
else if (context.OperandCount == 3)
{
context.SetInstruction(IRInstruction.StoreInteger, size, null, context.Operand1, context.Operand2, context.Operand3);
}
else
{
throw new InvalidCompilerException();
}
LoadStore.OrderStoreOperands(context.Node, methodCompiler);
}
}
}
@@ -0,0 +1,41 @@
// Copyright (c) MOSA Project. Licensed under the New BSD License.
using Mosa.Compiler.Common;
using Mosa.Compiler.Framework.IR;
namespace Mosa.Compiler.Framework.Intrinsics
{
/// <summary>
///
/// </summary>
/// <seealso cref="Mosa.Compiler.Framework.IIntrinsicInternalMethod" />
[ReplacementTarget("Mosa.Runtime.Intrinsic::Store64")]
public sealed class Store64 : IIntrinsicInternalMethod
{
/// <summary>
/// Replaces the intrinsic call site
/// </summary>
/// <param name="context">The context.</param>
/// <param name="methodCompiler">The method compiler.</param>
/// <exception cref="InvalidCompilerException"></exception>
void IIntrinsicInternalMethod.ReplaceIntrinsicCall(Context context, BaseMethodCompiler methodCompiler)
{
const InstructionSize size = InstructionSize.Size64;
if (context.OperandCount == 2)
{
context.SetInstruction(IRInstruction.StoreInteger, size, null, context.Operand1, methodCompiler.ConstantZero, context.Operand2);
}
else if (context.OperandCount == 3)
{
context.SetInstruction(IRInstruction.StoreInteger, size, null, context.Operand1, context.Operand2, context.Operand3);
}
else
{
throw new InvalidCompilerException();
}
LoadStore.OrderStoreOperands(context.Node, methodCompiler);
}
}
}
Oops, something went wrong.

0 comments on commit 4f17f33

Please sign in to comment.