summaryrefslogtreecommitdiff
path: root/Source/Core/Common/x64Analyzer.cpp
diff options
context:
space:
mode:
authorskidau <skidau@gmail.com>2014-10-07 13:26:23 +1100
committerskidau <skidau@gmail.com>2014-10-07 13:26:23 +1100
commitb3b34d16e6591cfe3aa879b2d4643c1415424a3b (patch)
tree6db8662f202359d6061179976bf65a53dba46694 /Source/Core/Common/x64Analyzer.cpp
parent8fdf43109f69cdf0a8219b1232ad3043987beb00 (diff)
parentc7208318fb9f9fd535f0f78c7c2956d874ef5b98 (diff)
Merge pull request #1218 from hthh/trampolinecaching
JIT: reuse trampolines when possible
Diffstat (limited to 'Source/Core/Common/x64Analyzer.cpp')
-rw-r--r--Source/Core/Common/x64Analyzer.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/Source/Core/Common/x64Analyzer.cpp b/Source/Core/Common/x64Analyzer.cpp
index 5be91ea585..7e8b40e6cd 100644
--- a/Source/Core/Common/x64Analyzer.cpp
+++ b/Source/Core/Common/x64Analyzer.cpp
@@ -223,3 +223,19 @@ bool DisassembleMov(const unsigned char *codePtr, InstructionInfo *info)
info->instructionSize = (int)(codePtr - startCodePtr);
return true;
}
+
+bool InstructionInfo::operator==(const InstructionInfo &other) const
+{
+ return operandSize == other.operandSize &&
+ instructionSize == other.instructionSize &&
+ regOperandReg == other.regOperandReg &&
+ otherReg == other.otherReg &&
+ scaledReg == other.scaledReg &&
+ zeroExtend == other.zeroExtend &&
+ signExtend == other.signExtend &&
+ hasImmediate == other.hasImmediate &&
+ isMemoryWrite == other.isMemoryWrite &&
+ byteSwap == other.byteSwap &&
+ immediate == other.immediate &&
+ displacement == other.displacement;
+}