//do_interrupt(0, 0, 0, 0, 0);
env->interrupt_request &= ~CPU_INTERRUPT_TIMER;
} else if (interrupt_request & CPU_INTERRUPT_HALT) {
- env1->halted = 1;
- return EXCP_HALTED;
+ env->interrupt_request &= ~CPU_INTERRUPT_HALT;
+ env->halted = 1;
+ env->exception_index = EXCP_HLT;
+ cpu_loop_exit();
}
#elif defined(TARGET_ARM)
if (interrupt_request & CPU_INTERRUPT_FIQ
break;
case 0xa000000:
MISC_DPRINTF("Write power management %2.2x\n", val & 0xff);
-#if 0
- // XXX almost works
cpu_interrupt(cpu_single_env, CPU_INTERRUPT_HALT);
-#endif
break;
}
}