summaryrefslogtreecommitdiff
path: root/src/jit/emitxarch.h
diff options
context:
space:
mode:
authorBruce Forstall <brucefo@microsoft.com>2016-12-14 18:03:20 -0800
committerBruce Forstall <brucefo@microsoft.com>2017-02-05 21:23:02 -0800
commitcacb79692c4db6c4dded4d8f6a55e7fd8fa11d3a (patch)
tree8c3ef8163e7a994a55cd65d1a57d9dd9dc783de0 /src/jit/emitxarch.h
parentdf659fc58c602eb079d3620e9e9925d3c78318f4 (diff)
downloadcoreclr-cacb79692c4db6c4dded4d8f6a55e7fd8fa11d3a.tar.gz
coreclr-cacb79692c4db6c4dded4d8f6a55e7fd8fa11d3a.tar.bz2
coreclr-cacb79692c4db6c4dded4d8f6a55e7fd8fa11d3a.zip
Enable SIMD for RyuJIT/x86
This change implements support for Vector<long>, handling SIMDIntrinsicInit, which takes a LONG, and decomposition of SIMDIntrinsicGetItem, which produces a LONG. It also enables SIMD, including AVX, by default for RyuJIT/x86.
Diffstat (limited to 'src/jit/emitxarch.h')
-rw-r--r--src/jit/emitxarch.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/src/jit/emitxarch.h b/src/jit/emitxarch.h
index 40f22ed526..9c435e5d87 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
@@ -178,7 +188,7 @@ bool IsThreeOperandAVXInstruction(instruction ins)
}
bool Is4ByteAVXInstruction(instruction ins);
#else // !FEATURE_AVX_SUPPORT
-bool UseAVX()
+bool UseAVX()
{
return false;
}