summaryrefslogtreecommitdiffstats
path: root/src/core
diff options
context:
space:
mode:
authorTony Wasserka <neobrainx@gmail.com>2015-03-07 15:30:40 +0100
committerTony Wasserka <neobrainx@gmail.com>2015-03-07 15:30:40 +0100
commit93e32bce72905ac1bd0a5e75066fda5e6b7bf250 (patch)
tree4530e9d8db22955416543899b6c0e59abf8b9732 /src/core
parentMerge pull request #630 from archshift/swap (diff)
parentProfiler: Implement QPCClock to get better precision on Win32 (diff)
downloadyuzu-93e32bce72905ac1bd0a5e75066fda5e6b7bf250.tar
yuzu-93e32bce72905ac1bd0a5e75066fda5e6b7bf250.tar.gz
yuzu-93e32bce72905ac1bd0a5e75066fda5e6b7bf250.tar.bz2
yuzu-93e32bce72905ac1bd0a5e75066fda5e6b7bf250.tar.lz
yuzu-93e32bce72905ac1bd0a5e75066fda5e6b7bf250.tar.xz
yuzu-93e32bce72905ac1bd0a5e75066fda5e6b7bf250.tar.zst
yuzu-93e32bce72905ac1bd0a5e75066fda5e6b7bf250.zip
Diffstat (limited to '')
-rw-r--r--src/core/arm/dyncom/arm_dyncom_interpreter.cpp8
-rw-r--r--src/core/hle/hle.cpp6
2 files changed, 14 insertions, 0 deletions
diff --git a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
index d8a708b9e..c3dba8882 100644
--- a/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
+++ b/src/core/arm/dyncom/arm_dyncom_interpreter.cpp
@@ -9,6 +9,7 @@
#include <unordered_map>
#include "common/logging/log.h"
+#include "common/profiler.h"
#include "core/mem_map.h"
#include "core/hle/hle.h"
@@ -20,6 +21,9 @@
#include "core/arm/skyeye_common/armmmu.h"
#include "core/arm/skyeye_common/vfp/vfp.h"
+Common::Profiling::TimingCategory profile_execute("DynCom::Execute");
+Common::Profiling::TimingCategory profile_decode("DynCom::Decode");
+
enum {
COND = (1 << 0),
NON_BRANCH = (1 << 1),
@@ -3569,6 +3573,8 @@ typedef struct instruction_set_encoding_item ISEITEM;
extern const ISEITEM arm_instruction[];
static int InterpreterTranslate(ARMul_State* cpu, int& bb_start, addr_t addr) {
+ Common::Profiling::ScopeTimer timer_decode(profile_decode);
+
// Decode instruction, get index
// Allocate memory and init InsCream
// Go on next, until terminal instruction
@@ -3641,6 +3647,8 @@ static bool InAPrivilegedMode(ARMul_State* core) {
}
unsigned InterpreterMainLoop(ARMul_State* state) {
+ Common::Profiling::ScopeTimer timer_execute(profile_execute);
+
#undef RM
#undef RS
diff --git a/src/core/hle/hle.cpp b/src/core/hle/hle.cpp
index c6764a529..1aaeaa9c9 100644
--- a/src/core/hle/hle.cpp
+++ b/src/core/hle/hle.cpp
@@ -4,6 +4,8 @@
#include <vector>
+#include "common/profiler.h"
+
#include "core/arm/arm_interface.h"
#include "core/mem_map.h"
#include "core/hle/hle.h"
@@ -16,6 +18,8 @@
namespace HLE {
+Common::Profiling::TimingCategory profiler_svc("SVC Calls");
+
static std::vector<ModuleDef> g_module_db;
bool g_reschedule = false; ///< If true, immediately reschedules the CPU to a new thread
@@ -30,6 +34,8 @@ static const FunctionDef* GetSVCInfo(u32 opcode) {
}
void CallSVC(u32 opcode) {
+ Common::Profiling::ScopeTimer timer_svc(profiler_svc);
+
const FunctionDef *info = GetSVCInfo(opcode);
if (!info) {