summaryrefslogtreecommitdiffstats
path: root/src/core/arm
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2015-07-26 03:55:52 +0200
committerLioncash <mathew1800@gmail.com>2015-07-26 04:10:54 +0200
commit03213f893e7f2cbd692144334ac72d9138fd5e70 (patch)
treed959d1751d99a6f5307b45d04e46c19c53d5efc2 /src/core/arm
parentdyncom: Remove unnecessary abort-related cruft (diff)
downloadyuzu-03213f893e7f2cbd692144334ac72d9138fd5e70.tar
yuzu-03213f893e7f2cbd692144334ac72d9138fd5e70.tar.gz
yuzu-03213f893e7f2cbd692144334ac72d9138fd5e70.tar.bz2
yuzu-03213f893e7f2cbd692144334ac72d9138fd5e70.tar.lz
yuzu-03213f893e7f2cbd692144334ac72d9138fd5e70.tar.xz
yuzu-03213f893e7f2cbd692144334ac72d9138fd5e70.tar.zst
yuzu-03213f893e7f2cbd692144334ac72d9138fd5e70.zip
Diffstat (limited to 'src/core/arm')
-rw-r--r--src/core/arm/dyncom/arm_dyncom.cpp7
-rw-r--r--src/core/arm/skyeye_common/arminit.cpp32
-rw-r--r--src/core/arm/skyeye_common/armstate.h20
-rw-r--r--src/core/arm/skyeye_common/armsupp.h2
4 files changed, 2 insertions, 59 deletions
diff --git a/src/core/arm/dyncom/arm_dyncom.cpp b/src/core/arm/dyncom/arm_dyncom.cpp
index 8d4a7dd98..a51a3acf8 100644
--- a/src/core/arm/dyncom/arm_dyncom.cpp
+++ b/src/core/arm/dyncom/arm_dyncom.cpp
@@ -20,15 +20,8 @@
ARM_DynCom::ARM_DynCom(PrivilegeMode initial_mode) {
state = Common::make_unique<ARMul_State>();
- ARMul_NewState(state.get());
- ARMul_SelectProcessor(state.get(), ARM_v6_Prop | ARM_v5_Prop | ARM_v5e_Prop);
-
- state->bigendSig = LOW;
- state->NirqSig = HIGH;
-
// Reset the core to initial state
ARMul_Reset(state.get());
- state->Emulate = RUN;
// Switch to the desired privilege mode.
switch_mode(state.get(), initial_mode);
diff --git a/src/core/arm/skyeye_common/arminit.cpp b/src/core/arm/skyeye_common/arminit.cpp
index 4e868f86b..b7c508d75 100644
--- a/src/core/arm/skyeye_common/arminit.cpp
+++ b/src/core/arm/skyeye_common/arminit.cpp
@@ -19,33 +19,6 @@
#include "core/arm/skyeye_common/armstate.h"
#include "core/arm/skyeye_common/vfp/vfp.h"
-/***************************************************************************\
-* Returns a new instantiation of the ARMulator's state *
-\***************************************************************************/
-ARMul_State* ARMul_NewState(ARMul_State* state)
-{
- state->Emulate = RUN;
- state->Mode = USER32MODE;
-
- state->lateabtSig = HIGH;
- state->bigendSig = LOW;
-
- return state;
-}
-
-/***************************************************************************\
-* Call this routine to set ARMulator to model a certain processor *
-\***************************************************************************/
-
-void ARMul_SelectProcessor(ARMul_State* state, unsigned properties)
-{
- state->is_v4 = (properties & (ARM_v4_Prop | ARM_v5_Prop)) != 0;
- state->is_v5 = (properties & ARM_v5_Prop) != 0;
- state->is_v5e = (properties & ARM_v5e_Prop) != 0;
- state->is_v6 = (properties & ARM_v6_Prop) != 0;
- state->is_v7 = (properties & ARM_v7_Prop) != 0;
-}
-
// Resets certain MPCore CP15 values to their ARM-defined reset values.
static void ResetMPCoreCP15Registers(ARMul_State* cpu)
{
@@ -104,9 +77,7 @@ static void ResetMPCoreCP15Registers(ARMul_State* cpu)
cpu->CP15[CP15_TLB_DEBUG_CONTROL] = 0x00000000;
}
-/***************************************************************************\
-* Call this routine to set up the initial machine state (or perform a RESET *
-\***************************************************************************/
+// Performs a reset
void ARMul_Reset(ARMul_State* state)
{
VFPInit(state);
@@ -125,4 +96,5 @@ void ARMul_Reset(ARMul_State* state)
state->abortSig = LOW;
state->NumInstrs = 0;
+ state->Emulate = RUN;
}
diff --git a/src/core/arm/skyeye_common/armstate.h b/src/core/arm/skyeye_common/armstate.h
index 0a165bcf0..3ba0ba5cd 100644
--- a/src/core/arm/skyeye_common/armstate.h
+++ b/src/core/arm/skyeye_common/armstate.h
@@ -89,31 +89,12 @@ struct ARMul_State
unsigned bigendSig;
unsigned syscallSig;
- // For differentiating ARM core emulation.
- bool is_v4; // Are we emulating a v4 architecture (or higher)?
- bool is_v5; // Are we emulating a v5 architecture?
- bool is_v5e; // Are we emulating a v5e architecture?
- bool is_v6; // Are we emulating a v6 architecture?
- bool is_v7; // Are we emulating a v7 architecture?
-
// TODO(bunnei): Move this cache to a better place - it should be per codeset (likely per
// process for our purposes), not per ARMul_State (which tracks CPU core state).
std::unordered_map<u32, int> instruction_cache;
};
/***************************************************************************\
-* Types of ARM we know about *
-\***************************************************************************/
-
-enum {
- ARM_v4_Prop = 0x01,
- ARM_v5_Prop = 0x02,
- ARM_v5e_Prop = 0x04,
- ARM_v6_Prop = 0x08,
- ARM_v7_Prop = 0x10,
-};
-
-/***************************************************************************\
* The hardware vector addresses *
\***************************************************************************/
@@ -167,7 +148,6 @@ enum {
* Definitions of things in the emulator *
\***************************************************************************/
void ARMul_Reset(ARMul_State* state);
-ARMul_State* ARMul_NewState(ARMul_State* state);
/***************************************************************************\
* Definitions of things in the co-processor interface *
diff --git a/src/core/arm/skyeye_common/armsupp.h b/src/core/arm/skyeye_common/armsupp.h
index d82b21107..5cf1cd1d3 100644
--- a/src/core/arm/skyeye_common/armsupp.h
+++ b/src/core/arm/skyeye_common/armsupp.h
@@ -17,8 +17,6 @@ struct ARMul_State;
bool AddOverflow(u32, u32, u32);
bool SubOverflow(u32, u32, u32);
-void ARMul_SelectProcessor(ARMul_State*, unsigned);
-
u32 AddWithCarry(u32, u32, u32, bool*, bool*);
bool ARMul_AddOverflowQ(u32, u32);