[x64] Fix corruption of src1 in calls to EmulateVectorRotateLeft.

To mitigate this mistake in the future, implemented new
StashConstantXmm functions.
This commit is contained in:
gibbed
2019-11-30 18:45:25 -06:00
committed by Rick Gibbed
parent 43cef29c6d
commit f7a8c5ce7a
3 changed files with 40 additions and 9 deletions

View File

@@ -214,6 +214,9 @@ class X64Emitter : public Xbyak::CodeGenerator {
void LoadConstantXmm(Xbyak::Xmm dest, double v);
void LoadConstantXmm(Xbyak::Xmm dest, const vec128_t& v);
Xbyak::Address StashXmm(int index, const Xbyak::Xmm& r);
Xbyak::Address StashConstantXmm(int index, float v);
Xbyak::Address StashConstantXmm(int index, double v);
Xbyak::Address StashConstantXmm(int index, const vec128_t& v);
bool IsFeatureEnabled(uint32_t feature_flag) const {
return (feature_flags_ & feature_flag) != 0;