diff options
Diffstat (limited to 'src/jit/emitxarch.h')
-rw-r--r-- | src/jit/emitxarch.h | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/src/jit/emitxarch.h b/src/jit/emitxarch.h index 98256cdaa7..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 @@ -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; } |