| Index: src/x64/code-stubs-x64.h
|
| diff --git a/src/x64/code-stubs-x64.h b/src/x64/code-stubs-x64.h
|
| index 6a1a18f830a6c78f6b024b1e65b897a121835e7e..ab8ea76c8f617893c4292ad0c07ed81961665021 100644
|
| --- a/src/x64/code-stubs-x64.h
|
| +++ b/src/x64/code-stubs-x64.h
|
| @@ -79,13 +79,6 @@ class StoreBufferOverflowStub: public CodeStub {
|
| };
|
|
|
|
|
| -// Flag that indicates how to generate code for the stub GenericBinaryOpStub.
|
| -enum GenericBinaryFlags {
|
| - NO_GENERIC_BINARY_FLAGS = 0,
|
| - NO_SMI_CODE_IN_STUB = 1 << 0 // Omit smi code in stub.
|
| -};
|
| -
|
| -
|
| class UnaryOpStub: public CodeStub {
|
| public:
|
| UnaryOpStub(Token::Value op,
|
| @@ -157,95 +150,6 @@ class UnaryOpStub: public CodeStub {
|
| };
|
|
|
|
|
| -class BinaryOpStub: public CodeStub {
|
| - public:
|
| - BinaryOpStub(Token::Value op, OverwriteMode mode)
|
| - : op_(op),
|
| - mode_(mode),
|
| - operands_type_(BinaryOpIC::UNINITIALIZED),
|
| - result_type_(BinaryOpIC::UNINITIALIZED) {
|
| - ASSERT(OpBits::is_valid(Token::NUM_TOKENS));
|
| - }
|
| -
|
| - BinaryOpStub(
|
| - int key,
|
| - BinaryOpIC::TypeInfo operands_type,
|
| - BinaryOpIC::TypeInfo result_type = BinaryOpIC::UNINITIALIZED)
|
| - : op_(OpBits::decode(key)),
|
| - mode_(ModeBits::decode(key)),
|
| - operands_type_(operands_type),
|
| - result_type_(result_type) { }
|
| -
|
| - private:
|
| - enum SmiCodeGenerateHeapNumberResults {
|
| - ALLOW_HEAPNUMBER_RESULTS,
|
| - NO_HEAPNUMBER_RESULTS
|
| - };
|
| -
|
| - Token::Value op_;
|
| - OverwriteMode mode_;
|
| -
|
| - // Operand type information determined at runtime.
|
| - BinaryOpIC::TypeInfo operands_type_;
|
| - BinaryOpIC::TypeInfo result_type_;
|
| -
|
| - virtual void PrintName(StringStream* stream);
|
| -
|
| - // Minor key encoding in 15 bits RRRTTTOOOOOOOMM.
|
| - class ModeBits: public BitField<OverwriteMode, 0, 2> {};
|
| - class OpBits: public BitField<Token::Value, 2, 7> {};
|
| - class OperandTypeInfoBits: public BitField<BinaryOpIC::TypeInfo, 9, 3> {};
|
| - class ResultTypeInfoBits: public BitField<BinaryOpIC::TypeInfo, 12, 3> {};
|
| -
|
| - Major MajorKey() { return BinaryOp; }
|
| - int MinorKey() {
|
| - return OpBits::encode(op_)
|
| - | ModeBits::encode(mode_)
|
| - | OperandTypeInfoBits::encode(operands_type_)
|
| - | ResultTypeInfoBits::encode(result_type_);
|
| - }
|
| -
|
| - void Generate(MacroAssembler* masm);
|
| - void GenerateGeneric(MacroAssembler* masm);
|
| - void GenerateSmiCode(MacroAssembler* masm,
|
| - Label* slow,
|
| - SmiCodeGenerateHeapNumberResults heapnumber_results);
|
| - void GenerateFloatingPointCode(MacroAssembler* masm,
|
| - Label* allocation_failure,
|
| - Label* non_numeric_failure);
|
| - void GenerateStringAddCode(MacroAssembler* masm);
|
| - void GenerateCallRuntimeCode(MacroAssembler* masm);
|
| - void GenerateLoadArguments(MacroAssembler* masm);
|
| - void GenerateReturn(MacroAssembler* masm);
|
| - void GenerateUninitializedStub(MacroAssembler* masm);
|
| - void GenerateSmiStub(MacroAssembler* masm);
|
| - void GenerateInt32Stub(MacroAssembler* masm);
|
| - void GenerateHeapNumberStub(MacroAssembler* masm);
|
| - void GenerateOddballStub(MacroAssembler* masm);
|
| - void GenerateStringStub(MacroAssembler* masm);
|
| - void GenerateBothStringStub(MacroAssembler* masm);
|
| - void GenerateGenericStub(MacroAssembler* masm);
|
| -
|
| - void GenerateHeapResultAllocation(MacroAssembler* masm, Label* alloc_failure);
|
| - void GenerateRegisterArgsPush(MacroAssembler* masm);
|
| - void GenerateTypeTransition(MacroAssembler* masm);
|
| - void GenerateTypeTransitionWithSavedArgs(MacroAssembler* masm);
|
| -
|
| - virtual int GetCodeKind() { return Code::BINARY_OP_IC; }
|
| -
|
| - virtual InlineCacheState GetICState() {
|
| - return BinaryOpIC::ToState(operands_type_);
|
| - }
|
| -
|
| - virtual void FinishCode(Handle<Code> code) {
|
| - code->set_binary_op_type(operands_type_);
|
| - code->set_binary_op_result_type(result_type_);
|
| - }
|
| -
|
| - friend class CodeGenerator;
|
| -};
|
| -
|
| -
|
| class StringHelper : public AllStatic {
|
| public:
|
| // Generate code for copying characters using a simple loop. This should only
|
|
|