#define ELF_MACHINE EM_CRIS
-#define EXCP_MMU_EXEC 0
-#define EXCP_MMU_READ 1
-#define EXCP_MMU_WRITE 2
-#define EXCP_MMU_FLUSH 3
-#define EXCP_MMU_FAULT 4
-#define EXCP_BREAK 16 /* trap. */
+#define EXCP_NMI 1
+#define EXCP_GURU 2
+#define EXCP_BUSFAULT 3
+#define EXCP_IRQ 4
+#define EXCP_BREAK 5
/* Register aliases. R0 - R15 */
#define R_FP 8
#define PR_EBP 9
#define PR_ERP 10
#define PR_SRP 11
+#define PR_NRP 12
#define PR_CCS 13
#define PR_USP 14
#define PR_SPC 15
/* CPU flags. */
+#define Q_FLAG 0x80000000
+#define M_FLAG 0x40000000
#define S_FLAG 0x200
#define R_FLAG 0x100
#define P_FLAG 0x80
/* X flag at the time of cc snapshot. */
int cc_x;
- int interrupt_request;
int interrupt_vector;
int fault_vector;
int trap_vector;
uint32_t lo;
} tlbsets[2][4][16];
- int features;
- int user_mode_only;
-
CPU_COMMON
} CPUCRISState;
#define cpu_gen_code cpu_cris_gen_code
#define cpu_signal_handler cpu_cris_signal_handler
+#define CPU_SAVE_VERSION 1
+
/* MMU modes definitions */
#define MMU_MODE0_SUFFIX _kernel
#define MMU_MODE1_SUFFIX _user
return !!(env->pregs[PR_CCS] & U_FLAG);
}
+#if defined(CONFIG_USER_ONLY)
+static inline void cpu_clone_regs(CPUState *env, target_ulong newsp)
+{
+ if (newsp)
+ env->regs[14] = newsp;
+ env->regs[10] = 0;
+}
+#endif
+
/* Support function regs. */
#define SFR_RW_GC_CFG 0][0
#define SFR_RW_MM_CFG env->pregs[PR_SRS]][0
#define SFR_RW_MM_TLB_LO env->pregs[PR_SRS]][5
#define SFR_RW_MM_TLB_HI env->pregs[PR_SRS]][6
+#define CPU_PC_FROM_TB(env, tb) env->pc = tb->pc
+
#include "cpu-all.h"
#endif