summaryrefslogtreecommitdiff
path: root/Source
diff options
context:
space:
mode:
authorAnthony <Helios747@users.noreply.github.com>2018-05-06 19:09:54 -0700
committerGitHub <noreply@github.com>2018-05-06 19:09:54 -0700
commitfcc5095d8ca2fef554a5a18eb39dd5544985e6f0 (patch)
tree98885807d22c8df527af782186f3450658a00c66 /Source
parentd131e4d2bc3b2911d4e3119be4e3c03961154720 (diff)
parent82b15183420f76ad2587253131fba02652de4b4e (diff)
Merge pull request #6776 from lioncash/type
x64Emitter: Use an enum class to represent FixupBranch branch types
Diffstat (limited to 'Source')
-rw-r--r--Source/Core/Common/x64Emitter.cpp10
-rw-r--r--Source/Core/Common/x64Emitter.h8
2 files changed, 12 insertions, 6 deletions
diff --git a/Source/Core/Common/x64Emitter.cpp b/Source/Core/Common/x64Emitter.cpp
index 6f7cb68342..d419f32af5 100644
--- a/Source/Core/Common/x64Emitter.cpp
+++ b/Source/Core/Common/x64Emitter.cpp
@@ -473,7 +473,7 @@ void XEmitter::CALL(const void* fnptr)
FixupBranch XEmitter::CALL()
{
FixupBranch branch;
- branch.type = 1;
+ branch.type = FixupBranch::Type::Branch32Bit;
branch.ptr = code + 5;
Write8(0xE8);
Write32(0);
@@ -483,7 +483,7 @@ FixupBranch XEmitter::CALL()
FixupBranch XEmitter::J(bool force5bytes)
{
FixupBranch branch;
- branch.type = force5bytes ? 1 : 0;
+ branch.type = force5bytes ? FixupBranch::Type::Branch32Bit : FixupBranch::Type::Branch8Bit;
branch.ptr = code + (force5bytes ? 5 : 2);
if (!force5bytes)
{
@@ -502,7 +502,7 @@ FixupBranch XEmitter::J(bool force5bytes)
FixupBranch XEmitter::J_CC(CCFlags conditionCode, bool force5bytes)
{
FixupBranch branch;
- branch.type = force5bytes ? 1 : 0;
+ branch.type = force5bytes ? FixupBranch::Type::Branch32Bit : FixupBranch::Type::Branch8Bit;
branch.ptr = code + (force5bytes ? 6 : 2);
if (!force5bytes)
{
@@ -541,14 +541,14 @@ void XEmitter::J_CC(CCFlags conditionCode, const u8* addr)
void XEmitter::SetJumpTarget(const FixupBranch& branch)
{
- if (branch.type == 0)
+ if (branch.type == FixupBranch::Type::Branch8Bit)
{
s64 distance = (s64)(code - branch.ptr);
ASSERT_MSG(DYNA_REC, distance >= -0x80 && distance < 0x80,
"Jump target too far away, needs force5Bytes = true");
branch.ptr[-1] = (u8)(s8)distance;
}
- else if (branch.type == 1)
+ else if (branch.type == FixupBranch::Type::Branch32Bit)
{
s64 distance = (s64)(code - branch.ptr);
ASSERT_MSG(DYNA_REC, distance >= -0x80000000LL && distance < 0x80000000LL,
diff --git a/Source/Core/Common/x64Emitter.h b/Source/Core/Common/x64Emitter.h
index 8eebf2e104..bd5614c812 100644
--- a/Source/Core/Common/x64Emitter.h
+++ b/Source/Core/Common/x64Emitter.h
@@ -322,8 +322,14 @@ inline u32 PtrOffset(const void* ptr, const void* base = nullptr)
struct FixupBranch
{
+ enum class Type
+ {
+ Branch8Bit,
+ Branch32Bit
+ };
+
u8* ptr;
- int type; // 0 = 8bit 1 = 32bit
+ Type type;
};
class XEmitter