Unicorn interface working with test app in 32bit and 64bit builds.

This commit is contained in:
xorstream 2017-01-20 17:27:22 +11:00
parent 1aeaf5c40d
commit 002151874a
17 changed files with 248 additions and 829 deletions

View file

@ -3,16 +3,61 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "x86_64-softmmu", "x86_64-softmmu\x86_64-softmmu.vcxproj", "{17077E86-AE7C-41AF-86ED-2BAC03B019BC}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "unicorn", "unicorn\unicorn.vcxproj", "{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}"
ProjectSection(ProjectDependencies) = postProject
{17077E86-AE7C-41AF-86ED-2BAC03B019BC} = {17077E86-AE7C-41AF-86ED-2BAC03B019BC}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sample_x86", "sample_x86\sample_x86.vcxproj", "{F8053D66-8267-433A-BF2C-E07E2298C338}"
ProjectSection(ProjectDependencies) = postProject
{17077E86-AE7C-41AF-86ED-2BAC03B019BC} = {17077E86-AE7C-41AF-86ED-2BAC03B019BC}
{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96} = {B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Win32 = Debug|Win32
Debug|x64 = Debug|x64
Release|Mixed Platforms = Release|Mixed Platforms
Release|Win32 = Release|Win32
Release|x64 = Release|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{17077E86-AE7C-41AF-86ED-2BAC03B019BC}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{17077E86-AE7C-41AF-86ED-2BAC03B019BC}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{17077E86-AE7C-41AF-86ED-2BAC03B019BC}.Debug|Win32.ActiveCfg = Debug|Win32
{17077E86-AE7C-41AF-86ED-2BAC03B019BC}.Debug|Win32.Build.0 = Debug|Win32
{17077E86-AE7C-41AF-86ED-2BAC03B019BC}.Debug|x64.ActiveCfg = Debug|x64
{17077E86-AE7C-41AF-86ED-2BAC03B019BC}.Debug|x64.Build.0 = Debug|x64
{17077E86-AE7C-41AF-86ED-2BAC03B019BC}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{17077E86-AE7C-41AF-86ED-2BAC03B019BC}.Release|Mixed Platforms.Build.0 = Release|Win32
{17077E86-AE7C-41AF-86ED-2BAC03B019BC}.Release|Win32.ActiveCfg = Release|Win32
{17077E86-AE7C-41AF-86ED-2BAC03B019BC}.Release|Win32.Build.0 = Release|Win32
{17077E86-AE7C-41AF-86ED-2BAC03B019BC}.Release|x64.ActiveCfg = Release|x64
{17077E86-AE7C-41AF-86ED-2BAC03B019BC}.Release|x64.Build.0 = Release|x64
{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}.Debug|Mixed Platforms.ActiveCfg = Debug|x64
{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}.Debug|Mixed Platforms.Build.0 = Debug|x64
{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}.Debug|Win32.ActiveCfg = Debug|Win32
{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}.Debug|Win32.Build.0 = Debug|Win32
{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}.Debug|x64.ActiveCfg = Debug|x64
{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}.Debug|x64.Build.0 = Debug|x64
{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}.Release|Mixed Platforms.Build.0 = Release|Win32
{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}.Release|Win32.ActiveCfg = Release|Win32
{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}.Release|Win32.Build.0 = Release|Win32
{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}.Release|x64.ActiveCfg = Release|Win32
{F8053D66-8267-433A-BF2C-E07E2298C338}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32
{F8053D66-8267-433A-BF2C-E07E2298C338}.Debug|Mixed Platforms.Build.0 = Debug|Win32
{F8053D66-8267-433A-BF2C-E07E2298C338}.Debug|Win32.ActiveCfg = Debug|Win32
{F8053D66-8267-433A-BF2C-E07E2298C338}.Debug|Win32.Build.0 = Debug|Win32
{F8053D66-8267-433A-BF2C-E07E2298C338}.Debug|x64.ActiveCfg = Debug|x64
{F8053D66-8267-433A-BF2C-E07E2298C338}.Debug|x64.Build.0 = Debug|x64
{F8053D66-8267-433A-BF2C-E07E2298C338}.Release|Mixed Platforms.ActiveCfg = Release|Win32
{F8053D66-8267-433A-BF2C-E07E2298C338}.Release|Mixed Platforms.Build.0 = Release|Win32
{F8053D66-8267-433A-BF2C-E07E2298C338}.Release|Win32.ActiveCfg = Release|Win32
{F8053D66-8267-433A-BF2C-E07E2298C338}.Release|Win32.Build.0 = Release|Win32
{F8053D66-8267-433A-BF2C-E07E2298C338}.Release|x64.ActiveCfg = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

View file

@ -263,3 +263,11 @@ config-host.h is bindings/msvc_native/config-host.h
:: Other things
* GNU seems to rely on __i386__ or __x86_64__ defined if the host is 32bit or 64bit respectively.
So when building 32bit libs in msvc we define __i386__.
And when building 64bit libs in msvc we define __x86_64__.
* There is a tcg-target.c for each target that is included into tcg.c.
It is NOT built separately as part of the *.c files built for the project.

View file

@ -5,39 +5,25 @@
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\list.c" />
<ClCompile Include="..\..\..\qemu\accel.c" />
<ClCompile Include="..\..\..\qemu\cpu-exec.c" />
<ClCompile Include="..\..\..\qemu\cpus.c" />
<ClCompile Include="..\..\..\qemu\cputlb.c" />
<ClCompile Include="..\..\..\qemu\exec.c" />
<ClCompile Include="..\..\..\qemu\fpu\softfloat.c" />
<ClCompile Include="..\..\..\qemu\glib_compat.c" />
<ClCompile Include="..\..\..\qemu\hw\arm\tosa.c" />
<ClCompile Include="..\..\..\qemu\hw\arm\virt.c" />
<ClCompile Include="..\..\..\qemu\hw\core\machine.c" />
<ClCompile Include="..\..\..\qemu\hw\core\qdev.c" />
<ClCompile Include="..\..\..\qemu\hw\i386\pc.c" />
<ClCompile Include="..\..\..\qemu\hw\i386\pc_piix.c" />
<ClCompile Include="..\..\..\qemu\hw\intc\apic.c" />
<ClCompile Include="..\..\..\qemu\hw\intc\apic_common.c" />
<ClCompile Include="..\..\..\qemu\hw\m68k\dummy_m68k.c" />
<ClCompile Include="..\..\..\qemu\hw\mips\addr.c" />
<ClCompile Include="..\..\..\qemu\hw\mips\cputimer.c" />
<ClCompile Include="..\..\..\qemu\hw\mips\mips_int.c" />
<ClCompile Include="..\..\..\qemu\hw\mips\mips_r4k.c" />
<ClCompile Include="..\..\..\qemu\hw\sparc64\sun4u.c" />
<ClCompile Include="..\..\..\qemu\hw\sparc\leon3.c" />
<ClCompile Include="..\..\..\qemu\hw\sparc\sun4m.c" />
<ClCompile Include="..\..\..\qemu\ioport.c" />
<ClCompile Include="..\..\..\qemu\memory.c" />
<ClCompile Include="..\..\..\qemu\memory_mapping.c" />
<ClCompile Include="..\..\..\qemu\qapi-types.c" />
<ClCompile Include="..\..\..\qemu\qapi-visit.c" />
<ClCompile Include="..\..\..\qemu\qapi\qapi-dealloc-visitor.c" />
@ -58,77 +44,7 @@
<ClCompile Include="..\..\..\qemu\qom\cpu.c" />
<ClCompile Include="..\..\..\qemu\qom\object.c" />
<ClCompile Include="..\..\..\qemu\qom\qom-qobject.c" />
<ClCompile Include="..\..\..\qemu\target-arm\arm-semi.c" />
<ClCompile Include="..\..\..\qemu\target-arm\cpu.c" />
<ClCompile Include="..\..\..\qemu\target-arm\cpu64.c" />
<ClCompile Include="..\..\..\qemu\target-arm\crypto_helper.c" />
<ClCompile Include="..\..\..\qemu\target-arm\helper-a64.c" />
<ClCompile Include="..\..\..\qemu\target-arm\helper.c" />
<ClCompile Include="..\..\..\qemu\target-arm\iwmmxt_helper.c" />
<ClCompile Include="..\..\..\qemu\target-arm\kvm-stub.c" />
<ClCompile Include="..\..\..\qemu\target-arm\neon_helper.c" />
<ClCompile Include="..\..\..\qemu\target-arm\op_helper.c" />
<ClCompile Include="..\..\..\qemu\target-arm\psci.c" />
<ClCompile Include="..\..\..\qemu\target-arm\translate-a64.c" />
<ClCompile Include="..\..\..\qemu\target-arm\translate.c" />
<ClCompile Include="..\..\..\qemu\target-arm\unicorn_aarch64.c" />
<ClCompile Include="..\..\..\qemu\target-arm\unicorn_arm.c" />
<ClCompile Include="..\..\..\qemu\target-i386\arch_memory_mapping.c" />
<ClCompile Include="..\..\..\qemu\target-i386\cc_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\cpu.c" />
<ClCompile Include="..\..\..\qemu\target-i386\excp_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\fpu_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\int_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\mem_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\misc_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\seg_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\smm_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\svm_helper.c" />
<ClCompile Include="..\..\..\qemu\target-i386\translate.c" />
<ClCompile Include="..\..\..\qemu\target-i386\unicorn.c" />
<ClCompile Include="..\..\..\qemu\target-m68k\cpu.c" />
<ClCompile Include="..\..\..\qemu\target-m68k\helper.c" />
<ClCompile Include="..\..\..\qemu\target-m68k\m68k-semi.c" />
<ClCompile Include="..\..\..\qemu\target-m68k\op_helper.c" />
<ClCompile Include="..\..\..\qemu\target-m68k\translate.c" />
<ClCompile Include="..\..\..\qemu\target-m68k\unicorn.c" />
<ClCompile Include="..\..\..\qemu\target-mips\cpu.c" />
<ClCompile Include="..\..\..\qemu\target-mips\dsp_helper.c" />
<ClCompile Include="..\..\..\qemu\target-mips\helper.c" />
<ClCompile Include="..\..\..\qemu\target-mips\lmi_helper.c" />
<ClCompile Include="..\..\..\qemu\target-mips\msa_helper.c" />
<ClCompile Include="..\..\..\qemu\target-mips\op_helper.c" />
<ClCompile Include="..\..\..\qemu\target-mips\translate.c" />
<ClCompile Include="..\..\..\qemu\target-mips\translate_init.c" />
<ClCompile Include="..\..\..\qemu\target-mips\unicorn.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\cc_helper.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\cpu.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\fop_helper.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\gdbstub.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\helper.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\int32_helper.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\int64_helper.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\ldst_helper.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\machine.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\mmu_helper.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\translate.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\unicorn.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\unicorn64.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\vis_helper.c" />
<ClCompile Include="..\..\..\qemu\target-sparc\win_helper.c" />
<ClCompile Include="..\..\..\qemu\tcg-runtime.c" />
<ClCompile Include="..\..\..\qemu\tcg\aarch64\tcg-target.c" />
<ClCompile Include="..\..\..\qemu\tcg\arm\tcg-target.c" />
<ClCompile Include="..\..\..\qemu\tcg\i386\tcg-target.c" />
<ClCompile Include="..\..\..\qemu\tcg\ia64\tcg-target.c" />
<ClCompile Include="..\..\..\qemu\tcg\mips\tcg-target.c" />
<ClCompile Include="..\..\..\qemu\tcg\optimize.c" />
<ClCompile Include="..\..\..\qemu\tcg\ppc\tcg-target.c" />
<ClCompile Include="..\..\..\qemu\tcg\s390\tcg-target.c" />
<ClCompile Include="..\..\..\qemu\tcg\sparc\tcg-target.c" />
<ClCompile Include="..\..\..\qemu\tcg\tcg.c" />
<ClCompile Include="..\..\..\qemu\translate-all.c" />
<ClCompile Include="..\..\..\qemu\util\aes.c" />
<ClCompile Include="..\..\..\qemu\util\bitmap.c" />
<ClCompile Include="..\..\..\qemu\util\bitops.c" />
@ -157,13 +73,6 @@
<ClInclude Include="..\..\..\include\unicorn\sparc.h" />
<ClInclude Include="..\..\..\include\unicorn\unicorn.h" />
<ClInclude Include="..\..\..\include\unicorn\x86.h" />
<ClInclude Include="..\..\..\qemu\aarch64-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\aarch64.h" />
<ClInclude Include="..\..\..\qemu\arm-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\arm.h" />
<ClInclude Include="..\..\..\qemu\config-host.h" />
<ClInclude Include="..\..\..\qemu\fpu\softfloat-macros.h" />
<ClInclude Include="..\..\..\qemu\fpu\softfloat-specialize.h" />
<ClInclude Include="..\..\..\qemu\include\config.h" />
<ClInclude Include="..\..\..\qemu\include\elf.h" />
<ClInclude Include="..\..\..\qemu\include\exec\address-spaces.h" />
@ -255,79 +164,9 @@
<ClInclude Include="..\..\..\qemu\include\sysemu\memory_mapping.h" />
<ClInclude Include="..\..\..\qemu\include\sysemu\os-win32.h" />
<ClInclude Include="..\..\..\qemu\include\sysemu\sysemu.h" />
<ClInclude Include="..\..\..\qemu\m68k-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\m68k.h" />
<ClInclude Include="..\..\..\qemu\mips-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\mips.h" />
<ClInclude Include="..\..\..\qemu\mips64-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\mips64.h" />
<ClInclude Include="..\..\..\qemu\mips64el-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\mips64el.h" />
<ClInclude Include="..\..\..\qemu\mipsel-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\mipsel.h" />
<ClInclude Include="..\..\..\qemu\powerpc.h" />
<ClInclude Include="..\..\..\qemu\qapi-types.h" />
<ClInclude Include="..\..\..\qemu\qapi-visit.h" />
<ClInclude Include="..\..\..\qemu\softmmu_template.h" />
<ClInclude Include="..\..\..\qemu\sparc-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\sparc.h" />
<ClInclude Include="..\..\..\qemu\sparc64-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\sparc64.h" />
<ClInclude Include="..\..\..\qemu\target-arm\arm_ldst.h" />
<ClInclude Include="..\..\..\qemu\target-arm\cpu-qom.h" />
<ClInclude Include="..\..\..\qemu\target-arm\cpu.h" />
<ClInclude Include="..\..\..\qemu\target-arm\helper-a64.h" />
<ClInclude Include="..\..\..\qemu\target-arm\helper.h" />
<ClInclude Include="..\..\..\qemu\target-arm\internals.h" />
<ClInclude Include="..\..\..\qemu\target-arm\kvm-consts.h" />
<ClInclude Include="..\..\..\qemu\target-arm\kvm_arm.h" />
<ClInclude Include="..\..\..\qemu\target-arm\op_addsub.h" />
<ClInclude Include="..\..\..\qemu\target-arm\translate.h" />
<ClInclude Include="..\..\..\qemu\target-arm\unicorn.h" />
<ClInclude Include="..\..\..\qemu\target-i386\cc_helper_template.h" />
<ClInclude Include="..\..\..\qemu\target-i386\cpu-qom.h" />
<ClInclude Include="..\..\..\qemu\target-i386\cpu.h" />
<ClInclude Include="..\..\..\qemu\target-i386\helper.h" />
<ClInclude Include="..\..\..\qemu\target-i386\ops_sse.h" />
<ClInclude Include="..\..\..\qemu\target-i386\ops_sse_header.h" />
<ClInclude Include="..\..\..\qemu\target-i386\shift_helper_template.h" />
<ClInclude Include="..\..\..\qemu\target-i386\svm.h" />
<ClInclude Include="..\..\..\qemu\target-i386\topology.h" />
<ClInclude Include="..\..\..\qemu\target-i386\unicorn.h" />
<ClInclude Include="..\..\..\qemu\target-m68k\cpu-qom.h" />
<ClInclude Include="..\..\..\qemu\target-m68k\cpu.h" />
<ClInclude Include="..\..\..\qemu\target-m68k\helper.h" />
<ClInclude Include="..\..\..\qemu\target-m68k\m68k-qreg.h" />
<ClInclude Include="..\..\..\qemu\target-m68k\unicorn.h" />
<ClInclude Include="..\..\..\qemu\target-mips\cpu-qom.h" />
<ClInclude Include="..\..\..\qemu\target-mips\cpu.h" />
<ClInclude Include="..\..\..\qemu\target-mips\helper.h" />
<ClInclude Include="..\..\..\qemu\target-mips\kvm_mips.h" />
<ClInclude Include="..\..\..\qemu\target-mips\mips-defs.h" />
<ClInclude Include="..\..\..\qemu\target-mips\unicorn.h" />
<ClInclude Include="..\..\..\qemu\target-sparc\cpu-qom.h" />
<ClInclude Include="..\..\..\qemu\target-sparc\cpu.h" />
<ClInclude Include="..\..\..\qemu\target-sparc\helper.h" />
<ClInclude Include="..\..\..\qemu\target-sparc\unicorn.h" />
<ClInclude Include="..\..\..\qemu\tcg\aarch64\tcg-target.h" />
<ClInclude Include="..\..\..\qemu\tcg\arm\tcg-target.h" />
<ClInclude Include="..\..\..\qemu\tcg\i386\tcg-target.h" />
<ClInclude Include="..\..\..\qemu\tcg\ia64\tcg-target.h" />
<ClInclude Include="..\..\..\qemu\tcg\mips\tcg-target.h" />
<ClInclude Include="..\..\..\qemu\tcg\ppc\tcg-target.h" />
<ClInclude Include="..\..\..\qemu\tcg\s390\tcg-target.h" />
<ClInclude Include="..\..\..\qemu\tcg\sparc\tcg-target.h" />
<ClInclude Include="..\..\..\qemu\tcg\tcg-be-ldst.h" />
<ClInclude Include="..\..\..\qemu\tcg\tcg-be-null.h" />
<ClInclude Include="..\..\..\qemu\tcg\tcg-op.h" />
<ClInclude Include="..\..\..\qemu\tcg\tcg-opc.h" />
<ClInclude Include="..\..\..\qemu\tcg\tcg-runtime.h" />
<ClInclude Include="..\..\..\qemu\tcg\tcg.h" />
<ClInclude Include="..\..\..\qemu\translate-all.h" />
<ClInclude Include="..\..\..\qemu\unicorn_common.h" />
<ClInclude Include="..\..\..\qemu\vl.h" />
<ClInclude Include="..\..\..\qemu\x86_64-softmmu\config-target.h" />
<ClInclude Include="..\..\..\qemu\x86_64.h" />
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{B6EFD6D7-C2D4-4FBB-B363-2E08CE09CC96}</ProjectGuid>
@ -341,6 +180,12 @@
<PlatformToolset>v110_xp</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v110_xp</PlatformToolset>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
@ -348,15 +193,28 @@
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v110_xp</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>MultiByte</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup />
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
@ -365,9 +223,28 @@
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;UNICORN_HAS_X86;UNICORN_HAS_ARM;UNICORN_HAS_M68K;UNICORN_HAS_ARM64;UNICORN_HAS_MIPS;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPS64EL;UNICORN_HAS_SPARC</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__i386__;UNICORN_HAS_X86</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalIncludeDirectories>../../..;../../../include;../../../qemu;../../../qemu/include;../../../qemu/tcg;</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>.;..;../../../include;../../../qemu;../../../qemu/include;../../../qemu/tcg</AdditionalIncludeDirectories>
<AdditionalOptions>/wd4018 /wd4244 /wd4267 %(AdditionalOptions)</AdditionalOptions>
<ExceptionHandling>false</ExceptionHandling>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>
</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__x86_64__;UNICORN_HAS_X86</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalIncludeDirectories>.;..;../../../include;../../../qemu;../../../qemu/include;../../../qemu/tcg</AdditionalIncludeDirectories>
<AdditionalOptions>/wd4018 /wd4244 /wd4267 %(AdditionalOptions)</AdditionalOptions>
<ExceptionHandling>false</ExceptionHandling>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
@ -382,9 +259,32 @@
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;;inline=__inline;__func__=__FUNCTION__;UNICORN_HAS_X86;UNICORN_HAS_ARM;UNICORN_HAS_M68K;UNICORN_HAS_ARM64;UNICORN_HAS_MIPS;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPS64EL;UNICORN_HAS_SPARC</PreprocessorDefinitions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__i386__;UNICORN_HAS_X86</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalIncludeDirectories>../../..;../../../include;../../../qemu;../../../qemu/include;../../../qemu/tcg;</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>.;..;../../../include;../../../qemu;../../../qemu/include;../../../qemu/tcg</AdditionalIncludeDirectories>
<AdditionalOptions>/wd4018 /wd4244 /wd4267 %(AdditionalOptions)</AdditionalOptions>
<ExceptionHandling>false</ExceptionHandling>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<PrecompiledHeader>
</PrecompiledHeader>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__x86_64__;UNICORN_HAS_X86</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalIncludeDirectories>.;..;../../../include;../../../qemu;../../../qemu/include;../../../qemu/tcg</AdditionalIncludeDirectories>
<AdditionalOptions>/wd4018 /wd4244 /wd4267 %(AdditionalOptions)</AdditionalOptions>
<ExceptionHandling>false</ExceptionHandling>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>

View file

@ -10,9 +10,6 @@
<Filter Include="qemu\util">
<UniqueIdentifier>{1f3288bd-38e9-49c1-ae30-6ac4bc1b86c4}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\fpu">
<UniqueIdentifier>{c0201656-497d-4ed6-8a56-dd0762761a3e}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\hw">
<UniqueIdentifier>{d98a987f-6e81-4454-9bb4-f79d49d1d8fa}</UniqueIdentifier>
</Filter>
@ -25,75 +22,9 @@
<Filter Include="qemu\qom">
<UniqueIdentifier>{9264dcdf-55d8-4416-9b53-7962937b4db5}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\target-arm">
<UniqueIdentifier>{11627444-6a62-44fe-b8fc-774a6067f8cc}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\target-i386">
<UniqueIdentifier>{2429788d-aad9-4ca7-9d54-35a822230a07}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\target-m68k">
<UniqueIdentifier>{340ebf7e-2f53-4b12-95d4-e70fc2b11a5d}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\target-mips">
<UniqueIdentifier>{6b30f3e8-9f55-4988-a9dd-ff3c57308816}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\tcg">
<UniqueIdentifier>{f8014ce9-b821-4489-80b3-6c16b5b071ef}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\hw\arm">
<UniqueIdentifier>{cfff595c-b2bf-4a2e-a855-68c9fef221b0}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\hw\core">
<UniqueIdentifier>{973f87b6-2729-473f-bda6-d61d8c799a77}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\hw\i386">
<UniqueIdentifier>{e5fc48fc-fe02-45ed-92d2-2dd0b4adef2d}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\hw\intc">
<UniqueIdentifier>{ffb1f350-eddc-4580-b5bc-0faeecd99f67}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\hw\m68k">
<UniqueIdentifier>{f8f12737-01ce-4367-bb90-6445527c8fce}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\hw\mips">
<UniqueIdentifier>{783f8a18-9df3-4a38-b4ea-0ddf0c87d4ae}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\hw\sparc">
<UniqueIdentifier>{12bbb3c0-b269-4d05-9765-a6b9f2125c8e}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\hw\sparc64">
<UniqueIdentifier>{e7582a4a-8013-41f3-94fa-761bd5c3a8d6}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\tcg\aarch64">
<UniqueIdentifier>{88817e6c-d61b-4d46-b9f2-0e408e87c1fa}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\tcg\arm">
<UniqueIdentifier>{f7414536-2ff3-4c82-8143-89f2808c7cf4}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\tcg\i386">
<UniqueIdentifier>{0d6f8e4a-029f-458b-a6f0-c7361c979b30}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\tcg\ia64">
<UniqueIdentifier>{2516f9cb-907d-4cb8-8f6a-f3670918ed93}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\tcg\mips">
<UniqueIdentifier>{f5268739-450f-4fdf-94ae-26eb57c40e8b}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\tcg\ppc">
<UniqueIdentifier>{1b964d24-ad70-4c4f-beba-7bda6dc53647}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\tcg\s390">
<UniqueIdentifier>{39c6e228-c856-4d92-91a2-c09a8674c963}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\tcg\sparc">
<UniqueIdentifier>{1444105b-8d4f-47a2-a554-21f938a2bd5e}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\aarch64-softmmu">
<UniqueIdentifier>{66c03921-c358-480e-91f8-2ea74fabd50b}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\arm-softmmu">
<UniqueIdentifier>{abc1e0f7-8597-49c4-ad32-abecfa273617}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\include">
<UniqueIdentifier>{235236d2-79fa-48f5-b496-cb79a9290f6b}</UniqueIdentifier>
</Filter>
@ -139,33 +70,6 @@
<Filter Include="qemu\include\sysemu">
<UniqueIdentifier>{62c5db3f-0d6d-4a3a-92b7-0cd602058a62}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\m68k-softmmu">
<UniqueIdentifier>{6ce87816-6698-4c16-8acf-8a459854f6f4}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\mips-softemu">
<UniqueIdentifier>{491f047e-eace-42b6-87a1-ee60dccbcd35}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\sparc-softmmu">
<UniqueIdentifier>{02648fb9-3b9f-4439-99a6-5ecb75c8a5cb}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\mipsel-softmmu">
<UniqueIdentifier>{f0d04c05-527b-400a-accf-153b826e1f59}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\mips64el-softmmu">
<UniqueIdentifier>{05f49c70-b00f-4771-95db-c3f85d93bc0a}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\mip64-softmmu">
<UniqueIdentifier>{2228e25b-0e64-4642-afe2-840ddced695c}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\sparc64-softmmu">
<UniqueIdentifier>{06dbbe01-5d7d-4b1e-93ec-61a1251c03a6}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\x86_64-softmmu">
<UniqueIdentifier>{d3bdc96b-d4f2-4aa7-9182-4670d57d642f}</UniqueIdentifier>
</Filter>
<Filter Include="qemu\target-sparc">
<UniqueIdentifier>{3bd33e7d-394d-4418-9350-e18e249d7c45}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\..\list.c">
@ -174,30 +78,9 @@
<ClCompile Include="..\..\..\qemu\accel.c">
<Filter>qemu</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\cpu-exec.c">
<Filter>qemu</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\cpus.c">
<Filter>qemu</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\cputlb.c">
<Filter>qemu</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\exec.c">
<Filter>qemu</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\glib_compat.c">
<Filter>qemu</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\ioport.c">
<Filter>qemu</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\memory.c">
<Filter>qemu</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\memory_mapping.c">
<Filter>qemu</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\qapi-types.c">
<Filter>qemu</Filter>
</ClCompile>
@ -213,63 +96,15 @@
<ClCompile Include="..\..\..\qemu\tcg-runtime.c">
<Filter>qemu</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\translate-all.c">
<Filter>qemu</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\vl.c">
<Filter>qemu</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\fpu\softfloat.c">
<Filter>qemu\fpu</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\hw\arm\tosa.c">
<Filter>qemu\hw\arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\hw\arm\virt.c">
<Filter>qemu\hw\arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\hw\core\machine.c">
<Filter>qemu\hw\core</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\hw\core\qdev.c">
<Filter>qemu\hw\core</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\hw\i386\pc.c">
<Filter>qemu\hw\i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\hw\i386\pc_piix.c">
<Filter>qemu\hw\i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\hw\intc\apic.c">
<Filter>qemu\hw\intc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\hw\intc\apic_common.c">
<Filter>qemu\hw\intc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\hw\m68k\dummy_m68k.c">
<Filter>qemu\hw\m68k</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\hw\mips\addr.c">
<Filter>qemu\hw\mips</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\hw\mips\cputimer.c">
<Filter>qemu\hw\mips</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\hw\mips\mips_int.c">
<Filter>qemu\hw\mips</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\hw\mips\mips_r4k.c">
<Filter>qemu\hw\mips</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\hw\sparc\leon3.c">
<Filter>qemu\hw\sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\hw\sparc\sun4m.c">
<Filter>qemu\hw\sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\hw\sparc64\sun4u.c">
<Filter>qemu\hw\sparc64</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\qapi\qapi-dealloc-visitor.c">
<Filter>qemu\qapi</Filter>
</ClCompile>
@ -318,213 +153,6 @@
<ClCompile Include="..\..\..\qemu\qom\qom-qobject.c">
<Filter>qemu\qom</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-arm\arm-semi.c">
<Filter>qemu\target-arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-arm\cpu.c">
<Filter>qemu\target-arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-arm\cpu64.c">
<Filter>qemu\target-arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-arm\crypto_helper.c">
<Filter>qemu\target-arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-arm\helper-a64.c">
<Filter>qemu\target-arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-arm\helper.c">
<Filter>qemu\target-arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-arm\iwmmxt_helper.c">
<Filter>qemu\target-arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-arm\kvm-stub.c">
<Filter>qemu\target-arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-arm\neon_helper.c">
<Filter>qemu\target-arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-arm\op_helper.c">
<Filter>qemu\target-arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-arm\psci.c">
<Filter>qemu\target-arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-arm\translate-a64.c">
<Filter>qemu\target-arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-arm\translate.c">
<Filter>qemu\target-arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-arm\unicorn_aarch64.c">
<Filter>qemu\target-arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-arm\unicorn_arm.c">
<Filter>qemu\target-arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-i386\arch_memory_mapping.c">
<Filter>qemu\target-i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-i386\cc_helper.c">
<Filter>qemu\target-i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-i386\cpu.c">
<Filter>qemu\target-i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-i386\excp_helper.c">
<Filter>qemu\target-i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-i386\fpu_helper.c">
<Filter>qemu\target-i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-i386\helper.c">
<Filter>qemu\target-i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-i386\int_helper.c">
<Filter>qemu\target-i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-i386\mem_helper.c">
<Filter>qemu\target-i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-i386\misc_helper.c">
<Filter>qemu\target-i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-i386\seg_helper.c">
<Filter>qemu\target-i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-i386\smm_helper.c">
<Filter>qemu\target-i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-i386\svm_helper.c">
<Filter>qemu\target-i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-i386\translate.c">
<Filter>qemu\target-i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-i386\unicorn.c">
<Filter>qemu\target-i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-m68k\cpu.c">
<Filter>qemu\target-m68k</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-m68k\helper.c">
<Filter>qemu\target-m68k</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-m68k\m68k-semi.c">
<Filter>qemu\target-m68k</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-m68k\op_helper.c">
<Filter>qemu\target-m68k</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-m68k\translate.c">
<Filter>qemu\target-m68k</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-m68k\unicorn.c">
<Filter>qemu\target-m68k</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-mips\cpu.c">
<Filter>qemu\target-mips</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-mips\dsp_helper.c">
<Filter>qemu\target-mips</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-mips\helper.c">
<Filter>qemu\target-mips</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-mips\lmi_helper.c">
<Filter>qemu\target-mips</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-mips\msa_helper.c">
<Filter>qemu\target-mips</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-mips\op_helper.c">
<Filter>qemu\target-mips</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-mips\translate.c">
<Filter>qemu\target-mips</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-mips\translate_init.c">
<Filter>qemu\target-mips</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-mips\unicorn.c">
<Filter>qemu\target-mips</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-sparc\cc_helper.c">
<Filter>qemu\target-sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-sparc\cpu.c">
<Filter>qemu\target-sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-sparc\fop_helper.c">
<Filter>qemu\target-sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-sparc\gdbstub.c">
<Filter>qemu\target-sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-sparc\helper.c">
<Filter>qemu\target-sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-sparc\int32_helper.c">
<Filter>qemu\target-sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-sparc\int64_helper.c">
<Filter>qemu\target-sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-sparc\ldst_helper.c">
<Filter>qemu\target-sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-sparc\machine.c">
<Filter>qemu\target-sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-sparc\mmu_helper.c">
<Filter>qemu\target-sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-sparc\translate.c">
<Filter>qemu\target-sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-sparc\unicorn.c">
<Filter>qemu\target-sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-sparc\unicorn64.c">
<Filter>qemu\target-sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-sparc\vis_helper.c">
<Filter>qemu\target-sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\target-sparc\win_helper.c">
<Filter>qemu\target-sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\tcg\optimize.c">
<Filter>qemu\tcg</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\tcg\tcg.c">
<Filter>qemu\tcg</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\tcg\aarch64\tcg-target.c">
<Filter>qemu\tcg\aarch64</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\tcg\arm\tcg-target.c">
<Filter>qemu\tcg\arm</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\tcg\i386\tcg-target.c">
<Filter>qemu\tcg\i386</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\tcg\ia64\tcg-target.c">
<Filter>qemu\tcg\ia64</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\tcg\mips\tcg-target.c">
<Filter>qemu\tcg\mips</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\tcg\ppc\tcg-target.c">
<Filter>qemu\tcg\ppc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\tcg\s390\tcg-target.c">
<Filter>qemu\tcg\s390</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\tcg\sparc\tcg-target.c">
<Filter>qemu\tcg\sparc</Filter>
</ClCompile>
<ClCompile Include="..\..\..\qemu\util\aes.c">
<Filter>qemu\util</Filter>
</ClCompile>
@ -576,72 +204,15 @@
<ClInclude Include="..\..\..\include\uc_priv.h">
<Filter>priv</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\aarch64.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\arm.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\config-host.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\m68k.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\mips.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\mips64.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\mips64el.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\mipsel.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\powerpc.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\qapi-types.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\qapi-visit.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\softmmu_template.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\sparc.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\sparc64.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\translate-all.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\unicorn_common.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\vl.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\x86_64.h">
<Filter>qemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\aarch64-softmmu\config-target.h">
<Filter>qemu\aarch64-softmmu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\arm-softmmu\config-target.h">
<Filter>qemu\arm-softmmu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\fpu\softfloat-macros.h">
<Filter>qemu\fpu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\fpu\softfloat-specialize.h">
<Filter>qemu\fpu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\include\config.h">
<Filter>qemu\include</Filter>
</ClInclude>
@ -915,180 +486,6 @@
<ClInclude Include="..\..\..\qemu\include\sysemu\sysemu.h">
<Filter>qemu\include\sysemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\m68k-softmmu\config-target.h">
<Filter>qemu\m68k-softmmu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\mips-softmmu\config-target.h">
<Filter>qemu\mips-softemu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\mips64-softmmu\config-target.h">
<Filter>qemu\mip64-softmmu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\mips64el-softmmu\config-target.h">
<Filter>qemu\mips64el-softmmu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\mipsel-softmmu\config-target.h">
<Filter>qemu\mipsel-softmmu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\sparc-softmmu\config-target.h">
<Filter>qemu\sparc-softmmu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\sparc64-softmmu\config-target.h">
<Filter>qemu\sparc64-softmmu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-arm\arm_ldst.h">
<Filter>qemu\target-arm</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-arm\cpu-qom.h">
<Filter>qemu\target-arm</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-arm\cpu.h">
<Filter>qemu\target-arm</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-arm\helper-a64.h">
<Filter>qemu\target-arm</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-arm\helper.h">
<Filter>qemu\target-arm</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-arm\internals.h">
<Filter>qemu\target-arm</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-arm\kvm-consts.h">
<Filter>qemu\target-arm</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-arm\kvm_arm.h">
<Filter>qemu\target-arm</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-arm\op_addsub.h">
<Filter>qemu\target-arm</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-arm\translate.h">
<Filter>qemu\target-arm</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-arm\unicorn.h">
<Filter>qemu\target-arm</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-i386\cc_helper_template.h">
<Filter>qemu\target-i386</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-i386\cpu-qom.h">
<Filter>qemu\target-i386</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-i386\cpu.h">
<Filter>qemu\target-i386</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-i386\helper.h">
<Filter>qemu\target-i386</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-i386\ops_sse.h">
<Filter>qemu\target-i386</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-i386\ops_sse_header.h">
<Filter>qemu\target-i386</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-i386\shift_helper_template.h">
<Filter>qemu\target-i386</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-i386\svm.h">
<Filter>qemu\target-i386</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-i386\topology.h">
<Filter>qemu\target-i386</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-i386\unicorn.h">
<Filter>qemu\target-i386</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-m68k\cpu-qom.h">
<Filter>qemu\target-m68k</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-m68k\cpu.h">
<Filter>qemu\target-m68k</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-m68k\helper.h">
<Filter>qemu\target-m68k</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-m68k\m68k-qreg.h">
<Filter>qemu\target-m68k</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-m68k\unicorn.h">
<Filter>qemu\target-m68k</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-mips\cpu-qom.h">
<Filter>qemu\target-mips</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-mips\cpu.h">
<Filter>qemu\target-mips</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-mips\helper.h">
<Filter>qemu\target-mips</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-mips\kvm_mips.h">
<Filter>qemu\target-mips</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-mips\mips-defs.h">
<Filter>qemu\target-mips</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-mips\unicorn.h">
<Filter>qemu\target-mips</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-sparc\cpu-qom.h">
<Filter>qemu\target-sparc</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-sparc\cpu.h">
<Filter>qemu\target-sparc</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-sparc\helper.h">
<Filter>qemu\target-sparc</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\target-sparc\unicorn.h">
<Filter>qemu\target-sparc</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\tcg\tcg-be-ldst.h">
<Filter>qemu\tcg</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\tcg\tcg-be-null.h">
<Filter>qemu\tcg</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\tcg\tcg-op.h">
<Filter>qemu\tcg</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\tcg\tcg-opc.h">
<Filter>qemu\tcg</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\tcg\tcg-runtime.h">
<Filter>qemu\tcg</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\tcg\tcg.h">
<Filter>qemu\tcg</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\tcg\aarch64\tcg-target.h">
<Filter>qemu\tcg\aarch64</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\tcg\arm\tcg-target.h">
<Filter>qemu\tcg\arm</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\tcg\i386\tcg-target.h">
<Filter>qemu\tcg\i386</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\tcg\ia64\tcg-target.h">
<Filter>qemu\tcg\ia64</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\tcg\mips\tcg-target.h">
<Filter>qemu\tcg\mips</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\tcg\ppc\tcg-target.h">
<Filter>qemu\tcg\ppc</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\tcg\s390\tcg-target.h">
<Filter>qemu\tcg\s390</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\tcg\sparc\tcg-target.h">
<Filter>qemu\tcg\sparc</Filter>
</ClInclude>
<ClInclude Include="..\..\..\qemu\x86_64-softmmu\config-target.h">
<Filter>qemu\x86_64-softmmu</Filter>
</ClInclude>
<ClInclude Include="..\..\..\include\unicorn\arm.h" />
<ClInclude Include="..\..\..\include\unicorn\arm64.h" />
<ClInclude Include="..\..\..\include\unicorn\m68k.h" />

View file

@ -195,11 +195,16 @@ static int gettimeofday(struct timeval* t, void* timezone)
// TODO: add unistd stuff here ...
static int usleep(uint32_t t) {
int ret, err_code;
long value = t; // time in microseconds
struct timeval tv;
FD_SET dummy_set;
FD_ZERO(&dummy_set);
tv.tv_sec = value / 1000000;
tv.tv_usec = value % 1000000;
return select(0, NULL, NULL, NULL, &tv)==0 ? 0 : -1;
ret = select(0, &dummy_set, NULL, NULL, &tv);
err_code = WSAGetLastError();
return ret==0 ? 0 : -1;
}
/*
#include <chrono>

View file

@ -21,13 +21,24 @@ static void machine_finalize(struct uc_struct *uc, Object *obj, void *opaque)
}
static const TypeInfo machine_info = {
.name = TYPE_MACHINE,
.parent = TYPE_OBJECT,
.abstract = true,
.class_size = sizeof(MachineClass),
.instance_size = sizeof(MachineState),
.instance_init = machine_initfn,
.instance_finalize = machine_finalize,
TYPE_MACHINE,
TYPE_OBJECT,
sizeof(MachineClass),
sizeof(MachineState),
NULL,
machine_initfn,
NULL,
machine_finalize,
NULL,
NULL,
NULL,
NULL,
true,
};
void machine_register_types(struct uc_struct *uc)

View file

@ -280,16 +280,24 @@ Object *qdev_get_machine(struct uc_struct *uc)
}
static const TypeInfo device_type_info = {
.name = TYPE_DEVICE,
.parent = TYPE_OBJECT,
.instance_size = sizeof(DeviceState),
.instance_init = device_initfn,
.instance_post_init = device_post_init,
.instance_finalize = device_finalize,
.class_base_init = device_class_base_init,
.class_init = device_class_init,
.abstract = true,
.class_size = sizeof(DeviceClass),
TYPE_DEVICE,
TYPE_OBJECT,
sizeof(DeviceClass),
sizeof(DeviceState),
NULL,
device_initfn,
device_post_init,
device_finalize,
NULL,
device_class_init,
device_class_base_init,
NULL,
true,
};
static void qbus_initfn(struct uc_struct *uc, Object *obj, void *opaque)
@ -309,14 +317,24 @@ static void qbus_finalize(struct uc_struct *uc, Object *obj, void *opaque)
}
static const TypeInfo bus_info = {
.name = TYPE_BUS,
.parent = TYPE_OBJECT,
.instance_size = sizeof(BusState),
.abstract = true,
.class_size = sizeof(BusClass),
.instance_init = qbus_initfn,
.instance_finalize = qbus_finalize,
.class_init = bus_class_init,
TYPE_BUS,
TYPE_OBJECT,
sizeof(BusClass),
sizeof(BusState),
NULL,
qbus_initfn,
NULL,
qbus_finalize,
NULL,
bus_class_init,
NULL,
NULL,
true,
};
void qdev_register_types(struct uc_struct *uc)

View file

@ -94,10 +94,14 @@ typedef struct CPUTLBEntry {
use the corresponding iotlb value. */
uintptr_t addend;
/* padding to get a power of two size */
uint8_t dummy[(1 << CPU_TLB_ENTRY_BITS) -
#if defined(_MSC_VER) && defined(_WIN64)
// dummy would be size 0 which isnt supported by msvc, so we remove it
#else
uint8_t dummy[(1 << CPU_TLB_ENTRY_BITS) -
(sizeof(target_ulong) * 3 +
(((-(int)sizeof(target_ulong)) * 3) & (sizeof(uintptr_t) - 1)) +
sizeof(uintptr_t))];
#endif
} CPUTLBEntry;
QEMU_BUILD_BUG_ON(sizeof(CPUTLBEntry) != (1 << CPU_TLB_ENTRY_BITS));

View file

@ -199,18 +199,13 @@
/* Provide shorter names for GCC atomic builtins. */
#ifdef _MSC_VER
#ifdef _WIN64
#define atomic_fetch_inc(ptr) InterlockedIncrement64(ptr)
#define atomic_fetch_dec(ptr) InterlockedDecrement64(ptr)
#define atomic_fetch_add(ptr, n) InterlockedAdd64(ptr, n)
#define atomic_fetch_sub(ptr, n) InterlockedAdd64(ptr, -n)
#else
#define atomic_fetch_inc(ptr) InterlockedIncrement(ptr)
#define atomic_fetch_dec(ptr) InterlockedDecrement(ptr)
#define atomic_fetch_add(ptr, n) InterlockedAdd(ptr, n)
#define atomic_fetch_sub(ptr, n) InterlockedAdd(ptr, -n)
#endif
// these return the new value (so we make it return the previous value)
#define atomic_fetch_inc(ptr) ((InterlockedIncrement(ptr))-1)
#define atomic_fetch_dec(ptr) ((InterlockedDecrement(ptr))+1)
#define atomic_fetch_add(ptr, n) ((InterlockedAdd(ptr, n))-n)
#define atomic_fetch_sub(ptr, n) ((InterlockedAdd(ptr, -n))+n)
#else
// these return the previous value
#define atomic_fetch_inc(ptr) __sync_fetch_and_add(ptr, 1)
#define atomic_fetch_dec(ptr) __sync_fetch_and_add(ptr, -1)
#define atomic_fetch_add __sync_fetch_and_add
@ -222,17 +217,10 @@
/* And even shorter names that return void. */
#ifdef _MSC_VER
#ifdef _WIN64
#define atomic_inc(ptr) ((void) InterlockedIncrement64(ptr))
#define atomic_dec(ptr) ((void) InterlockedDecrement64(ptr))
#define atomic_add(ptr, n) ((void) InterlockedAdd64(ptr, n))
#define atomic_sub(ptr, n) ((void) InterlockedAdd64(ptr, -n))
#else
#define atomic_inc(ptr) ((void) InterlockedIncrement(ptr))
#define atomic_dec(ptr) ((void) InterlockedDecrement(ptr))
#define atomic_add(ptr, n) ((void) InterlockedAdd(ptr, n))
#define atomic_sub(ptr, n) ((void) InterlockedAdd(ptr, -n))
#endif
#else
#define atomic_inc(ptr) ((void) __sync_fetch_and_add(ptr, 1))
#define atomic_dec(ptr) ((void) __sync_fetch_and_add(ptr, -1))

View file

@ -558,6 +558,9 @@ static inline int64_t cpu_get_real_ticks(void)
static inline int64_t cpu_get_real_ticks(void)
{
#ifdef _MSC_VER
return __rdtsc();
#else
uint32_t low,high;
int64_t val;
asm volatile("rdtsc" : "=a" (low), "=d" (high));
@ -565,6 +568,7 @@ static inline int64_t cpu_get_real_ticks(void)
val <<= 32;
val |= low;
return val;
#endif
}
#elif defined(__hppa__)

View file

@ -56,7 +56,7 @@
# define EWOULDBLOCK WSAEWOULDBLOCK
#endif
#if defined(_WIN64)
#if defined(_WIN64) && !defined(_MSC_VER)
/* On w64, setjmp is implemented by _setjmp which needs a second parameter.
* If this parameter is NULL, longjump does no stack unwinding.
* That is what we need for QEMU. Passing the value of register rsp (default)

View file

@ -400,7 +400,7 @@ static void flatview_destroy(FlatView *view)
static void flatview_ref(FlatView *view)
{
atomic_inc(&view->ref);
atomic_inc(&view->ref);
}
static void flatview_unref(FlatView *view)

View file

@ -977,7 +977,16 @@ typedef struct CPUX86State {
uint8_t nmi_injected;
uint8_t nmi_pending;
CPU_COMMON
#if NB_MMU_MODES == 0
#error NB_MMU_MODES is zero
#endif
#if CPU_TLB_SIZE == 0
#error CPU_TLB_SIZE is zero
#endif
#if CPU_VTLB_SIZE == 0
#error CPU_VTLB_SIZE is zero
#endif
CPU_COMMON
/* Fields from here on are preserved across CPU reset. */

View file

@ -2375,7 +2375,11 @@ static int tcg_reg_alloc_call(TCGContext *s, const TCGOpDef *def,
flags = args[nb_oargs + nb_iargs + 1];
nb_regs = ARRAY_SIZE(tcg_target_call_iarg_regs);
if (nb_regs > nb_params) {
#if TCG_TARGET_REG_BITS == 32
// do this because msvc cannot have arrays with 0 entries.
nb_regs = 0;
#endif
if (nb_regs > nb_params) {
nb_regs = nb_params;
}

View file

@ -127,7 +127,9 @@ void *qemu_thread_join(QemuThread *thread)
ret = data->ret;
assert(data->mode != QEMU_THREAD_DETACHED);
DeleteCriticalSection(&data->cs);
data->uc->qemu_thread_data = NULL;
g_free(data);
data = NULL;
return ret;
}

View file

@ -3,6 +3,14 @@
/* Sample code to demonstrate how to emulate X86 code */
#include "platform.h"
#include <unicorn/unicorn.h>
#pragma comment(lib, "ws2_32.lib")
#pragma comment(lib, "unicorn.lib")
#pragma comment(lib, "x86_64-softmmu.lib")
/*
// windows specific
#ifdef _MSC_VER
#include <io.h>
@ -25,6 +33,7 @@
#include "platform.h"
#include <unicorn/unicorn.h>
#endif // _MSC_VER
*/
// common includes
#include <string.h>
@ -1005,7 +1014,7 @@ int main(int argc, char **argv, char **envp)
test_x86_16();
}
else if (!strcmp(argv[1], "-32")) {
test_i386();
test_i386();
test_i386_map_ptr();
test_i386_inout();
test_i386_context_save();

21
uc.c
View file

@ -270,7 +270,15 @@ uc_err uc_open(uc_arch arch, uc_mode mode, uc_engine **result)
if (uc->reg_reset)
uc->reg_reset(uc);
return UC_ERR_OK;
// init winsock sockets so we can use select() for usleep() implementation
#ifdef _MSC_VER
{
WSADATA wsa_data;
WSAStartup(0x202, &wsa_data);
}
#endif
return UC_ERR_OK;
} else {
return UC_ERR_ARCH;
}
@ -312,7 +320,7 @@ uc_err uc_close(uc_engine *uc)
// Thread relateds.
if (uc->qemu_thread_data)
free(uc->qemu_thread_data);
g_free(uc->qemu_thread_data);
// Other auxilaries.
free(uc->l1_map);
@ -349,7 +357,14 @@ uc_err uc_close(uc_engine *uc)
memset(uc, 0, sizeof(*uc));
free(uc);
return UC_ERR_OK;
// free winsock sockets - used so we can use select() for usleep() implementation
#ifdef _MSC_VER
{
WSACleanup();
}
#endif
return UC_ERR_OK;
}