Index: src/code-stubs.h |
diff --git a/src/code-stubs.h b/src/code-stubs.h |
index cd14047abd6cdffd84c9b89de4c5b2b931a43129..8f1b686743317a39f95b764933a901de4b788214 100644 |
--- a/src/code-stubs.h |
+++ b/src/code-stubs.h |
@@ -90,15 +90,13 @@ namespace internal { |
V(TransitionElementsKind) \ |
V(StoreArrayLiteralElement) \ |
V(StubFailureTrampoline) \ |
- V(StubFailureTailCallTrampoline) \ |
V(ArrayConstructor) \ |
V(InternalArrayConstructor) \ |
V(ProfileEntryHook) \ |
V(StoreGlobal) \ |
/* IC Handler stubs */ \ |
V(LoadField) \ |
- V(KeyedLoadField) \ |
- V(KeyedArrayCall) |
+ V(KeyedLoadField) |
// List of code stubs only used on ARM platforms. |
#if V8_TARGET_ARCH_ARM |
@@ -172,7 +170,6 @@ class CodeStub BASE_EMBEDDED { |
virtual bool IsPregenerated(Isolate* isolate) { return false; } |
static void GenerateStubsAheadOfTime(Isolate* isolate); |
- static void GenerateStubsRequiringBuiltinsAheadOfTime(Isolate* isolate); |
static void GenerateFPStubs(Isolate* isolate); |
// Some stubs put untagged junk on the stack that cannot be scanned by the |
@@ -282,9 +279,6 @@ class PlatformCodeStub : public CodeStub { |
enum StubFunctionMode { NOT_JS_FUNCTION_STUB_MODE, JS_FUNCTION_STUB_MODE }; |
enum HandlerArgumentsMode { DONT_PASS_ARGUMENTS, PASS_ARGUMENTS }; |
-enum ContinuationType { NORMAL_CONTINUATION, TAIL_CALL_CONTINUATION }; |
- |
- |
struct CodeStubInterfaceDescriptor { |
CodeStubInterfaceDescriptor(); |
int register_param_count_; |
@@ -293,23 +287,18 @@ struct CodeStubInterfaceDescriptor { |
// if hint_stack_parameter_count_ > 0, the code stub can optimize the |
// return sequence. Default value is -1, which means it is ignored. |
int hint_stack_parameter_count_; |
- ContinuationType continuation_type_; |
StubFunctionMode function_mode_; |
Register* register_params_; |
Address deoptimization_handler_; |
HandlerArgumentsMode handler_arguments_mode_; |
- bool initialized() const { return register_param_count_ >= 0; } |
- |
- bool HasTailCallContinuation() const { |
- return continuation_type_ == TAIL_CALL_CONTINUATION; |
- } |
- |
int environment_length() const { |
return register_param_count_; |
} |
+ bool initialized() const { return register_param_count_ >= 0; } |
+ |
void SetMissHandler(ExternalReference handler) { |
miss_handler_ = handler; |
has_miss_handler_ = true; |
@@ -887,11 +876,6 @@ class HandlerStub: public HICStub { |
public: |
virtual Code::Kind GetCodeKind() const { return Code::HANDLER; } |
virtual int GetStubFlags() { return kind(); } |
- |
- protected: |
- HandlerStub() : HICStub() { } |
- virtual int NotMissMinorKey() { return bit_field_; } |
- int bit_field_; |
}; |
@@ -953,6 +937,9 @@ class LoadFieldStub: public HandlerStub { |
class IndexBits: public BitField<int, 5, 11> {}; |
class UnboxedDoubleBits: public BitField<bool, 16, 1> {}; |
virtual CodeStub::Major MajorKey() { return LoadField; } |
+ virtual int NotMissMinorKey() { return bit_field_; } |
+ |
+ int bit_field_; |
}; |
@@ -1031,52 +1018,6 @@ class KeyedLoadFieldStub: public LoadFieldStub { |
}; |
-class KeyedArrayCallStub: public HICStub { |
- public: |
- KeyedArrayCallStub(bool holey, int argc) : HICStub(), argc_(argc) { |
- bit_field_ = KindBits::encode(Code::KEYED_CALL_IC) |
- | HoleyBits::encode(holey); |
- } |
- |
- virtual Code::Kind kind() const { |
- return KindBits::decode(bit_field_); |
- } |
- |
- virtual Code::ExtraICState GetExtraICState() { return bit_field_; } |
- |
- ElementsKind elements_kind() { |
- return HoleyBits::decode(bit_field_) ? FAST_HOLEY_ELEMENTS : FAST_ELEMENTS; |
- } |
- |
- int argc() { return argc_; } |
- virtual int GetStubFlags() { return argc(); } |
- |
- static bool IsHoley(Handle<Code> code) { |
- Code::ExtraICState state = code->extra_ic_state(); |
- return HoleyBits::decode(state); |
- } |
- |
- virtual void InitializeInterfaceDescriptor( |
- Isolate* isolate, |
- CodeStubInterfaceDescriptor* descriptor); |
- |
- virtual Handle<Code> GenerateCode(Isolate* isolate); |
- |
- private: |
- virtual int NotMissMinorKey() { |
- return GetExtraICState() | ArgcBits::encode(argc_); |
- } |
- |
- STATIC_ASSERT(KindBits::kSize == 4); |
- class HoleyBits: public BitField<bool, 4, 1> {}; |
- STATIC_ASSERT(Code::kArgumentsBits <= kStubMinorKeyBits - 5); |
- class ArgcBits: public BitField<int, 5, Code::kArgumentsBits> {}; |
- virtual CodeStub::Major MajorKey() { return KeyedArrayCall; } |
- int bit_field_; |
- int argc_; |
-}; |
- |
- |
class BinaryOpStub: public HydrogenCodeStub { |
public: |
BinaryOpStub(Token::Value op, OverwriteMode mode) |
@@ -2458,27 +2399,6 @@ class StubFailureTrampolineStub : public PlatformCodeStub { |
}; |
-class StubFailureTailCallTrampolineStub : public PlatformCodeStub { |
- public: |
- StubFailureTailCallTrampolineStub() : fp_registers_(CanUseFPRegisters()) {} |
- |
- virtual bool IsPregenerated(Isolate* isolate) V8_OVERRIDE { return true; } |
- |
- static void GenerateAheadOfTime(Isolate* isolate); |
- |
- private: |
- class FPRegisters: public BitField<bool, 0, 1> {}; |
- Major MajorKey() { return StubFailureTailCallTrampoline; } |
- int MinorKey() { return FPRegisters::encode(fp_registers_); } |
- |
- void Generate(MacroAssembler* masm); |
- |
- bool fp_registers_; |
- |
- DISALLOW_COPY_AND_ASSIGN(StubFailureTailCallTrampolineStub); |
-}; |
- |
- |
class ProfileEntryHookStub : public PlatformCodeStub { |
public: |
explicit ProfileEntryHookStub() {} |