summaryrefslogtreecommitdiff
path: root/Source/Core/Common/x64Analyzer.cpp
diff options
context:
space:
mode:
authorhthh <hthh@hh.ht>2014-10-04 11:04:46 +1000
committerhthh <hthh@hh.ht>2014-10-05 15:03:11 +1100
commitc7208318fb9f9fd535f0f78c7c2956d874ef5b98 (patch)
treec6cb60a3f4979ae8dc88a1c25dffcfe7878d3adc /Source/Core/Common/x64Analyzer.cpp
parent16d3604211fd9999eb07426f2ba69c51a46e8238 (diff)
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;
+}