changeset 15914:4fab5de4b857 draft

(svn r20598) -Codechange: [Win32] Replace the external x64 asm with a built-in Windows function.
author michi_cc <michi_cc@openttd.org>
date Mon, 23 Aug 2010 18:19:15 +0000
parents 2ff5302eebee
children bb38f90b1402
files projects/openttd_vs100.vcxproj projects/openttd_vs100.vcxproj.filters projects/openttd_vs100.vcxproj.filters.in projects/openttd_vs100.vcxproj.in projects/openttd_vs80.vcproj projects/openttd_vs80.vcproj.in projects/openttd_vs90.vcproj projects/openttd_vs90.vcproj.in src/os/windows/crashlog_win.cpp src/os/windows/masm64.rules src/os/windows/win64.asm
diffstat 11 files changed, 14 insertions(+), 571 deletions(-) [+]
line wrap: on
line diff
--- a/projects/openttd_vs100.vcxproj
+++ b/projects/openttd_vs100.vcxproj
@@ -47,9 +47,6 @@
     <WholeProgramOptimization>true</WholeProgramOptimization>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-    <Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
-  </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -1090,17 +1087,6 @@
     <ClCompile Include="..\src\thread\thread_win32.cpp" />
   </ItemGroup>
   <ItemGroup>
-    <MASM Include="..\src\os\windows\win64.asm">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <PreserveIdentifierCase Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">1</PreserveIdentifierCase>
-      <PreservePublicAndExternSymbolCase Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</PreservePublicAndExternSymbolCase>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-      <PreserveIdentifierCase Condition="'$(Configuration)|$(Platform)'=='Release|x64'">1</PreserveIdentifierCase>
-      <PreservePublicAndExternSymbolCase Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</PreservePublicAndExternSymbolCase>
-      <FileType>Document</FileType>
-    </MASM>
-  </ItemGroup>
-  <ItemGroup>
     <None Include="..\media\openttd.ico" />
     <None Include="..\readme.txt" />
   </ItemGroup>
@@ -1119,7 +1105,4 @@
     </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-    <Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
-  </ImportGroup>
 </Project>
--- a/projects/openttd_vs100.vcxproj.filters
+++ b/projects/openttd_vs100.vcxproj.filters
@@ -91,10 +91,6 @@
     <Filter Include="Threading">
       <UniqueIdentifier>{c76ff9f1-1e62-46d8-8d55-000000000029}</UniqueIdentifier>
     </Filter>
-    <Filter Include="64-bit Specific Files">
-      <UniqueIdentifier>{d55d5f1f-aa07-4839-80d7-5ae158609e61}</UniqueIdentifier>
-      <Extensions>asm</Extensions>
-    </Filter>
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\src\airport.cpp">
@@ -2472,9 +2468,4 @@
     <None Include="..\media\openttd.ico" />
     <None Include="..\readme.txt" />
   </ItemGroup>
-  <ItemGroup>
-    <MASM Include="..\src\os\windows\win64.asm">
-      <Filter>64-bit Specific Files</Filter>
-    </MASM>
-  </ItemGroup>
 </Project>
--- a/projects/openttd_vs100.vcxproj.filters.in
+++ b/projects/openttd_vs100.vcxproj.filters.in
@@ -2,10 +2,6 @@
 <Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
   <ItemGroup>
 !!FILTERS!!
-    <Filter Include="64-bit Specific Files">
-      <UniqueIdentifier>{d55d5f1f-aa07-4839-80d7-5ae158609e61}</UniqueIdentifier>
-      <Extensions>asm</Extensions>
-    </Filter>
   </ItemGroup>
   <ItemGroup>
 !!FILES!!
@@ -14,9 +10,4 @@
     <None Include="..\media\openttd.ico" />
     <None Include="..\readme.txt" />
   </ItemGroup>
-  <ItemGroup>
-    <MASM Include="..\src\os\windows\win64.asm">
-      <Filter>64-bit Specific Files</Filter>
-    </MASM>
-  </ItemGroup>
 </Project>
--- a/projects/openttd_vs100.vcxproj.in
+++ b/projects/openttd_vs100.vcxproj.in
@@ -47,9 +47,6 @@
     <WholeProgramOptimization>true</WholeProgramOptimization>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <ImportGroup Label="ExtensionSettings">
-    <Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
-  </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
     <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
   </ImportGroup>
@@ -301,17 +298,6 @@
 !!FILES!!
   </ItemGroup>
   <ItemGroup>
-    <MASM Include="..\src\os\windows\win64.asm">
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
-      <PreserveIdentifierCase Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">1</PreserveIdentifierCase>
-      <PreservePublicAndExternSymbolCase Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</PreservePublicAndExternSymbolCase>
-      <ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
-      <PreserveIdentifierCase Condition="'$(Configuration)|$(Platform)'=='Release|x64'">1</PreserveIdentifierCase>
-      <PreservePublicAndExternSymbolCase Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</PreservePublicAndExternSymbolCase>
-      <FileType>Document</FileType>
-    </MASM>
-  </ItemGroup>
-  <ItemGroup>
     <None Include="..\media\openttd.ico" />
     <None Include="..\readme.txt" />
   </ItemGroup>
@@ -330,7 +316,4 @@
     </ProjectReference>
   </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-    <Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
-  </ImportGroup>
 </Project>
--- a/projects/openttd_vs80.vcproj
+++ b/projects/openttd_vs80.vcproj
@@ -14,11 +14,6 @@
 			Name="x64"
 		/>
 	</Platforms>
-	<ToolFiles>
-		<ToolFile
-			RelativePath="..\src\os\windows\masm64.rules"
-		/>
-	</ToolFiles>
 	<Configurations>
 		<Configuration
 			Name="Release|Win32"
@@ -38,9 +33,6 @@
 				Name="VCCustomBuildTool"
 			/>
 			<Tool
-				Name="MASM AMD64"
-			/>
-			<Tool
 				Name="VCXMLDataGeneratorTool"
 			/>
 			<Tool
@@ -151,9 +143,6 @@
 				Name="VCCustomBuildTool"
 			/>
 			<Tool
-				Name="MASM AMD64"
-			/>
-			<Tool
 				Name="VCXMLDataGeneratorTool"
 			/>
 			<Tool
@@ -250,9 +239,6 @@
 				Name="VCCustomBuildTool"
 			/>
 			<Tool
-				Name="MASM AMD64"
-			/>
-			<Tool
 				Name="VCXMLDataGeneratorTool"
 			/>
 			<Tool
@@ -364,9 +350,6 @@
 				Name="VCCustomBuildTool"
 			/>
 			<Tool
-				Name="MASM AMD64"
-			/>
-			<Tool
 				Name="VCXMLDataGeneratorTool"
 			/>
 			<Tool
@@ -3732,49 +3715,6 @@
 				>
 			</File>
 		</Filter>
-		<Filter
-			Name="64-bit Specific Files"
-			Filter="asm"
-			>
-			<File
-				RelativePath=".\..\src\os\windows\win64.asm"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="MASM AMD64"
-						PreserveIdentifierCase="true"
-						PreservePublicAndExternSymbolCase="true"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="MASM AMD64"
-						PreserveIdentifierCase="true"
-						PreservePublicAndExternSymbolCase="true"
-					/>
-				</FileConfiguration>
-			</File>
-		</Filter>
 		<File
 			RelativePath=".\..\media\openttd.ico"
 			>
--- a/projects/openttd_vs80.vcproj.in
+++ b/projects/openttd_vs80.vcproj.in
@@ -14,11 +14,6 @@
 			Name="x64"
 		/>
 	</Platforms>
-	<ToolFiles>
-		<ToolFile
-			RelativePath="..\src\os\windows\masm64.rules"
-		/>
-	</ToolFiles>
 	<Configurations>
 		<Configuration
 			Name="Release|Win32"
@@ -38,9 +33,6 @@
 				Name="VCCustomBuildTool"
 			/>
 			<Tool
-				Name="MASM AMD64"
-			/>
-			<Tool
 				Name="VCXMLDataGeneratorTool"
 			/>
 			<Tool
@@ -151,9 +143,6 @@
 				Name="VCCustomBuildTool"
 			/>
 			<Tool
-				Name="MASM AMD64"
-			/>
-			<Tool
 				Name="VCXMLDataGeneratorTool"
 			/>
 			<Tool
@@ -250,9 +239,6 @@
 				Name="VCCustomBuildTool"
 			/>
 			<Tool
-				Name="MASM AMD64"
-			/>
-			<Tool
 				Name="VCXMLDataGeneratorTool"
 			/>
 			<Tool
@@ -364,9 +350,6 @@
 				Name="VCCustomBuildTool"
 			/>
 			<Tool
-				Name="MASM AMD64"
-			/>
-			<Tool
 				Name="VCXMLDataGeneratorTool"
 			/>
 			<Tool
@@ -453,49 +436,6 @@
 	</References>
 	<Files>
 !!FILES!!
-		<Filter
-			Name="64-bit Specific Files"
-			Filter="asm"
-			>
-			<File
-				RelativePath=".\..\src\os\windows\win64.asm"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="MASM AMD64"
-						PreserveIdentifierCase="true"
-						PreservePublicAndExternSymbolCase="true"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="MASM AMD64"
-						PreserveIdentifierCase="true"
-						PreservePublicAndExternSymbolCase="true"
-					/>
-				</FileConfiguration>
-			</File>
-		</Filter>
 		<File
 			RelativePath=".\..\media\openttd.ico"
 			>
--- a/projects/openttd_vs90.vcproj
+++ b/projects/openttd_vs90.vcproj
@@ -15,11 +15,6 @@
 			Name="x64"
 		/>
 	</Platforms>
-	<ToolFiles>
-		<ToolFile
-			RelativePath="..\src\os\windows\masm64.rules"
-		/>
-	</ToolFiles>
 	<Configurations>
 		<Configuration
 			Name="Release|Win32"
@@ -39,9 +34,6 @@
 				Name="VCCustomBuildTool"
 			/>
 			<Tool
-				Name="MASM AMD64"
-			/>
-			<Tool
 				Name="VCXMLDataGeneratorTool"
 			/>
 			<Tool
@@ -150,9 +142,6 @@
 				Name="VCCustomBuildTool"
 			/>
 			<Tool
-				Name="MASM AMD64"
-			/>
-			<Tool
 				Name="VCXMLDataGeneratorTool"
 			/>
 			<Tool
@@ -248,9 +237,6 @@
 				Name="VCCustomBuildTool"
 			/>
 			<Tool
-				Name="MASM AMD64"
-			/>
-			<Tool
 				Name="VCXMLDataGeneratorTool"
 			/>
 			<Tool
@@ -361,9 +347,6 @@
 				Name="VCCustomBuildTool"
 			/>
 			<Tool
-				Name="MASM AMD64"
-			/>
-			<Tool
 				Name="VCXMLDataGeneratorTool"
 			/>
 			<Tool
@@ -3729,49 +3712,6 @@
 				>
 			</File>
 		</Filter>
-		<Filter
-			Name="64-bit Specific Files"
-			Filter="asm"
-			>
-			<File
-				RelativePath=".\..\src\os\windows\win64.asm"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="MASM AMD64"
-						PreserveIdentifierCase="true"
-						PreservePublicAndExternSymbolCase="true"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="MASM AMD64"
-						PreserveIdentifierCase="true"
-						PreservePublicAndExternSymbolCase="true"
-					/>
-				</FileConfiguration>
-			</File>
-		</Filter>
 		<File
 			RelativePath=".\..\media\openttd.ico"
 			>
--- a/projects/openttd_vs90.vcproj.in
+++ b/projects/openttd_vs90.vcproj.in
@@ -15,11 +15,6 @@
 			Name="x64"
 		/>
 	</Platforms>
-	<ToolFiles>
-		<ToolFile
-			RelativePath="..\src\os\windows\masm64.rules"
-		/>
-	</ToolFiles>
 	<Configurations>
 		<Configuration
 			Name="Release|Win32"
@@ -39,9 +34,6 @@
 				Name="VCCustomBuildTool"
 			/>
 			<Tool
-				Name="MASM AMD64"
-			/>
-			<Tool
 				Name="VCXMLDataGeneratorTool"
 			/>
 			<Tool
@@ -150,9 +142,6 @@
 				Name="VCCustomBuildTool"
 			/>
 			<Tool
-				Name="MASM AMD64"
-			/>
-			<Tool
 				Name="VCXMLDataGeneratorTool"
 			/>
 			<Tool
@@ -248,9 +237,6 @@
 				Name="VCCustomBuildTool"
 			/>
 			<Tool
-				Name="MASM AMD64"
-			/>
-			<Tool
 				Name="VCXMLDataGeneratorTool"
 			/>
 			<Tool
@@ -361,9 +347,6 @@
 				Name="VCCustomBuildTool"
 			/>
 			<Tool
-				Name="MASM AMD64"
-			/>
-			<Tool
 				Name="VCXMLDataGeneratorTool"
 			/>
 			<Tool
@@ -450,49 +433,6 @@
 	</References>
 	<Files>
 !!FILES!!
-		<Filter
-			Name="64-bit Specific Files"
-			Filter="asm"
-			>
-			<File
-				RelativePath=".\..\src\os\windows\win64.asm"
-				>
-				<FileConfiguration
-					Name="Release|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|Win32"
-					ExcludedFromBuild="true"
-					>
-					<Tool
-						Name="VCCustomBuildTool"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Release|x64"
-					>
-					<Tool
-						Name="MASM AMD64"
-						PreserveIdentifierCase="true"
-						PreservePublicAndExternSymbolCase="true"
-					/>
-				</FileConfiguration>
-				<FileConfiguration
-					Name="Debug|x64"
-					>
-					<Tool
-						Name="MASM AMD64"
-						PreserveIdentifierCase="true"
-						PreservePublicAndExternSymbolCase="true"
-					/>
-				</FileConfiguration>
-			</File>
-		</Filter>
 		<File
 			RelativePath=".\..\media\openttd.ico"
 			>
--- a/src/os/windows/crashlog_win.cpp
+++ b/src/os/windows/crashlog_win.cpp
@@ -10,6 +10,12 @@
 /** @file crashlog_win.cpp Implementation of a crashlogger for Windows */
 
 #include "../../stdafx.h"
+#if defined(_MSC_VER) && defined(_M_AMD64)
+/* Redefine WinNT version to get RtlCaptureContext prototype. */
+#undef _WIN32_WINNT
+#undef NTDDI_VERSION
+#define _WIN32_WINNT _WIN32_WINNT_WINXP
+#endif /* defined(_MSC_VER) && defined(_M_AMD64) */
 #include "../../crashlog.h"
 #include "win32.h"
 #include "../../core/alloc_func.hpp"
@@ -408,10 +414,6 @@
 	return EXCEPTION_EXECUTE_HANDLER;
 }
 
-#ifdef _M_AMD64
-extern "C" void *_get_safe_esp();
-#endif
-
 static void CDECL CustomAbort(int signal)
 {
 	RaiseException(0xE1212012, 0, 0, NULL);
@@ -421,7 +423,14 @@
 {
 #if defined(_MSC_VER)
 #ifdef _M_AMD64
-	_safe_esp = _get_safe_esp();
+	CONTEXT ctx;
+	RtlCaptureContext(&ctx);
+
+	/* The stack pointer for AMD64 must always be 16-byte aligned inside a
+	 * function. As we are simulating a function call with the safe ESP value,
+	 * we need to subtract 8 for the imaginary return address otherwise stack
+	 * alignment would be wrong in the called function. */
+	_safe_esp = (void *)(ctx.Rsp - 8);
 #else
 	_asm {
 		mov _safe_esp, esp
deleted file mode 100644
--- a/src/os/windows/masm64.rules
+++ /dev/null
@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<VisualStudioToolFile
-	Name="Microsoft Macro Assembler 64"
-	Version="8.00"
-	>
-	<Rules>
-		<CustomBuildRule
-			Name="MASM AMD64"
-			DisplayName="Microsoft Macro Assembler for AMD64"
-			CommandLine="ml64.exe /c [AllOptions] [AdditionalOptions] /Ta[inputs]"
-			Outputs="[$ObjectFileName]"
-			FileExtensions="*.asm"
-			ExecutionDescription="Assembling..."
-			>
-			<Properties>
-				<BooleanProperty
-					Name="NoLogo"
-					DisplayName="Suppress Startup Banner"
-					Description="Suppress the display of the startup banner and information messages.     (/nologo)"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/nologo"
-					DefaultValue="true"
-				/>
-				<StringProperty
-					Name="ObjectFileName"
-					DisplayName="Object File Name"
-					PropertyPageName="Object File"
-					Description="Specifies the name of the output object file.     (/Fo:[file])"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Fo&quot;[value]&quot;"
-					DefaultValue="$(IntDir)\$(InputName).obj"
-				/>
-				<BooleanProperty
-					Name="PreserveIdentifierCase"
-					DisplayName="Preserve Identifier Case"
-					PropertyPageName="Identifiers"
-					Description="Preserves case of all user identifiers.     (/Cp)"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Cp"
-				/>
-				<BooleanProperty
-					Name="PreservePublicAndExternSymbolCase"
-					DisplayName="Preserve Public and Extern Symbol Case"
-					PropertyPageName="Identifiers"
-					Description="Preserves case in public and extern symbols.     (/Cx)"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Cx"
-				/>
-				<StringProperty
-					Name="PreprocessorDefinitions"
-					DisplayName="Preprocessor Definitions"
-					Description="Defines a text macro with the given name.     (/D[symbol])"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/D&quot;[value]&quot;"
-					Delimited="true"
-					Inheritable="true"
-				/>
-				<BooleanProperty
-					Name="GeneratePreprocessedSourceListing"
-					DisplayName="Generate Preprocessed Source Listing"
-					PropertyPageName="Listing File"
-					Description="Generates a preprocessed source listing to the Output Window.     (/EP)"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/EP"
-				/>
-				<StringProperty
-					Name="AssembledCodeListingFile"
-					DisplayName="Assembled Code Listing File"
-					PropertyPageName="Listing File"
-					Description="Generates an assembled code listing file.     (/Fl[file])"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Fl&quot;[value]&quot;"
-				/>
-				<StringProperty
-					Name="SourceBrowserFile"
-					DisplayName="Source Browser File"
-					PropertyPageName="Source Browser File"
-					Description="Generates a source browser .sbr file.     (/Fr[file])"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Fr&quot;[value]&quot;"
-				/>
-				<StringProperty
-					Name="ExtendedSourceBrowserFile"
-					DisplayName="Extended Source Browser File"
-					PropertyPageName="Source Browser File"
-					Description="Generates an extended form of a source browser .sbr file.     (/FR[file])"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/FR&quot;[value]&quot;"
-				/>
-				<StringProperty
-					Name="IncludePaths"
-					DisplayName="Include Paths"
-					Description="Sets path for include file. A maximum of 10 /I options is allowed.     (/I [path])"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/I &quot;[value]&quot;"
-					Delimited="true"
-					Inheritable="true"
-				/>
-				<BooleanProperty
-					Name="ListAllAvailableInformation"
-					DisplayName="List All Available Information"
-					PropertyPageName="Listing File"
-					Description="Turns on listing of all available information.     (/Sa)"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Sa"
-				/>
-				<BooleanProperty
-					Name="AddInstructionTimings"
-					DisplayName="Add Instruction Timings"
-					PropertyPageName="Listing File"
-					Description="Adds instruction timings to listing file.     (/Sc)"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Sc"
-				/>
-				<BooleanProperty
-					Name="AddFirstPassListing"
-					DisplayName="Add First Pass Listing"
-					PropertyPageName="Listing File"
-					Description="Adds first-pass listing to listing file.     (/Sf)"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Sf"
-				/>
-				<IntegerProperty
-					Name="SourceListingLineWidth"
-					DisplayName="Source Listing Line Width"
-					PropertyPageName="Listing File"
-					Description="Sets the line width of source listing in characters per line. Range is 60 to 255 or 0. Default is 0. Same as PAGE width.     (/Sl [width])"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Sl [value]"
-				/>
-				<BooleanProperty
-					Name="DisableSymbolTable"
-					DisplayName="Disable Symbol Table"
-					PropertyPageName="Listing File"
-					Description="Turns off symbol table when producing a listing.     (/Sn)"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Sn"
-				/>
-				<IntegerProperty
-					Name="SourceListingPageLength"
-					DisplayName="Source Listing Page Length"
-					PropertyPageName="Listing File"
-					Description="Sets the page length of source listing in lines per page. Range is 10 to 255 or 0. Default is 0. Same as PAGE length.     (/Sp [length])"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Sp [value]"
-				/>
-				<StringProperty
-					Name="SourceListingSubTitle"
-					DisplayName="Source Listing Subtitle"
-					PropertyPageName="Listing File"
-					Description="Specifies subtitle text for source listing. Same as SUBTITLE text.     (/Ss [subtitle])"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Ss [value]"
-				/>
-				<StringProperty
-					Name="SourceListingTitle"
-					DisplayName="Source Listing Title"
-					PropertyPageName="Listing File"
-					Description="Specifies title for source listing. Same as TITLE text.     (/St [title])"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/St [value]"
-				/>
-				<BooleanProperty
-					Name="EnableFalseConditionalsInListing"
-					DisplayName="Enable False Conditionals In Listing"
-					PropertyPageName="Listing File"
-					Description="Turns on false conditionals in listing.     (/Sx)"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Sx"
-				/>
-				<EnumProperty
-					Name="WarningLevel"
-					DisplayName="Warning Level"
-					Description="Sets the warning level, where level = 0, 1, 2, or 3.    (/W0, /W1, /W2, /W3)"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					>
-					<Values>
-						<EnumValue
-							Value="0"
-							Switch="/W0"
-							DisplayName="Warning Level 0 (/W0)"
-						/>
-						<EnumValue
-							Value="1"
-							Switch="/W1"
-							DisplayName="Warning Level 1 (/W1)"
-						/>
-						<EnumValue
-							Value="2"
-							Switch="/W2"
-							DisplayName="Warning Level 2 (/W2)"
-						/>
-						<EnumValue
-							Value="3"
-							Switch="/W3"
-							DisplayName="Warning Level 3 (/W3)"
-						/>
-					</Values>
-				</EnumProperty>
-				<BooleanProperty
-					Name="TreatWarningsAsErrors"
-					DisplayName="Treat Warnings As Errors"
-					Description="Returns an error code if warnings are generated.     (/WX)"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/WX"
-				/>
-				<BooleanProperty
-					Name="GenerateLineInformation"
-					DisplayName="Generate Line Information"
-					PropertyPageName="Object File"
-					Description="Generates line-number information in object file.     (/Zd)"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Zd"
-				/>
-				<BooleanProperty
-					Name="MakeAllSymbolsPublic"
-					DisplayName="Make All Symbols Public"
-					PropertyPageName="Object File"
-					Description="Makes all symbols public.     (/Zf)"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Zf"
-				/>
-				<BooleanProperty
-					Name="GenerateCodeViewInformation"
-					DisplayName="Generate CodeView Information"
-					PropertyPageName="Object File"
-					Description="Generates CodeView information in object file.     (/Zi)"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Zi"
-				/>
-				<EnumProperty
-					Name="PackAlignmentBoundary"
-					DisplayName="Pack Alignment Boundary"
-					PropertyPageName="Advanced"
-					Description="Packs structures on the specified byte boundary. The alignment can be 1, 2, or 4.     (/Zp1, /Zp2, /Zp4)"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					>
-					<Values>
-						<EnumValue
-							Value="0"
-							Switch="/Zp1"
-							DisplayName="One Byte Boundary (/Zp1)"
-						/>
-						<EnumValue
-							Value="1"
-							Switch="/Zp2"
-							DisplayName="Two Byte Boundary (/Zp2)"
-						/>
-						<EnumValue
-							Value="2"
-							Switch="/Zp4"
-							DisplayName="Four Byte Boundary (/Zp4)"
-						/>
-					</Values>
-				</EnumProperty>
-				<BooleanProperty
-					Name="PerformSyntaxCheckOnly"
-					DisplayName="Perform Syntax Check Only"
-					Description="Performs a syntax check only.     (/Zs)"
-					HelpURL="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vcmasm/html/vclrfml.asp"
-					Switch="/Zs"
-				/>
-			</Properties>
-		</CustomBuildRule>
-	</Rules>
-</VisualStudioToolFile>
deleted file mode 100644
--- a/src/os/windows/win64.asm
+++ /dev/null
@@ -1,8 +0,0 @@
-		.CODE
-
-PUBLIC	_get_safe_esp
-_get_safe_esp:
-		MOV	RAX,RSP
-		RET
-
-		END