Commit 9ddff3d2c44ceeba8dcbb5294183404ce73448c2
1 parent
679dee3c
Make i386-softmmu boot on Sparc host
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@6971 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
10 additions
and
0 deletions
cpu-exec.c
@@ -253,6 +253,11 @@ int cpu_exec(CPUState *env1) | @@ -253,6 +253,11 @@ int cpu_exec(CPUState *env1) | ||
253 | /* prepare setjmp context for exception handling */ | 253 | /* prepare setjmp context for exception handling */ |
254 | for(;;) { | 254 | for(;;) { |
255 | if (setjmp(env->jmp_env) == 0) { | 255 | if (setjmp(env->jmp_env) == 0) { |
256 | +#if defined(__sparc__) && !defined(HOST_SOLARIS) | ||
257 | +#undef env | ||
258 | + env = cpu_single_env; | ||
259 | +#define env cpu_single_env | ||
260 | +#endif | ||
256 | env->current_tb = NULL; | 261 | env->current_tb = NULL; |
257 | /* if an exception is pending, we execute it here */ | 262 | /* if an exception is pending, we execute it here */ |
258 | if (env->exception_index >= 0) { | 263 | if (env->exception_index >= 0) { |
@@ -390,6 +395,11 @@ int cpu_exec(CPUState *env1) | @@ -390,6 +395,11 @@ int cpu_exec(CPUState *env1) | ||
390 | env->interrupt_request &= ~(CPU_INTERRUPT_HARD | CPU_INTERRUPT_VIRQ); | 395 | env->interrupt_request &= ~(CPU_INTERRUPT_HARD | CPU_INTERRUPT_VIRQ); |
391 | intno = cpu_get_pic_interrupt(env); | 396 | intno = cpu_get_pic_interrupt(env); |
392 | qemu_log_mask(CPU_LOG_TB_IN_ASM, "Servicing hardware INT=0x%02x\n", intno); | 397 | qemu_log_mask(CPU_LOG_TB_IN_ASM, "Servicing hardware INT=0x%02x\n", intno); |
398 | +#if defined(__sparc__) && !defined(HOST_SOLARIS) | ||
399 | +#undef env | ||
400 | + env = cpu_single_env; | ||
401 | +#define env cpu_single_env | ||
402 | +#endif | ||
393 | do_interrupt(intno, 0, 0, 0, 1); | 403 | do_interrupt(intno, 0, 0, 0, 1); |
394 | /* ensure that no TB jump will be modified as | 404 | /* ensure that no TB jump will be modified as |
395 | the program flow was changed */ | 405 | the program flow was changed */ |