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