Revision a87295e8 target-m68k/op_helper.c
b/target-m68k/op_helper.c | ||
---|---|---|
28 | 28 |
|
29 | 29 |
#else |
30 | 30 |
|
31 |
extern int semihosting_enabled; |
|
32 |
|
|
31 | 33 |
#define MMUSUFFIX _mmu |
32 | 34 |
#define GETPC() (__builtin_return_address(0)) |
33 | 35 |
|
... | ... | |
104 | 106 |
/* Return from an exception. */ |
105 | 107 |
do_rte(); |
106 | 108 |
return; |
109 |
case EXCP_HALT_INSN: |
|
110 |
if (semihosting_enabled |
|
111 |
&& (env->sr & SR_S) != 0 |
|
112 |
&& (env->pc & 3) == 0 |
|
113 |
&& lduw_code(env->pc - 4) == 0x4e71 |
|
114 |
&& ldl_code(env->pc) == 0x4e7bf000) { |
|
115 |
env->pc += 4; |
|
116 |
do_m68k_semihosting(env, env->dregs[0]); |
|
117 |
return; |
|
118 |
} |
|
119 |
env->halted = 1; |
|
120 |
env->exception_index = EXCP_HLT; |
|
121 |
cpu_loop_exit(); |
|
122 |
return; |
|
107 | 123 |
} |
108 | 124 |
if (env->exception_index >= EXCP_TRAP0 |
109 | 125 |
&& env->exception_index <= EXCP_TRAP15) { |
Also available in: Unified diff