Get x64 building

This commit is contained in:
Stefanos Kornilios Mitsis Poiitidis 2015-07-13 21:13:51 +02:00
parent 115ee47efc
commit b385575d6f
8 changed files with 58 additions and 19 deletions

View File

@ -92,7 +92,7 @@ void ngen_ResetBlocks();
//should call rdv_FailedToFindBlock and then jump to the return value
extern void (*ngen_FailedToFindBlock)();
//the dynarec mainloop
void ngen_mainloop(void* cntx);
extern "C" void ngen_mainloop(void* cntx);
//ngen features
struct ngen_features
{

View File

@ -6,6 +6,7 @@
#include "sh4_core.h"
#include "sh4_interrupts.h"
Sh4RCB* p_sh4rcb;
sh4_if sh4_cpu;
u8* sh4_dyna_rcb;
@ -76,18 +77,24 @@ void SetFloatStatusReg()
//TODO: Implement this (needed for SOTB)
#if HOST_CPU==CPU_X86
if (fpscr.RM==1) //if round to 0 , set the flag
temp|=(3<<13);
if (fpscr.DN) //denormals are considered 0
temp|=(1<<15);
#if BUILD_COMPILER == COMPILER_VC
_asm
{
ldmxcsr temp; //load the float status :)
}
if (fpscr.RM == 1) //if round to 0 , set the flag
_controlfp(_RC_CHOP, _MCW_RC);
else
_controlfp(_RC_NEAR, _MCW_RC);
if (fpscr.DN) //denormals are considered 0
_controlfp(_DN_FLUSH, _MCW_DN);
else
_controlfp(_DN_SAVE, _MCW_DN);
#else
if (fpscr.RM==1) //if round to 0 , set the flag
temp|=(3<<13);
if (fpscr.DN) //denormals are considered 0
temp|=(1<<15);
asm("ldmxcsr %0" : : "m"(temp));
#endif
#elif HOST_CPU==CPU_ARM

View File

@ -167,7 +167,7 @@ static u32 directsound_push(void* frame, u32 samples, bool wait)
*/
while (!directsound_push_nw(frame, samples) && wait)
printf("FAILED waiting on audio FAILED %d\n", directsound_getusedSamples());
0 && printf("FAILED waiting on audio FAILED %d\n", directsound_getusedSamples());
return 1;
}

View File

@ -71,7 +71,7 @@ void print_blocks();
//called every emulated second
void prof_periodical()
{
#if defined(HAS_PROFILE)
#if 0
printf("SQW %d,DMAW %d\n",SQW,DMAW);
DMAW=SQW=0;
@ -197,6 +197,7 @@ void prof_periodical()
printf("********************\n");
memset(&prof.counters,0,sizeof(prof.counters));
#endif
}
#else
void prof_periodical() { }

View File

@ -125,7 +125,7 @@ int ExeptionHandler(u32 dwCode, void* pExceptionPointers)
{
return EXCEPTION_CONTINUE_EXECUTION;
}
#ifndef HOST_NO_REC
#if !defined(HOST_NO_REC) && HOST_CPU == CPU_X64
else if ( ngen_Rewrite((unat&)ep->ContextRecord->Eip,*(unat*)ep->ContextRecord->Esp,ep->ContextRecord->Eax) )
{
//remove the call from call stack

View File

@ -162,9 +162,18 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Fast|Win32'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Fast|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\core\rec-x86\rec_x86_driver.cpp" />
<ClCompile Include="..\core\rec-x86\rec_x86_il.cpp" />
<ClCompile Include="..\core\rec-x86\rec_x86_ngen.cpp" />
<ClCompile Include="..\core\rec-x86\rec_x86_driver.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Fast|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Slow|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\core\rec-x86\rec_x86_il.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Fast|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Slow|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\core\rec-x86\rec_x86_ngen.cpp">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Fast|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Slow|x64'">true</ExcludedFromBuild>
</ClCompile>
<ClCompile Include="..\core\reios\descrambl.cpp" />
<ClCompile Include="..\core\reios\gdrom_hle.cpp" />
<ClCompile Include="..\core\reios\reios.cpp" />
@ -177,6 +186,7 @@
<ClCompile Include="..\core\stdclass.cpp" />
<ClCompile Include="..\core\webui\server.cpp" />
<ClCompile Include="..\core\windows\winmain.cpp" />
<ClCompile Include="rec_x64.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\core\build.h" />
@ -302,7 +312,10 @@
<ClInclude Include="..\core\oslib\audiostream.h" />
<ClInclude Include="..\core\oslib\oslib.h" />
<ClInclude Include="..\core\profiler\profiler.h" />
<ClInclude Include="..\core\rec-x86\rec_x86_ngen.h" />
<ClInclude Include="..\core\rec-x86\rec_x86_ngen.h">
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Fast|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Slow|x64'">true</ExcludedFromBuild>
</ClInclude>
<ClInclude Include="..\core\reios\descrambl.h" />
<ClInclude Include="..\core\reios\gdrom_hle.h" />
<ClInclude Include="..\core\reios\reios.h" />
@ -328,6 +341,9 @@
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Fast|x64'">true</ExcludedFromBuild>
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Slow|x64'">true</ExcludedFromBuild>
</None>
<MASM Include="rec_win64.asm">
<FileType>Document</FileType>
</MASM>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{58B14048-EACB-4780-8B1E-9C84C2C30A8E}</ProjectGuid>
@ -364,6 +380,7 @@
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.props" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Fast|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
@ -431,7 +448,7 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Full</Optimization>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;X86;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;HOST_NO_AREC=1;NDEBUG;_CONSOLE;X86;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir)..\core\;$(ProjectDir)..\core\khronos;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>/MP %(AdditionalOptions)</AdditionalOptions>
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
@ -448,6 +465,8 @@
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<ObjectFileName>$(IntDir)/%(RelativeDir)/</ObjectFileName>
<UndefinePreprocessorDefinitions>
</UndefinePreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@ -482,12 +501,14 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;X86;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;HOST_NO_AREC=1;_DEBUG;_CONSOLE;X86;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>$(ProjectDir)..\core\;$(ProjectDir)..\core\khronos;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<ObjectFileName>$(IntDir)/%(RelativeDir)/</ObjectFileName>
<UndefinePreprocessorDefinitions>
</UndefinePreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@ -508,5 +529,6 @@
</ItemDefinitionGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(VCTargetsPath)\BuildCustomizations\masm.targets" />
</ImportGroup>
</Project>

View File

@ -411,6 +411,9 @@
<ClCompile Include="..\core\rec-x86\rec_x86_ngen.cpp">
<Filter>rec-x86</Filter>
</ClCompile>
<ClCompile Include="rec_x64.cpp">
<Filter>rec-x64</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Filter Include="hw">
@ -536,6 +539,9 @@
<Filter Include="windows">
<UniqueIdentifier>{5a7b63eb-8c03-46ac-b6e0-dfd3ade02f11}</UniqueIdentifier>
</Filter>
<Filter Include="rec-x64">
<UniqueIdentifier>{f73263e9-dbe8-4a6f-8b73-335af8307551}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\core\hw\aica\aica.h">
@ -915,5 +921,8 @@
<None Include="..\core\rec-x86\rec_lin86_asm.S">
<Filter>rec-x86</Filter>
</None>
<None Include="rec_win64.asm">
<Filter>rec-x64</Filter>
</None>
</ItemGroup>
</Project>