summaryrefslogtreecommitdiff
path: root/src/jit/emitxarch.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/jit/emitxarch.h')
-rw-r--r--src/jit/emitxarch.h40
1 files changed, 39 insertions, 1 deletions
diff --git a/src/jit/emitxarch.h b/src/jit/emitxarch.h
index 98256cd..9c435e5 100644
--- a/src/jit/emitxarch.h
+++ b/src/jit/emitxarch.h
@@ -109,6 +109,16 @@ void SetUseSSE3_4(bool value)
}
bool Is4ByteSSE4Instruction(instruction ins);
+bool hasRexPrefix(code_t code)
+{
+#ifdef _TARGET_AMD64_
+ const code_t REX_PREFIX_MASK = 0xFF00000000LL;
+ return (code & REX_PREFIX_MASK) != 0;
+#else // !_TARGET_AMD64_
+ return false;
+#endif // !_TARGET_AMD64_
+}
+
#ifdef FEATURE_AVX_SUPPORT
// 3-byte VEX prefix starts with byte 0xC4
@@ -150,6 +160,26 @@ void SetUseAVX(bool value)
useAVXEncodings = value;
}
+bool containsAVXInstruction = false;
+bool ContainsAVX()
+{
+ return containsAVXInstruction;
+}
+void SetContainsAVX(bool value)
+{
+ containsAVXInstruction = value;
+}
+
+bool contains256bitAVXInstruction = false;
+bool Contains256bitAVX()
+{
+ return contains256bitAVXInstruction;
+}
+void SetContains256bitAVX(bool value)
+{
+ contains256bitAVXInstruction = value;
+}
+
bool IsThreeOperandBinaryAVXInstruction(instruction ins);
bool IsThreeOperandMoveAVXInstruction(instruction ins);
bool IsThreeOperandAVXInstruction(instruction ins)
@@ -158,7 +188,15 @@ bool IsThreeOperandAVXInstruction(instruction ins)
}
bool Is4ByteAVXInstruction(instruction ins);
#else // !FEATURE_AVX_SUPPORT
-bool UseAVX()
+bool UseAVX()
+{
+ return false;
+}
+bool ContainsAVX()
+{
+ return false;
+}
+bool Contains256bitAVX()
{
return false;
}