/* * Copyright (C) 2010 Tobias Klauser * * This file is part of nios2sim-ng. * * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. */ #include #include #include "nios2sim-ng.h" #include "nios2.h" void nios2_cpu_reset(struct nios2 *cpu) { memset(cpu, 0x00, sizeof(struct nios2)); cpu->mode = NIOS2_SUPERVISOR_MODE; } bool nios2_in_user_mode(struct nios2 *cpu) { if (!cpu->has_mmu) return false; else if (cpu->mode != NIOS2_USER_MODE) return false; else return true; } bool nios2_in_supervisor_mode(struct nios2 *cpu) { return !nios2_in_user_mode(cpu); } uint32_t nios2_cpu_fetch_instr(struct nios2 *cpu, uint32_t *mem_base) { uint32_t instr = 0; return instr; } int nios2_cpu_execute_instr(struct nios2 *cpu, uint32_t instr) { instruction_handler handle_instr = instruction_get_handler(instr); if (unlikely(handle_instr == NULL)) { err("Invalid instruction %08x\n", instr); return -1; } return handle_instr(cpu, instr); }