void* newCPU() { if(lastCPU == NULL) ARMul_EmulateInit(); lastCPU = ARMul_NewState(); return lastCPU; }
ARM_Interpreter::ARM_Interpreter() { state = new ARMul_State; state->m_MemoryMap = NULL; ARMul_EmulateInit(); memset(state, 0, sizeof(ARMul_State)); ARMul_NewState(state); state->abort_model = 0; state->cpu = (cpu_config_t*)&arm11_cpu_info; state->bigendSig = LOW; ARMul_SelectProcessor(state, ARM_v6_Prop | ARM_v5_Prop | ARM_v5e_Prop); state->lateabtSig = LOW; // Reset the core to initial state ARMul_CoProInit(state); ARMul_Reset(state); state->NextInstr = RESUME; // NOTE: This will be overwritten by LoadContext state->Emulate = 3; state->pc = state->Reg[15] = 0x00000000; state->Reg[13] = 0x10000000; // Set stack pointer to the top of the stack state->servaddr = 0xFFFF0000; }
static void init () { static int done; if (!done) { ARMul_EmulateInit (); state = ARMul_NewState (); state->bigendSig = (big_endian ? HIGH : LOW); ARMul_MemoryInit (state, mem_size); ARMul_OSInit (state); state->verbose = verbosity; done = 1; } }
static void init (void) { static int done; if (!done) { ARMul_EmulateInit (); state = ARMul_NewState (); state->bigendSig = (CURRENT_TARGET_BYTE_ORDER == BFD_ENDIAN_BIG ? HIGH : LOW); ARMul_MemoryInit (state, mem_size); ARMul_OSInit (state); state->verbose = 0; done = 1; } }
ARM_Interpreter::ARM_Interpreter() { m_state = new ARMul_State; ARMul_EmulateInit(); ARMul_NewState(m_state); m_state->abort_model = 0; m_state->cpu = (cpu_config_t*)&s_arm11_cpu_info; m_state->bigendSig = LOW; ARMul_SelectProcessor(m_state, ARM_v6_Prop | ARM_v5_Prop | ARM_v5e_Prop); m_state->lateabtSig = LOW; mmu_init(m_state); // Reset the core to initial state ARMul_Reset(m_state); m_state->NextInstr = 0; m_state->Emulate = 3; m_state->pc = m_state->Reg[15] = 0x00000000; m_state->Reg[13] = 0x10000000; // Set stack pointer to the top of the stack }