Index: src/x64/codegen-x64.h |
=================================================================== |
--- src/x64/codegen-x64.h (revision 2704) |
+++ src/x64/codegen-x64.h (working copy) |
@@ -619,6 +619,7 @@ |
OverwriteMode mode, |
GenericBinaryFlags flags) |
: op_(op), mode_(mode), flags_(flags) { |
+ use_sse3_ = CpuFeatures::IsSupported(CpuFeatures::SSE3); |
ASSERT(OpBits::is_valid(Token::NUM_TOKENS)); |
} |
@@ -628,6 +629,7 @@ |
Token::Value op_; |
OverwriteMode mode_; |
GenericBinaryFlags flags_; |
+ bool use_sse3_; |
const char* GetName(); |
@@ -640,17 +642,19 @@ |
} |
#endif |
- // Minor key encoding in 16 bits FOOOOOOOOOOOOOMM. |
+ // Minor key encoding in 16 bits FSOOOOOOOOOOOOMM. |
class ModeBits: public BitField<OverwriteMode, 0, 2> {}; |
- class OpBits: public BitField<Token::Value, 2, 13> {}; |
+ class OpBits: public BitField<Token::Value, 2, 12> {}; |
+ class SSE3Bits: public BitField<bool, 14, 1> {}; |
class FlagBits: public BitField<GenericBinaryFlags, 15, 1> {}; |
Major MajorKey() { return GenericBinaryOp; } |
int MinorKey() { |
// Encode the parameters in a unique 16 bit value. |
return OpBits::encode(op_) |
- | ModeBits::encode(mode_) |
- | FlagBits::encode(flags_); |
+ | ModeBits::encode(mode_) |
+ | FlagBits::encode(flags_) |
+ | SSE3Bits::encode(use_sse3_); |
} |
void Generate(MacroAssembler* masm); |
}; |