Revision e6afc2f4 target-sh4/op_helper.c

b/target-sh4/op_helper.c
20 20
#include <assert.h>
21 21
#include "exec.h"
22 22

  
23
void do_raise_exception(void)
24
{
25
    cpu_loop_exit();
26
}
27

  
28 23
#ifndef CONFIG_USER_ONLY
29 24

  
30 25
#define MMUSUFFIX _mmu
......
64 59
		cpu_restore_state(tb, env, pc, NULL);
65 60
	    }
66 61
	}
67
	do_raise_exception();
62
	cpu_loop_exit();
68 63
    }
69 64
    env = saved_env;
70 65
}
......
81 76
#endif
82 77
}
83 78

  
79
void helper_raise_illegal_instruction(void)
80
{
81
    env->exception_index = 0x180;
82
    cpu_loop_exit();
83
}
84

  
85
void helper_raise_slot_illegal_instruction(void)
86
{
87
    env->exception_index = 0x1a0;
88
    cpu_loop_exit();
89
}
90

  
91
void helper_debug(void)
92
{
93
    env->exception_index = EXCP_DEBUG;
94
    cpu_loop_exit();
95
}
96

  
97
void helper_sleep(void)
98
{
99
    env->halted = 1;
100
    env->exception_index = EXCP_HLT;
101
    cpu_loop_exit();
102
}
103

  
104
void helper_trapa(uint32_t tra)
105
{
106
    env->tra = tra << 2;
107
    env->exception_index = 0x160;
108
    cpu_loop_exit();
109
}
110

  
84 111
void helper_addc_T0_T1(void)
85 112
{
86 113
    uint32_t tmp0, tmp1;

Also available in: Unified diff