From efac4154711863128558b5b65486ac79b760367e Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Thu, 24 Feb 2011 12:31:41 +0100 Subject: target-sh4: move intr_at_halt out of cpu_halted() All targets except SH4 have the same cpu_halted() routine, and it has only one caller. It is therefore a good candidate for inlining. The difference is the handling of the intr_at_halt, which is necessary to ignore SR.BL when sleeping. Move intr_at_halt handling out of it, by setting this variable while executing the sleep instruction, and clearing it when the CPU has been woken-up by an interrupt, whatever the state of SR.BL. Also rename this variable in_sleep. Cc: Paolo Bonzini Signed-off-by: Aurelien Jarno --- target-sh4/op_helper.c | 1 + 1 file changed, 1 insertion(+) (limited to 'target-sh4/op_helper.c') diff --git a/target-sh4/op_helper.c b/target-sh4/op_helper.c index 30f9842295..b8f4ca28ed 100644 --- a/target-sh4/op_helper.c +++ b/target-sh4/op_helper.c @@ -119,6 +119,7 @@ void helper_debug(void) void helper_sleep(uint32_t next_pc) { env->halted = 1; + env->in_sleep = 1; env->exception_index = EXCP_HLT; env->pc = next_pc; cpu_loop_exit(); -- cgit v1.2.3