summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorGabriel Corona <gabriel.corona@enst-bretagne.fr>2015-01-05 20:24:37 +0100
committerGabriel Corona <gabriel.corona@enst-bretagne.fr>2015-01-28 09:50:19 +0100
commita4adfe194a5b954bdda80dc6b145e0cf646ccd63 (patch)
tree0642454b39449ab171dcce8f93aada6ab15d5c0b /Source
parenta957f93532bfd2025fe20dd8929866c97b5e4df1 (diff)
JitRegister: overload Register with a [start,end) variant
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Common/JitRegister.cpp7
-rw-r--r--Source/Core/Common/JitRegister.h24
-rw-r--r--Source/Core/VideoCommon/VertexLoaderX64.cpp2
3 files changed, 25 insertions, 8 deletions
diff --git a/Source/Core/Common/JitRegister.cpp b/Source/Core/Common/JitRegister.cpp
index 7475cb6b85..964a88b214 100644
--- a/Source/Core/Common/JitRegister.cpp
+++ b/Source/Core/Common/JitRegister.cpp
@@ -71,18 +71,15 @@ void Shutdown()
s_perf_map_file.Close();
}
-void Register(const void* base_address, u32 code_size,
- const char* format, ...)
+void RegisterV(const void* base_address, u32 code_size,
+ const char* format, va_list args)
{
#if !(defined USE_OPROFILE && USE_OPROFILE) && !defined(USE_VTUNE)
if (!s_perf_map_file.IsOpen())
return;
#endif
- va_list args;
- va_start(args, format);
std::string symbol_name = StringFromFormatV(format, args);
- va_end(args);
#if defined USE_OPROFILE && USE_OPROFILE
op_write_native_code(s_agent, symbol_name.data(), (u64)base_address,
diff --git a/Source/Core/Common/JitRegister.h b/Source/Core/Common/JitRegister.h
index 2e9f168fb4..ce63aeace0 100644
--- a/Source/Core/Common/JitRegister.h
+++ b/Source/Core/Common/JitRegister.h
@@ -3,6 +3,7 @@
// Refer to the license.txt file included.
#pragma once
+#include <stdarg.h>
#include "Common/CommonTypes.h"
namespace JitRegister
@@ -10,7 +11,26 @@ namespace JitRegister
void Init();
void Shutdown();
-void Register(const void* base_address, u32 code_size,
- const char* format, ...);
+void RegisterV(const void* base_address, u32 code_size,
+ const char* format, va_list args);
+
+inline void Register(const void* base_address, u32 code_size,
+ const char* format, ...)
+{
+ va_list args;
+ va_start(args, format);
+ RegisterV(base_address, code_size, format, args);
+ va_end(args);
+}
+
+inline void Register(const void* start, const void* end,
+ const char* format, ...)
+{
+ va_list args;
+ va_start(args, format);
+ u32 code_size = (u32) ((const char*) end - (const char*) start);
+ RegisterV(start, code_size, format, args);
+ va_end(args);
+}
}
diff --git a/Source/Core/VideoCommon/VertexLoaderX64.cpp b/Source/Core/VideoCommon/VertexLoaderX64.cpp
index 50c46da027..de4ab58cc6 100644
--- a/Source/Core/VideoCommon/VertexLoaderX64.cpp
+++ b/Source/Core/VideoCommon/VertexLoaderX64.cpp
@@ -33,7 +33,7 @@ VertexLoaderX64::VertexLoaderX64(const TVtxDesc& vtx_desc, const VAT& vtx_att):
std::string name;
AppendToString(&name);
- JitRegister::Register(region, (u32)(GetCodePtr() - region), name.c_str());
+ JitRegister::Register(region, GetCodePtr(), name.c_str());
}
OpArg VertexLoaderX64::GetVertexAddr(int array, u64 attribute)