Commit 925fb139be707fe637bdadb25138c72efcf333b5
1 parent
1c6e9070
Sparc32/64 CPU selection for user emulator
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@2637 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
16 additions
and
0 deletions
linux-user/main.c
@@ -1745,6 +1745,8 @@ int main(int argc, char **argv) | @@ -1745,6 +1745,8 @@ int main(int argc, char **argv) | ||
1745 | arm_cpu_list(); | 1745 | arm_cpu_list(); |
1746 | #elif defined(TARGET_MIPS) | 1746 | #elif defined(TARGET_MIPS) |
1747 | mips_cpu_list(stdout, &fprintf); | 1747 | mips_cpu_list(stdout, &fprintf); |
1748 | +#elif defined(TARGET_SPARC) | ||
1749 | + sparc_cpu_list(stdout, &fprintf); | ||
1748 | #endif | 1750 | #endif |
1749 | _exit(1); | 1751 | _exit(1); |
1750 | } | 1752 | } |
@@ -1900,6 +1902,20 @@ int main(int argc, char **argv) | @@ -1900,6 +1902,20 @@ int main(int argc, char **argv) | ||
1900 | #elif defined(TARGET_SPARC) | 1902 | #elif defined(TARGET_SPARC) |
1901 | { | 1903 | { |
1902 | int i; | 1904 | int i; |
1905 | + const sparc_def_t *def; | ||
1906 | +#ifdef TARGET_SPARC64 | ||
1907 | + if (cpu_model == NULL) | ||
1908 | + cpu_model = "TI UltraSparc II"; | ||
1909 | +#else | ||
1910 | + if (cpu_model == NULL) | ||
1911 | + cpu_model = "Fujitsu MB86904"; | ||
1912 | +#endif | ||
1913 | + sparc_find_by_name(cpu_model, &def); | ||
1914 | + if (def == NULL) { | ||
1915 | + fprintf(stderr, "Unable to find Sparc CPU definition\n"); | ||
1916 | + exit(1); | ||
1917 | + } | ||
1918 | + cpu_sparc_register(env, def); | ||
1903 | env->pc = regs->pc; | 1919 | env->pc = regs->pc; |
1904 | env->npc = regs->npc; | 1920 | env->npc = regs->npc; |
1905 | env->y = regs->y; | 1921 | env->y = regs->y; |