| 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);
|
| };
|
|
|