#include <assert.h>
#include "exec.h"
-void do_raise_exception(void)
-{
- cpu_loop_exit();
-}
-
#ifndef CONFIG_USER_ONLY
#define MMUSUFFIX _mmu
-#ifdef __s390__
-# define GETPC() ((void*)((unsigned long)__builtin_return_address(0) & 0x7fffffffUL))
-#else
-# define GETPC() (__builtin_return_address(0))
-#endif
#define SHIFT 0
#include "softmmu_template.h"
cpu_restore_state(tb, env, pc, NULL);
}
}
- do_raise_exception();
+ cpu_loop_exit();
}
env = saved_env;
}
#endif
+void helper_ldtlb(void)
+{
+#ifdef CONFIG_USER_ONLY
+ /* XXXXX */
+ assert(0);
+#else
+ cpu_load_tlb(env);
+#endif
+}
+
+void helper_raise_illegal_instruction(void)
+{
+ env->exception_index = 0x180;
+ cpu_loop_exit();
+}
+
+void helper_raise_slot_illegal_instruction(void)
+{
+ env->exception_index = 0x1a0;
+ cpu_loop_exit();
+}
+
+void helper_debug(void)
+{
+ env->exception_index = EXCP_DEBUG;
+ cpu_loop_exit();
+}
+
+void helper_sleep(void)
+{
+ env->halted = 1;
+ env->exception_index = EXCP_HLT;
+ cpu_loop_exit();
+}
+
+void helper_trapa(uint32_t tra)
+{
+ env->tra = tra << 2;
+ env->exception_index = 0x160;
+ cpu_loop_exit();
+}
+
void helper_addc_T0_T1(void)
{
uint32_t tmp0, tmp1;