mirror of
https://github.com/yuzu-emu/unicorn.git
synced 2025-02-25 08:56:57 +00:00
Sparc support added. (#734)
* Fix for MIPS issue. * Sparc support added.
This commit is contained in:
parent
69ae8f7987
commit
a40921ce32
|
@ -18,6 +18,50 @@
|
|||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<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\hw\sparc\leon3.c" />
|
||||
<ClCompile Include="..\..\..\qemu\ioport.c" />
|
||||
<ClCompile Include="..\..\..\qemu\memory.c" />
|
||||
<ClCompile Include="..\..\..\qemu\memory_mapping.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\helper.c" />
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\int32_helper.c" />
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\ldst_helper.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\win_helper.c" />
|
||||
<ClCompile Include="..\..\..\qemu\tcg\i386\tcg-target.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\tcg\optimize.c" />
|
||||
<ClCompile Include="..\..\..\qemu\tcg\tcg.c" />
|
||||
<ClCompile Include="..\..\..\qemu\translate-all.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\..\qemu\fpu\softfloat-macros.h" />
|
||||
<ClInclude Include="..\..\..\qemu\fpu\softfloat-specialize.h" />
|
||||
<ClInclude Include="..\..\..\qemu\sparc.h" />
|
||||
<ClInclude Include="..\..\..\qemu\tcg\i386\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="..\config-host.h" />
|
||||
<ClInclude Include="..\mips-softmmu\config-target.h" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{698C2D54-475C-446F-B879-F629BBEF75FE}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
|
|
|
@ -1,2 +1,110 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="fpu">
|
||||
<UniqueIdentifier>{d424a094-0a26-4db6-85e9-e75f81c6e142}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="hw">
|
||||
<UniqueIdentifier>{dec3e9f1-0fc3-454e-ae70-78d866b5c3f8}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="tcg">
|
||||
<UniqueIdentifier>{b229bf2b-cc40-4135-b3b7-40c73bd9f597}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="tcg\i386">
|
||||
<UniqueIdentifier>{133a0d6a-6f71-4d4b-be6d-f90636aa02a2}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="hw\sparc">
|
||||
<UniqueIdentifier>{0a04b798-735c-4115-ab62-b6cfc772efed}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="target-sparc">
|
||||
<UniqueIdentifier>{10f0c533-e16b-4e31-b979-812af068bb36}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\qemu\fpu\softfloat.c">
|
||||
<Filter>fpu</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\tcg\optimize.c">
|
||||
<Filter>tcg</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\tcg\tcg.c">
|
||||
<Filter>tcg</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\tcg\i386\tcg-target.c">
|
||||
<Filter>tcg\i386</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\cpu-exec.c" />
|
||||
<ClCompile Include="..\..\..\qemu\cpus.c" />
|
||||
<ClCompile Include="..\..\..\qemu\cputlb.c" />
|
||||
<ClCompile Include="..\..\..\qemu\exec.c" />
|
||||
<ClCompile Include="..\..\..\qemu\ioport.c" />
|
||||
<ClCompile Include="..\..\..\qemu\memory.c" />
|
||||
<ClCompile Include="..\..\..\qemu\memory_mapping.c" />
|
||||
<ClCompile Include="..\..\..\qemu\translate-all.c" />
|
||||
<ClCompile Include="..\..\..\qemu\hw\sparc\leon3.c">
|
||||
<Filter>hw\sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\fop_helper.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\helper.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\ldst_helper.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\mmu_helper.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\translate.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\win_helper.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\cc_helper.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\cpu.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\unicorn.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\int32_helper.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\..\qemu\fpu\softfloat-macros.h">
|
||||
<Filter>fpu</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\qemu\fpu\softfloat-specialize.h">
|
||||
<Filter>fpu</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\qemu\tcg\tcg-be-ldst.h">
|
||||
<Filter>tcg</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\qemu\tcg\tcg-be-null.h">
|
||||
<Filter>tcg</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\qemu\tcg\tcg-op.h">
|
||||
<Filter>tcg</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\qemu\tcg\tcg-opc.h">
|
||||
<Filter>tcg</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\qemu\tcg\tcg-runtime.h">
|
||||
<Filter>tcg</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\qemu\tcg\tcg.h">
|
||||
<Filter>tcg</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\qemu\tcg\i386\tcg-target.h">
|
||||
<Filter>tcg\i386</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\config-host.h" />
|
||||
<ClInclude Include="..\mips-softmmu\config-target.h" />
|
||||
<ClInclude Include="..\..\..\qemu\sparc.h" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -18,6 +18,51 @@
|
|||
<Platform>x64</Platform>
|
||||
</ProjectConfiguration>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<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\hw\sparc64\sun4u.c" />
|
||||
<ClCompile Include="..\..\..\qemu\ioport.c" />
|
||||
<ClCompile Include="..\..\..\qemu\memory.c" />
|
||||
<ClCompile Include="..\..\..\qemu\memory_mapping.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\helper.c" />
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\int64_helper.c" />
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\ldst_helper.c" />
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\mmu_helper.c" />
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\translate.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\i386\tcg-target.c">
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</ExcludedFromBuild>
|
||||
<ExcludedFromBuild Condition="'$(Configuration)|$(Platform)'=='Release|x64'">true</ExcludedFromBuild>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\tcg\optimize.c" />
|
||||
<ClCompile Include="..\..\..\qemu\tcg\tcg.c" />
|
||||
<ClCompile Include="..\..\..\qemu\translate-all.c" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\..\qemu\fpu\softfloat-macros.h" />
|
||||
<ClInclude Include="..\..\..\qemu\fpu\softfloat-specialize.h" />
|
||||
<ClInclude Include="..\..\..\qemu\sparc64.h" />
|
||||
<ClInclude Include="..\..\..\qemu\tcg\i386\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="..\config-host.h" />
|
||||
<ClInclude Include="..\mips-softmmu\config-target.h" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Label="Globals">
|
||||
<ProjectGuid>{8804AD29-E398-480C-AC0F-98EC1B7A51CB}</ProjectGuid>
|
||||
<Keyword>Win32Proj</Keyword>
|
||||
|
|
|
@ -1,2 +1,113 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<ItemGroup>
|
||||
<Filter Include="target-sparc">
|
||||
<UniqueIdentifier>{1f15e2b2-fae3-41e5-b787-70c44beb828c}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="fpu">
|
||||
<UniqueIdentifier>{ee6a3abf-6f14-47ab-8b40-f859d030230a}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="hw">
|
||||
<UniqueIdentifier>{4a271b0a-7736-4457-98f8-8c21ad4d2601}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="tcg">
|
||||
<UniqueIdentifier>{7c7b0370-fe65-4c21-94e6-f4561470087d}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="tcg\i386">
|
||||
<UniqueIdentifier>{51a4ddc6-4078-4db0-9b29-c68c558b2f93}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="hw\sparc64">
|
||||
<UniqueIdentifier>{46e355ab-da0b-431b-929b-8d77b3ab90bc}</UniqueIdentifier>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\cc_helper.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\cpu.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\fop_helper.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\helper.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\ldst_helper.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\mmu_helper.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\translate.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\win_helper.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\vis_helper.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\int64_helper.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\target-sparc\unicorn64.c">
|
||||
<Filter>target-sparc</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\fpu\softfloat.c">
|
||||
<Filter>fpu</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\tcg\optimize.c">
|
||||
<Filter>tcg</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\tcg\tcg.c">
|
||||
<Filter>tcg</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\tcg\i386\tcg-target.c">
|
||||
<Filter>tcg\i386</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\qemu\translate-all.c" />
|
||||
<ClCompile Include="..\..\..\qemu\memory_mapping.c" />
|
||||
<ClCompile Include="..\..\..\qemu\memory.c" />
|
||||
<ClCompile Include="..\..\..\qemu\ioport.c" />
|
||||
<ClCompile Include="..\..\..\qemu\exec.c" />
|
||||
<ClCompile Include="..\..\..\qemu\cputlb.c" />
|
||||
<ClCompile Include="..\..\..\qemu\cpus.c" />
|
||||
<ClCompile Include="..\..\..\qemu\cpu-exec.c" />
|
||||
<ClCompile Include="..\..\..\qemu\hw\sparc64\sun4u.c">
|
||||
<Filter>hw\sparc64</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="..\..\..\qemu\fpu\softfloat-macros.h">
|
||||
<Filter>fpu</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\qemu\fpu\softfloat-specialize.h">
|
||||
<Filter>fpu</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\qemu\tcg\tcg-be-ldst.h">
|
||||
<Filter>tcg</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\qemu\tcg\tcg-be-null.h">
|
||||
<Filter>tcg</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\qemu\tcg\tcg-op.h">
|
||||
<Filter>tcg</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\qemu\tcg\tcg-opc.h">
|
||||
<Filter>tcg</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\qemu\tcg\tcg-runtime.h">
|
||||
<Filter>tcg</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\qemu\tcg\tcg.h">
|
||||
<Filter>tcg</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\qemu\tcg\i386\tcg-target.h">
|
||||
<Filter>tcg\i386</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\mips-softmmu\config-target.h" />
|
||||
<ClInclude Include="..\config-host.h" />
|
||||
<ClInclude Include="..\..\..\qemu\sparc64.h" />
|
||||
</ItemGroup>
|
||||
</Project>
|
|
@ -237,7 +237,7 @@
|
|||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__i386__;UNICORN_HAS_MIPS;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64EL;UNICORN_HAS_X86</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__i386__;UNICORN_HAS_MIPS;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64EL;UNICORN_HAS_SPARC;UNICORN_HAS_X86</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>.;..;../../../include;../../../qemu;../../../qemu/include;../../../qemu/tcg</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>/wd4018 /wd4244 /wd4267 %(AdditionalOptions)</AdditionalOptions>
|
||||
|
@ -249,7 +249,7 @@
|
|||
</Link>
|
||||
<Lib>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>ws2_32.lib;mips-softmmu.lib;mips64-softmmu.lib;mipsel-softmmu.lib;mips64el-softmmu.lib;x86_64-softmmu.lib</AdditionalDependencies>
|
||||
<AdditionalDependencies>ws2_32.lib;mips-softmmu.lib;mips64-softmmu.lib;mipsel-softmmu.lib;mips64el-softmmu.lib;sparc-softmmu.lib;sparc64-softmmu.lib;x86_64-softmmu.lib</AdditionalDependencies>
|
||||
</Lib>
|
||||
<PreBuildEvent>
|
||||
<Command>..\prebuild_script.bat</Command>
|
||||
|
@ -261,7 +261,7 @@
|
|||
</PrecompiledHeader>
|
||||
<WarningLevel>Level3</WarningLevel>
|
||||
<Optimization>Disabled</Optimization>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__x86_64__;UNICORN_HAS_MIPS;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64EL;UNICORN_HAS_X86</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__x86_64__;UNICORN_HAS_MIPS;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64EL;UNICORN_HAS_SPARC;UNICORN_HAS_X86</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>.;..;../../../include;../../../qemu;../../../qemu/include;../../../qemu/tcg</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>/wd4018 /wd4244 /wd4267 %(AdditionalOptions)</AdditionalOptions>
|
||||
|
@ -273,7 +273,7 @@
|
|||
</Link>
|
||||
<Lib>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>ws2_32.lib;mips-softmmu.lib;mips64-softmmu.lib;mipsel-softmmu.lib;mips64el-softmmu.lib;x86_64-softmmu.lib</AdditionalDependencies>
|
||||
<AdditionalDependencies>ws2_32.lib;mips-softmmu.lib;mips64-softmmu.lib;mipsel-softmmu.lib;mips64el-softmmu.lib;sparc-softmmu.lib;sparc64-softmmu.lib;x86_64-softmmu.lib</AdditionalDependencies>
|
||||
</Lib>
|
||||
<PreBuildEvent>
|
||||
<Command>..\prebuild_script.bat</Command>
|
||||
|
@ -287,7 +287,7 @@
|
|||
<Optimization>MaxSpeed</Optimization>
|
||||
<FunctionLevelLinking>true</FunctionLevelLinking>
|
||||
<IntrinsicFunctions>true</IntrinsicFunctions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__i386__;UNICORN_HAS_MIPS;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64EL;UNICORN_HAS_X86</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__i386__;UNICORN_HAS_MIPS;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64EL;UNICORN_HAS_SPARC;UNICORN_HAS_X86</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>.;..;../../../include;../../../qemu;../../../qemu/include;../../../qemu/tcg</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>/wd4018 /wd4244 /wd4267 %(AdditionalOptions)</AdditionalOptions>
|
||||
|
@ -301,7 +301,7 @@
|
|||
</Link>
|
||||
<Lib>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>ws2_32.lib;mips-softmmu.lib;mips64-softmmu.lib;mipsel-softmmu.lib;mips64el-softmmu.lib;x86_64-softmmu.lib</AdditionalDependencies>
|
||||
<AdditionalDependencies>ws2_32.lib;mips-softmmu.lib;mips64-softmmu.lib;mipsel-softmmu.lib;mips64el-softmmu.lib;sparc-softmmu.lib;sparc64-softmmu.lib;x86_64-softmmu.lib</AdditionalDependencies>
|
||||
</Lib>
|
||||
<PreBuildEvent>
|
||||
<Command>..\prebuild_script.bat</Command>
|
||||
|
@ -315,7 +315,7 @@
|
|||
<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_MIPS;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64EL;UNICORN_HAS_X86</PreprocessorDefinitions>
|
||||
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions);_CRT_SECURE_NO_WARNINGS;inline=__inline;__func__=__FUNCTION__;__x86_64__;UNICORN_HAS_MIPS;UNICORN_HAS_MIPS64;UNICORN_HAS_MIPSEL;UNICORN_HAS_MIPS64EL;UNICORN_HAS_SPARC;UNICORN_HAS_X86</PreprocessorDefinitions>
|
||||
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
|
||||
<AdditionalIncludeDirectories>.;..;../../../include;../../../qemu;../../../qemu/include;../../../qemu/tcg</AdditionalIncludeDirectories>
|
||||
<AdditionalOptions>/wd4018 /wd4244 /wd4267 %(AdditionalOptions)</AdditionalOptions>
|
||||
|
@ -329,7 +329,7 @@
|
|||
</Link>
|
||||
<Lib>
|
||||
<AdditionalLibraryDirectories>$(SolutionDir)$(Platform)\$(Configuration)\</AdditionalLibraryDirectories>
|
||||
<AdditionalDependencies>ws2_32.lib;mips-softmmu.lib;mips64-softmmu.lib;mipsel-softmmu.lib;mips64el-softmmu.lib;x86_64-softmmu.lib</AdditionalDependencies>
|
||||
<AdditionalDependencies>ws2_32.lib;mips-softmmu.lib;mips64-softmmu.lib;mipsel-softmmu.lib;mips64el-softmmu.lib;sparc-softmmu.lib;sparc64-softmmu.lib;x86_64-softmmu.lib</AdditionalDependencies>
|
||||
</Lib>
|
||||
<PreBuildEvent>
|
||||
<Command>..\prebuild_script.bat</Command>
|
||||
|
|
|
@ -58,10 +58,13 @@ static int leon3_generic_hw_init(struct uc_struct *uc, MachineState *machine)
|
|||
void leon3_machine_init(struct uc_struct *uc)
|
||||
{
|
||||
static QEMUMachine leon3_generic_machine = {
|
||||
.name = "leon3_generic",
|
||||
.init = leon3_generic_hw_init,
|
||||
.is_default = 1,
|
||||
.arch = UC_ARCH_SPARC,
|
||||
NULL,
|
||||
"leon3_generic",
|
||||
leon3_generic_hw_init,
|
||||
NULL,
|
||||
0,
|
||||
1,
|
||||
UC_ARCH_SPARC,
|
||||
};
|
||||
|
||||
//printf(">>> leon3_machine_init\n");
|
||||
|
|
|
@ -50,11 +50,13 @@ static int sun4u_init(struct uc_struct *uc, MachineState *machine)
|
|||
void sun4u_machine_init(struct uc_struct *uc)
|
||||
{
|
||||
static QEMUMachine sun4u_machine = {
|
||||
.name = "sun4u",
|
||||
.init = sun4u_init,
|
||||
.max_cpus = 1, // XXX for now
|
||||
.is_default = 1,
|
||||
.arch = UC_ARCH_SPARC,
|
||||
NULL,
|
||||
"sun4u",
|
||||
sun4u_init,
|
||||
NULL,
|
||||
1, // XXX for now
|
||||
1,
|
||||
UC_ARCH_SPARC,
|
||||
};
|
||||
|
||||
qemu_register_machine(uc, &sun4u_machine, TYPE_MACHINE, NULL);
|
||||
|
|
|
@ -438,35 +438,35 @@ typedef struct CCTable {
|
|||
|
||||
static const CCTable icc_table[CC_OP_NB] = {
|
||||
/* CC_OP_DYNAMIC should never happen */
|
||||
[CC_OP_DYNAMIC] = { compute_null, compute_null },
|
||||
[CC_OP_FLAGS] = { compute_all_flags, compute_C_flags },
|
||||
[CC_OP_DIV] = { compute_all_div, compute_C_div },
|
||||
[CC_OP_ADD] = { compute_all_add, compute_C_add },
|
||||
[CC_OP_ADDX] = { compute_all_addx, compute_C_addx },
|
||||
[CC_OP_TADD] = { compute_all_tadd, compute_C_add },
|
||||
[CC_OP_TADDTV] = { compute_all_taddtv, compute_C_add },
|
||||
[CC_OP_SUB] = { compute_all_sub, compute_C_sub },
|
||||
[CC_OP_SUBX] = { compute_all_subx, compute_C_subx },
|
||||
[CC_OP_TSUB] = { compute_all_tsub, compute_C_sub },
|
||||
[CC_OP_TSUBTV] = { compute_all_tsubtv, compute_C_sub },
|
||||
[CC_OP_LOGIC] = { compute_all_logic, compute_C_logic },
|
||||
{ compute_null, compute_null },
|
||||
{ compute_all_flags, compute_C_flags },
|
||||
{ compute_all_div, compute_C_div },
|
||||
{ compute_all_add, compute_C_add },
|
||||
{ compute_all_addx, compute_C_addx },
|
||||
{ compute_all_tadd, compute_C_add },
|
||||
{ compute_all_taddtv, compute_C_add },
|
||||
{ compute_all_sub, compute_C_sub },
|
||||
{ compute_all_subx, compute_C_subx },
|
||||
{ compute_all_tsub, compute_C_sub },
|
||||
{ compute_all_tsubtv, compute_C_sub },
|
||||
{ compute_all_logic, compute_C_logic },
|
||||
};
|
||||
|
||||
#ifdef TARGET_SPARC64
|
||||
static const CCTable xcc_table[CC_OP_NB] = {
|
||||
/* CC_OP_DYNAMIC should never happen */
|
||||
[CC_OP_DYNAMIC] = { compute_null, compute_null },
|
||||
[CC_OP_FLAGS] = { compute_all_flags_xcc, compute_C_flags_xcc },
|
||||
[CC_OP_DIV] = { compute_all_logic_xcc, compute_C_logic },
|
||||
[CC_OP_ADD] = { compute_all_add_xcc, compute_C_add_xcc },
|
||||
[CC_OP_ADDX] = { compute_all_addx_xcc, compute_C_addx_xcc },
|
||||
[CC_OP_TADD] = { compute_all_add_xcc, compute_C_add_xcc },
|
||||
[CC_OP_TADDTV] = { compute_all_add_xcc, compute_C_add_xcc },
|
||||
[CC_OP_SUB] = { compute_all_sub_xcc, compute_C_sub_xcc },
|
||||
[CC_OP_SUBX] = { compute_all_subx_xcc, compute_C_subx_xcc },
|
||||
[CC_OP_TSUB] = { compute_all_sub_xcc, compute_C_sub_xcc },
|
||||
[CC_OP_TSUBTV] = { compute_all_sub_xcc, compute_C_sub_xcc },
|
||||
[CC_OP_LOGIC] = { compute_all_logic_xcc, compute_C_logic },
|
||||
{ compute_null, compute_null },
|
||||
{ compute_all_flags_xcc, compute_C_flags_xcc },
|
||||
{ compute_all_logic_xcc, compute_C_logic },
|
||||
{ compute_all_add_xcc, compute_C_add_xcc },
|
||||
{ compute_all_addx_xcc, compute_C_addx_xcc },
|
||||
{ compute_all_add_xcc, compute_C_add_xcc },
|
||||
{ compute_all_add_xcc, compute_C_add_xcc },
|
||||
{ compute_all_sub_xcc, compute_C_sub_xcc },
|
||||
{ compute_all_subx_xcc, compute_C_subx_xcc },
|
||||
{ compute_all_sub_xcc, compute_C_sub_xcc },
|
||||
{ compute_all_sub_xcc, compute_C_sub_xcc },
|
||||
{ compute_all_logic_xcc, compute_C_logic },
|
||||
};
|
||||
#endif
|
||||
|
||||
|
|
|
@ -158,338 +158,378 @@ void cpu_sparc_set_id(CPUSPARCState *env, unsigned int cpu)
|
|||
static const sparc_def_t sparc_defs[] = {
|
||||
#ifdef TARGET_SPARC64
|
||||
{
|
||||
.name = "Fujitsu Sparc64",
|
||||
.iu_version = ((0x04ULL << 48) | (0x02ULL << 32) | (0ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 4,
|
||||
.maxtl = 4,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Fujitsu Sparc64",
|
||||
((0x04ULL << 48) | (0x02ULL << 32) | (0ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
4,
|
||||
4,
|
||||
},
|
||||
{
|
||||
.name = "Fujitsu Sparc64 III",
|
||||
.iu_version = ((0x04ULL << 48) | (0x03ULL << 32) | (0ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 5,
|
||||
.maxtl = 4,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Fujitsu Sparc64 III",
|
||||
((0x04ULL << 48) | (0x03ULL << 32) | (0ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
5,
|
||||
4,
|
||||
},
|
||||
{
|
||||
.name = "Fujitsu Sparc64 IV",
|
||||
.iu_version = ((0x04ULL << 48) | (0x04ULL << 32) | (0ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Fujitsu Sparc64 IV",
|
||||
((0x04ULL << 48) | (0x04ULL << 32) | (0ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "Fujitsu Sparc64 V",
|
||||
.iu_version = ((0x04ULL << 48) | (0x05ULL << 32) | (0x51ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Fujitsu Sparc64 V",
|
||||
((0x04ULL << 48) | (0x05ULL << 32) | (0x51ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "TI UltraSparc I",
|
||||
.iu_version = ((0x17ULL << 48) | (0x10ULL << 32) | (0x40ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI UltraSparc I",
|
||||
((0x17ULL << 48) | (0x10ULL << 32) | (0x40ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "TI UltraSparc II",
|
||||
.iu_version = ((0x17ULL << 48) | (0x11ULL << 32) | (0x20ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI UltraSparc II",
|
||||
((0x17ULL << 48) | (0x11ULL << 32) | (0x20ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "TI UltraSparc IIi",
|
||||
.iu_version = ((0x17ULL << 48) | (0x12ULL << 32) | (0x91ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI UltraSparc IIi",
|
||||
((0x17ULL << 48) | (0x12ULL << 32) | (0x91ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "TI UltraSparc IIe",
|
||||
.iu_version = ((0x17ULL << 48) | (0x13ULL << 32) | (0x14ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI UltraSparc IIe",
|
||||
((0x17ULL << 48) | (0x13ULL << 32) | (0x14ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "Sun UltraSparc III",
|
||||
.iu_version = ((0x3eULL << 48) | (0x14ULL << 32) | (0x34ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Sun UltraSparc III",
|
||||
((0x3eULL << 48) | (0x14ULL << 32) | (0x34ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "Sun UltraSparc III Cu",
|
||||
.iu_version = ((0x3eULL << 48) | (0x15ULL << 32) | (0x41ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_3,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Sun UltraSparc III Cu",
|
||||
((0x3eULL << 48) | (0x15ULL << 32) | (0x41ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_3,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "Sun UltraSparc IIIi",
|
||||
.iu_version = ((0x3eULL << 48) | (0x16ULL << 32) | (0x34ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Sun UltraSparc IIIi",
|
||||
((0x3eULL << 48) | (0x16ULL << 32) | (0x34ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "Sun UltraSparc IV",
|
||||
.iu_version = ((0x3eULL << 48) | (0x18ULL << 32) | (0x31ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_4,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Sun UltraSparc IV",
|
||||
((0x3eULL << 48) | (0x18ULL << 32) | (0x31ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_4,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "Sun UltraSparc IV+",
|
||||
.iu_version = ((0x3eULL << 48) | (0x19ULL << 32) | (0x22ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES | CPU_FEATURE_CMT,
|
||||
"Sun UltraSparc IV+",
|
||||
((0x3eULL << 48) | (0x19ULL << 32) | (0x22ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES | CPU_FEATURE_CMT,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "Sun UltraSparc IIIi+",
|
||||
.iu_version = ((0x3eULL << 48) | (0x22ULL << 32) | (0ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_3,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Sun UltraSparc IIIi+",
|
||||
((0x3eULL << 48) | (0x22ULL << 32) | (0ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_3,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
{
|
||||
.name = "Sun UltraSparc T1",
|
||||
"Sun UltraSparc T1",
|
||||
/* defined in sparc_ifu_fdp.v and ctu.h */
|
||||
.iu_version = ((0x3eULL << 48) | (0x23ULL << 32) | (0x02ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_sun4v,
|
||||
.nwindows = 8,
|
||||
.maxtl = 6,
|
||||
.features = CPU_DEFAULT_FEATURES | CPU_FEATURE_HYPV | CPU_FEATURE_CMT
|
||||
| CPU_FEATURE_GL,
|
||||
((0x3eULL << 48) | (0x23ULL << 32) | (0x02ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_sun4v,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES | CPU_FEATURE_HYPV | CPU_FEATURE_CMT
|
||||
| CPU_FEATURE_GL,
|
||||
8,
|
||||
6,
|
||||
},
|
||||
{
|
||||
.name = "Sun UltraSparc T2",
|
||||
"Sun UltraSparc T2",
|
||||
/* defined in tlu_asi_ctl.v and n2_revid_cust.v */
|
||||
.iu_version = ((0x3eULL << 48) | (0x24ULL << 32) | (0x02ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_sun4v,
|
||||
.nwindows = 8,
|
||||
.maxtl = 6,
|
||||
.features = CPU_DEFAULT_FEATURES | CPU_FEATURE_HYPV | CPU_FEATURE_CMT
|
||||
| CPU_FEATURE_GL,
|
||||
((0x3eULL << 48) | (0x24ULL << 32) | (0x02ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_sun4v,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES | CPU_FEATURE_HYPV | CPU_FEATURE_CMT
|
||||
| CPU_FEATURE_GL,
|
||||
8,
|
||||
6,
|
||||
},
|
||||
{
|
||||
.name = "NEC UltraSparc I",
|
||||
.iu_version = ((0x22ULL << 48) | (0x10ULL << 32) | (0x40ULL << 24)),
|
||||
.fpu_version = 0x00000000,
|
||||
.mmu_version = mmu_us_12,
|
||||
.nwindows = 8,
|
||||
.maxtl = 5,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"NEC UltraSparc I",
|
||||
((0x22ULL << 48) | (0x10ULL << 32) | (0x40ULL << 24)),
|
||||
0x00000000,
|
||||
mmu_us_12,
|
||||
0,0,0,0,0,0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
5,
|
||||
},
|
||||
#else
|
||||
{
|
||||
.name = "Fujitsu MB86904",
|
||||
.iu_version = 0x04 << 24, /* Impl 0, ver 4 */
|
||||
.fpu_version = 4 << 17, /* FPU version 4 (Meiko) */
|
||||
.mmu_version = 0x04 << 24, /* Impl 0, ver 4 */
|
||||
.mmu_bm = 0x00004000,
|
||||
.mmu_ctpr_mask = 0x00ffffc0,
|
||||
.mmu_cxr_mask = 0x000000ff,
|
||||
.mmu_sfsr_mask = 0x00016fff,
|
||||
.mmu_trcr_mask = 0x00ffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Fujitsu MB86904",
|
||||
0x04 << 24, /* Impl 0, ver 4 */
|
||||
4 << 17, /* FPU version 4 (Meiko) */
|
||||
0x04 << 24, /* Impl 0, ver 4 */
|
||||
0x00004000,
|
||||
0x00ffffc0,
|
||||
0x000000ff,
|
||||
0x00016fff,
|
||||
0x00ffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "Fujitsu MB86907",
|
||||
.iu_version = 0x05 << 24, /* Impl 0, ver 5 */
|
||||
.fpu_version = 4 << 17, /* FPU version 4 (Meiko) */
|
||||
.mmu_version = 0x05 << 24, /* Impl 0, ver 5 */
|
||||
.mmu_bm = 0x00004000,
|
||||
.mmu_ctpr_mask = 0xffffffc0,
|
||||
.mmu_cxr_mask = 0x000000ff,
|
||||
.mmu_sfsr_mask = 0x00016fff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"Fujitsu MB86907",
|
||||
0x05 << 24, /* Impl 0, ver 5 */
|
||||
4 << 17, /* FPU version 4 (Meiko) */
|
||||
0x05 << 24, /* Impl 0, ver 5 */
|
||||
0x00004000,
|
||||
0xffffffc0,
|
||||
0x000000ff,
|
||||
0x00016fff,
|
||||
0xffffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI MicroSparc I",
|
||||
.iu_version = 0x41000000,
|
||||
.fpu_version = 4 << 17,
|
||||
.mmu_version = 0x41000000,
|
||||
.mmu_bm = 0x00004000,
|
||||
.mmu_ctpr_mask = 0x007ffff0,
|
||||
.mmu_cxr_mask = 0x0000003f,
|
||||
.mmu_sfsr_mask = 0x00016fff,
|
||||
.mmu_trcr_mask = 0x0000003f,
|
||||
.nwindows = 7,
|
||||
.features = CPU_FEATURE_FLOAT | CPU_FEATURE_SWAP | CPU_FEATURE_MUL |
|
||||
CPU_FEATURE_DIV | CPU_FEATURE_FLUSH | CPU_FEATURE_FSQRT |
|
||||
CPU_FEATURE_FMUL,
|
||||
"TI MicroSparc I",
|
||||
0x41000000,
|
||||
4 << 17,
|
||||
0x41000000,
|
||||
0x00004000,
|
||||
0x007ffff0,
|
||||
0x0000003f,
|
||||
0x00016fff,
|
||||
0x0000003f,
|
||||
0,
|
||||
CPU_FEATURE_FLOAT | CPU_FEATURE_SWAP | CPU_FEATURE_MUL |
|
||||
CPU_FEATURE_DIV | CPU_FEATURE_FLUSH | CPU_FEATURE_FSQRT |
|
||||
CPU_FEATURE_FMUL,
|
||||
7,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI MicroSparc II",
|
||||
.iu_version = 0x42000000,
|
||||
.fpu_version = 4 << 17,
|
||||
.mmu_version = 0x02000000,
|
||||
.mmu_bm = 0x00004000,
|
||||
.mmu_ctpr_mask = 0x00ffffc0,
|
||||
.mmu_cxr_mask = 0x000000ff,
|
||||
.mmu_sfsr_mask = 0x00016fff,
|
||||
.mmu_trcr_mask = 0x00ffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI MicroSparc II",
|
||||
0x42000000,
|
||||
4 << 17,
|
||||
0x02000000,
|
||||
0x00004000,
|
||||
0x00ffffc0,
|
||||
0x000000ff,
|
||||
0x00016fff,
|
||||
0x00ffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI MicroSparc IIep",
|
||||
.iu_version = 0x42000000,
|
||||
.fpu_version = 4 << 17,
|
||||
.mmu_version = 0x04000000,
|
||||
.mmu_bm = 0x00004000,
|
||||
.mmu_ctpr_mask = 0x00ffffc0,
|
||||
.mmu_cxr_mask = 0x000000ff,
|
||||
.mmu_sfsr_mask = 0x00016bff,
|
||||
.mmu_trcr_mask = 0x00ffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI MicroSparc IIep",
|
||||
0x42000000,
|
||||
4 << 17,
|
||||
0x04000000,
|
||||
0x00004000,
|
||||
0x00ffffc0,
|
||||
0x000000ff,
|
||||
0x00016bff,
|
||||
0x00ffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI SuperSparc 40", /* STP1020NPGA */
|
||||
.iu_version = 0x41000000, /* SuperSPARC 2.x */
|
||||
.fpu_version = 0 << 17,
|
||||
.mmu_version = 0x00000800, /* SuperSPARC 2.x, no MXCC */
|
||||
.mmu_bm = 0x00002000,
|
||||
.mmu_ctpr_mask = 0xffffffc0,
|
||||
.mmu_cxr_mask = 0x0000ffff,
|
||||
.mmu_sfsr_mask = 0xffffffff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI SuperSparc 40", /* STP1020NPGA */
|
||||
0x41000000, /* SuperSPARC 2.x */
|
||||
0 << 17,
|
||||
0x00000800, /* SuperSPARC 2.x, no MXCC */
|
||||
0x00002000,
|
||||
0xffffffc0,
|
||||
0x0000ffff,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI SuperSparc 50", /* STP1020PGA */
|
||||
.iu_version = 0x40000000, /* SuperSPARC 3.x */
|
||||
.fpu_version = 0 << 17,
|
||||
.mmu_version = 0x01000800, /* SuperSPARC 3.x, no MXCC */
|
||||
.mmu_bm = 0x00002000,
|
||||
.mmu_ctpr_mask = 0xffffffc0,
|
||||
.mmu_cxr_mask = 0x0000ffff,
|
||||
.mmu_sfsr_mask = 0xffffffff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI SuperSparc 50", /* STP1020PGA */
|
||||
0x40000000, /* SuperSPARC 3.x */
|
||||
0 << 17,
|
||||
0x01000800, /* SuperSPARC 3.x, no MXCC */
|
||||
0x00002000,
|
||||
0xffffffc0,
|
||||
0x0000ffff,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI SuperSparc 51",
|
||||
.iu_version = 0x40000000, /* SuperSPARC 3.x */
|
||||
.fpu_version = 0 << 17,
|
||||
.mmu_version = 0x01000000, /* SuperSPARC 3.x, MXCC */
|
||||
.mmu_bm = 0x00002000,
|
||||
.mmu_ctpr_mask = 0xffffffc0,
|
||||
.mmu_cxr_mask = 0x0000ffff,
|
||||
.mmu_sfsr_mask = 0xffffffff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.mxcc_version = 0x00000104,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI SuperSparc 51",
|
||||
0x40000000, /* SuperSPARC 3.x */
|
||||
0 << 17,
|
||||
0x01000000, /* SuperSPARC 3.x, MXCC */
|
||||
0x00002000,
|
||||
0xffffffc0,
|
||||
0x0000ffff,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
0x00000104,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI SuperSparc 60", /* STP1020APGA */
|
||||
.iu_version = 0x40000000, /* SuperSPARC 3.x */
|
||||
.fpu_version = 0 << 17,
|
||||
.mmu_version = 0x01000800, /* SuperSPARC 3.x, no MXCC */
|
||||
.mmu_bm = 0x00002000,
|
||||
.mmu_ctpr_mask = 0xffffffc0,
|
||||
.mmu_cxr_mask = 0x0000ffff,
|
||||
.mmu_sfsr_mask = 0xffffffff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI SuperSparc 60", /* STP1020APGA */
|
||||
0x40000000, /* SuperSPARC 3.x */
|
||||
0 << 17,
|
||||
0x01000800, /* SuperSPARC 3.x, no MXCC */
|
||||
0x00002000,
|
||||
0xffffffc0,
|
||||
0x0000ffff,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI SuperSparc 61",
|
||||
.iu_version = 0x44000000, /* SuperSPARC 3.x */
|
||||
.fpu_version = 0 << 17,
|
||||
.mmu_version = 0x01000000, /* SuperSPARC 3.x, MXCC */
|
||||
.mmu_bm = 0x00002000,
|
||||
.mmu_ctpr_mask = 0xffffffc0,
|
||||
.mmu_cxr_mask = 0x0000ffff,
|
||||
.mmu_sfsr_mask = 0xffffffff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.mxcc_version = 0x00000104,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI SuperSparc 61",
|
||||
0x44000000, /* SuperSPARC 3.x */
|
||||
0 << 17,
|
||||
0x01000000, /* SuperSPARC 3.x, MXCC */
|
||||
0x00002000,
|
||||
0xffffffc0,
|
||||
0x0000ffff,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
0x00000104,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "TI SuperSparc II",
|
||||
.iu_version = 0x40000000, /* SuperSPARC II 1.x */
|
||||
.fpu_version = 0 << 17,
|
||||
.mmu_version = 0x08000000, /* SuperSPARC II 1.x, MXCC */
|
||||
.mmu_bm = 0x00002000,
|
||||
.mmu_ctpr_mask = 0xffffffc0,
|
||||
.mmu_cxr_mask = 0x0000ffff,
|
||||
.mmu_sfsr_mask = 0xffffffff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.mxcc_version = 0x00000104,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES,
|
||||
"TI SuperSparc II",
|
||||
0x40000000, /* SuperSPARC II 1.x */
|
||||
0 << 17,
|
||||
0x08000000, /* SuperSPARC II 1.x, MXCC */
|
||||
0x00002000,
|
||||
0xffffffc0,
|
||||
0x0000ffff,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
0x00000104,
|
||||
CPU_DEFAULT_FEATURES,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "LEON2",
|
||||
.iu_version = 0xf2000000,
|
||||
.fpu_version = 4 << 17, /* FPU version 4 (Meiko) */
|
||||
.mmu_version = 0xf2000000,
|
||||
.mmu_bm = 0x00004000,
|
||||
.mmu_ctpr_mask = 0x007ffff0,
|
||||
.mmu_cxr_mask = 0x0000003f,
|
||||
.mmu_sfsr_mask = 0xffffffff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES | CPU_FEATURE_TA0_SHUTDOWN,
|
||||
"LEON2",
|
||||
0xf2000000,
|
||||
4 << 17, /* FPU version 4 (Meiko) */
|
||||
0xf2000000,
|
||||
0x00004000,
|
||||
0x007ffff0,
|
||||
0x0000003f,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES | CPU_FEATURE_TA0_SHUTDOWN,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
{
|
||||
.name = "LEON3",
|
||||
.iu_version = 0xf3000000,
|
||||
.fpu_version = 4 << 17, /* FPU version 4 (Meiko) */
|
||||
.mmu_version = 0xf3000000,
|
||||
.mmu_bm = 0x00000000,
|
||||
.mmu_ctpr_mask = 0xfffffffc,
|
||||
.mmu_cxr_mask = 0x000000ff,
|
||||
.mmu_sfsr_mask = 0xffffffff,
|
||||
.mmu_trcr_mask = 0xffffffff,
|
||||
.nwindows = 8,
|
||||
.features = CPU_DEFAULT_FEATURES | CPU_FEATURE_TA0_SHUTDOWN |
|
||||
CPU_FEATURE_ASR17 | CPU_FEATURE_CACHE_CTRL | CPU_FEATURE_POWERDOWN |
|
||||
CPU_FEATURE_CASA,
|
||||
"LEON3",
|
||||
0xf3000000,
|
||||
4 << 17, /* FPU version 4 (Meiko) */
|
||||
0xf3000000,
|
||||
0x00000000,
|
||||
0xfffffffc,
|
||||
0x000000ff,
|
||||
0xffffffff,
|
||||
0xffffffff,
|
||||
0,
|
||||
CPU_DEFAULT_FEATURES | CPU_FEATURE_TA0_SHUTDOWN |
|
||||
CPU_FEATURE_ASR17 | CPU_FEATURE_CACHE_CTRL | CPU_FEATURE_POWERDOWN |
|
||||
CPU_FEATURE_CASA,
|
||||
8,
|
||||
0,
|
||||
},
|
||||
#endif
|
||||
};
|
||||
|
@ -857,16 +897,25 @@ static void sparc_cpu_class_init(struct uc_struct *uc, ObjectClass *oc, void *da
|
|||
|
||||
void sparc_cpu_register_types(void *opaque)
|
||||
{
|
||||
TypeInfo sparc_cpu_type_info = {
|
||||
.name = TYPE_SPARC_CPU,
|
||||
.parent = TYPE_CPU,
|
||||
.instance_userdata = opaque,
|
||||
.instance_size = sizeof(SPARCCPU),
|
||||
.instance_init = sparc_cpu_initfn,
|
||||
.instance_finalize = sparc_cpu_uninitfn,
|
||||
.abstract = false,
|
||||
.class_size = sizeof(SPARCCPUClass),
|
||||
.class_init = sparc_cpu_class_init,
|
||||
const TypeInfo sparc_cpu_type_info = {
|
||||
TYPE_SPARC_CPU,
|
||||
TYPE_CPU,
|
||||
|
||||
sizeof(SPARCCPUClass),
|
||||
sizeof(SPARCCPU),
|
||||
opaque,
|
||||
|
||||
sparc_cpu_initfn,
|
||||
NULL,
|
||||
sparc_cpu_uninitfn,
|
||||
|
||||
NULL,
|
||||
|
||||
sparc_cpu_class_init,
|
||||
NULL,
|
||||
NULL,
|
||||
|
||||
false,
|
||||
};
|
||||
|
||||
//printf(">>> sparc_cpu_register_types\n");
|
||||
|
|
|
@ -63,9 +63,9 @@ void sparc_cpu_do_interrupt(CPUState *cs)
|
|||
break;
|
||||
case TT_TFAULT:
|
||||
case TT_DFAULT:
|
||||
case TT_TMISS ... TT_TMISS + 3:
|
||||
case TT_DMISS ... TT_DMISS + 3:
|
||||
case TT_DPROT ... TT_DPROT + 3:
|
||||
case TT_TMISS: case TT_TMISS+1: case TT_TMISS+2: case TT_TMISS+3:
|
||||
case TT_DMISS: case TT_DMISS+1: case TT_DMISS+2: case TT_DMISS+3:
|
||||
case TT_DPROT: case TT_DPROT+1: case TT_DPROT+2: case TT_DPROT+3:
|
||||
cpu_change_pstate(env, PS_PEF | PS_PRIV | PS_MG);
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -558,7 +558,9 @@ uint64_t helper_ld_asi(CPUSPARCState *env, target_ulong addr, int asi, int size,
|
|||
break;
|
||||
}
|
||||
break;
|
||||
case 0x21 ... 0x2f: /* MMU passthrough, 0x100000000 to 0xfffffffff */
|
||||
/* MMU passthrough, 0x100000000 to 0xfffffffff */
|
||||
case 0x21: case 0x22: case 0x23: case 0x24: case 0x25: case 0x26: case 0x27:
|
||||
case 0x28: case 0x29: case 0x2a: case 0x2b: case 0x2c: case 0x2d: case 0x2e: case 0x2f:
|
||||
switch (size) {
|
||||
case 1:
|
||||
ret = ldub_phys(cs->as, (hwaddr)addr
|
||||
|
@ -964,7 +966,9 @@ void helper_st_asi(CPUSPARCState *env, target_ulong addr, uint64_t val, int asi,
|
|||
}
|
||||
}
|
||||
break;
|
||||
case 0x21 ... 0x2f: /* MMU passthrough, 0x100000000 to 0xfffffffff */
|
||||
/* MMU passthrough, 0x100000000 to 0xfffffffff */
|
||||
case 0x21: case 0x22: case 0x23: case 0x24: case 0x25: case 0x26: case 0x27:
|
||||
case 0x28: case 0x29: case 0x2a: case 0x2b: case 0x2c: case 0x2d: case 0x2e: case 0x2f:
|
||||
{
|
||||
switch (size) {
|
||||
case 1:
|
||||
|
@ -1052,17 +1056,18 @@ static inline int is_translating_asi(int asi)
|
|||
/* Ultrasparc IIi translating asi
|
||||
- note this list is defined by cpu implementation
|
||||
*/
|
||||
switch (asi) {
|
||||
case 0x04 ... 0x11:
|
||||
case 0x16 ... 0x19:
|
||||
case 0x1E ... 0x1F:
|
||||
case 0x24 ... 0x2C:
|
||||
case 0x70 ... 0x73:
|
||||
case 0x78 ... 0x79:
|
||||
case 0x80 ... 0xFF:
|
||||
if( (asi >= 0x04 && asi <= 0x11) ||
|
||||
(asi >= 0x16 && asi <= 0x19) ||
|
||||
(asi >= 0x1E && asi <= 0x1F) ||
|
||||
(asi >= 0x24 && asi <= 0x2C) ||
|
||||
(asi >= 0x70 && asi <= 0x73) ||
|
||||
(asi >= 0x78 && asi <= 0x79) ||
|
||||
(asi >= 0x80 && asi <= 0xFF) )
|
||||
{
|
||||
return 1;
|
||||
|
||||
default:
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#else
|
||||
|
@ -1303,7 +1308,7 @@ uint64_t helper_ld_asi(CPUSPARCState *env, target_ulong addr, int asi, int size,
|
|||
mmu_idx = (asi & 1) ? MMU_USER_SECONDARY_IDX : MMU_USER_IDX;
|
||||
}
|
||||
|
||||
if (cpu_get_phys_page_nofault(env, addr, mmu_idx) == -1ULL) {
|
||||
if (cpu_get_phys_page_nofault(env, addr, mmu_idx) == (0-1ULL)) {
|
||||
#ifdef DEBUG_ASI
|
||||
dump_asi("read ", last_addr, asi, size, ret);
|
||||
#endif
|
||||
|
|
|
@ -2833,14 +2833,14 @@ static void disas_sparc_insn(DisasContext * dc, unsigned int insn, bool hook_ins
|
|||
switch(rs1) {
|
||||
case 0: /* rdy */
|
||||
#ifndef TARGET_SPARC64
|
||||
case 0x01 ... 0x0e: /* undefined in the SPARCv8
|
||||
manual, rdy on the microSPARC
|
||||
II */
|
||||
case 0x0f: /* stbar in the SPARCv8 manual,
|
||||
rdy on the microSPARC II */
|
||||
case 0x10 ... 0x1f: /* implementation-dependent in the
|
||||
SPARCv8 manual, rdy on the
|
||||
microSPARC II */
|
||||
/* undefined in the SPARCv8 manual, rdy on the microSPARC II */
|
||||
case 0x01: case 0x02: case 0x03: case 0x04: case 0x05: case 0x06: case 0x07:
|
||||
case 0x08: case 0x09: case 0x0a: case 0x0b: case 0x0c: case 0x0d: case 0x0e:
|
||||
/* stbar in the SPARCv8 manual, rdy on the microSPARC II */
|
||||
case 0x0f:
|
||||
/* implementation-dependent in the SPARCv8 manual, rdy on the microSPARC II */
|
||||
case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17:
|
||||
case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 0x1e: case 0x1f:
|
||||
/* Read Asr17 */
|
||||
if (rs1 == 0x11 && dc->def->features & CPU_FEATURE_ASR17) {
|
||||
TCGv t = gen_dest_gpr(dc, rd);
|
||||
|
@ -3747,14 +3747,13 @@ static void disas_sparc_insn(DisasContext * dc, unsigned int insn, bool hook_ins
|
|||
tcg_gen_andi_tl(tcg_ctx, *(TCGv *)tcg_ctx->cpu_y, cpu_tmp0, 0xffffffff);
|
||||
break;
|
||||
#ifndef TARGET_SPARC64
|
||||
case 0x01 ... 0x0f: /* undefined in the
|
||||
SPARCv8 manual, nop
|
||||
on the microSPARC
|
||||
II */
|
||||
case 0x10 ... 0x1f: /* implementation-dependent
|
||||
in the SPARCv8
|
||||
manual, nop on the
|
||||
microSPARC II */
|
||||
/* undefined in the SPARCv8 manual, nop on the microSPARC II */
|
||||
case 0x01: case 0x02: case 0x03: case 0x04: case 0x05: case 0x06: case 0x07:
|
||||
case 0x08: case 0x09: case 0x0a: case 0x0b: case 0x0c: case 0x0d: case 0x0e: case 0x0f:
|
||||
|
||||
/* implementation-dependent in the SPARCv8 manual, nop on the microSPARC II */
|
||||
case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17:
|
||||
case 0x18: case 0x19: case 0x1a: case 0x1b: case 0x1c: case 0x1d: case 0x1e: case 0x1f:
|
||||
if ((rd == 0x13) && (dc->def->features &
|
||||
CPU_FEATURE_POWERDOWN)) {
|
||||
/* LEON3 power-down */
|
||||
|
|
Loading…
Reference in a new issue