| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef V8_CODE_STUBS_H_ | 5 #ifndef V8_CODE_STUBS_H_ |
| 6 #define V8_CODE_STUBS_H_ | 6 #define V8_CODE_STUBS_H_ |
| 7 | 7 |
| 8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/assembler.h" | 9 #include "src/assembler.h" |
| 10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 43 V(MathPow) \ | 43 V(MathPow) \ |
| 44 V(ProfileEntryHook) \ | 44 V(ProfileEntryHook) \ |
| 45 V(RecordWrite) \ | 45 V(RecordWrite) \ |
| 46 V(RegExpExec) \ | 46 V(RegExpExec) \ |
| 47 V(StoreArrayLiteralElement) \ | 47 V(StoreArrayLiteralElement) \ |
| 48 V(StoreBufferOverflow) \ | 48 V(StoreBufferOverflow) \ |
| 49 V(StoreElement) \ | 49 V(StoreElement) \ |
| 50 V(StringCompare) \ | 50 V(StringCompare) \ |
| 51 V(StubFailureTrampoline) \ | 51 V(StubFailureTrampoline) \ |
| 52 V(SubString) \ | 52 V(SubString) \ |
| 53 V(ToNumber) \ |
| 53 /* HydrogenCodeStubs */ \ | 54 /* HydrogenCodeStubs */ \ |
| 54 V(AllocateHeapNumber) \ | 55 V(AllocateHeapNumber) \ |
| 55 V(ArrayNArgumentsConstructor) \ | 56 V(ArrayNArgumentsConstructor) \ |
| 56 V(ArrayNoArgumentConstructor) \ | 57 V(ArrayNoArgumentConstructor) \ |
| 57 V(ArraySingleArgumentConstructor) \ | 58 V(ArraySingleArgumentConstructor) \ |
| 58 V(BinaryOpIC) \ | 59 V(BinaryOpIC) \ |
| 59 V(BinaryOpWithAllocationSite) \ | 60 V(BinaryOpWithAllocationSite) \ |
| 60 V(CompareNilIC) \ | 61 V(CompareNilIC) \ |
| 61 V(CreateAllocationSite) \ | 62 V(CreateAllocationSite) \ |
| 62 V(ElementsTransitionAndStore) \ | 63 V(ElementsTransitionAndStore) \ |
| 63 V(FastCloneShallowArray) \ | 64 V(FastCloneShallowArray) \ |
| 64 V(FastCloneShallowObject) \ | 65 V(FastCloneShallowObject) \ |
| 65 V(FastNewClosure) \ | 66 V(FastNewClosure) \ |
| 66 V(FastNewContext) \ | 67 V(FastNewContext) \ |
| 67 V(InternalArrayNArgumentsConstructor) \ | 68 V(InternalArrayNArgumentsConstructor) \ |
| 68 V(InternalArrayNoArgumentConstructor) \ | 69 V(InternalArrayNoArgumentConstructor) \ |
| 69 V(InternalArraySingleArgumentConstructor) \ | 70 V(InternalArraySingleArgumentConstructor) \ |
| 70 V(KeyedLoadGeneric) \ | 71 V(KeyedLoadGeneric) \ |
| 71 V(LoadDictionaryElement) \ | 72 V(LoadDictionaryElement) \ |
| 72 V(LoadFastElement) \ | 73 V(LoadFastElement) \ |
| 73 V(MegamorphicLoad) \ | 74 V(MegamorphicLoad) \ |
| 74 V(NameDictionaryLookup) \ | 75 V(NameDictionaryLookup) \ |
| 75 V(NumberToString) \ | 76 V(NumberToString) \ |
| 76 V(RegExpConstructResult) \ | 77 V(RegExpConstructResult) \ |
| 77 V(StoreFastElement) \ | 78 V(StoreFastElement) \ |
| 78 V(StringAdd) \ | 79 V(StringAdd) \ |
| 79 V(ToBoolean) \ | 80 V(ToBoolean) \ |
| 80 V(ToNumber) \ | |
| 81 V(TransitionElementsKind) \ | 81 V(TransitionElementsKind) \ |
| 82 V(VectorKeyedLoad) \ | 82 V(VectorKeyedLoad) \ |
| 83 V(VectorLoad) \ | 83 V(VectorLoad) \ |
| 84 /* IC Handler stubs */ \ | 84 /* IC Handler stubs */ \ |
| 85 V(LoadConstant) \ | 85 V(LoadConstant) \ |
| 86 V(LoadField) \ | 86 V(LoadField) \ |
| 87 V(KeyedLoadSloppyArguments) \ | 87 V(KeyedLoadSloppyArguments) \ |
| 88 V(StoreField) \ | 88 V(StoreField) \ |
| 89 V(StoreGlobal) \ | 89 V(StoreGlobal) \ |
| 90 V(StoreTransition) \ | 90 V(StoreTransition) \ |
| (...skipping 447 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 538 class NopRuntimeCallHelper : public RuntimeCallHelper { | 538 class NopRuntimeCallHelper : public RuntimeCallHelper { |
| 539 public: | 539 public: |
| 540 NopRuntimeCallHelper() {} | 540 NopRuntimeCallHelper() {} |
| 541 | 541 |
| 542 virtual void BeforeCall(MacroAssembler* masm) const {} | 542 virtual void BeforeCall(MacroAssembler* masm) const {} |
| 543 | 543 |
| 544 virtual void AfterCall(MacroAssembler* masm) const {} | 544 virtual void AfterCall(MacroAssembler* masm) const {} |
| 545 }; | 545 }; |
| 546 | 546 |
| 547 | 547 |
| 548 class ToNumberStub: public HydrogenCodeStub { | |
| 549 public: | |
| 550 explicit ToNumberStub(Isolate* isolate) : HydrogenCodeStub(isolate) { } | |
| 551 | |
| 552 DEFINE_CALL_INTERFACE_DESCRIPTOR(ToNumber); | |
| 553 DEFINE_HYDROGEN_CODE_STUB(ToNumber, HydrogenCodeStub); | |
| 554 }; | |
| 555 | |
| 556 | |
| 557 class NumberToStringStub FINAL : public HydrogenCodeStub { | 548 class NumberToStringStub FINAL : public HydrogenCodeStub { |
| 558 public: | 549 public: |
| 559 explicit NumberToStringStub(Isolate* isolate) : HydrogenCodeStub(isolate) {} | 550 explicit NumberToStringStub(Isolate* isolate) : HydrogenCodeStub(isolate) {} |
| 560 | 551 |
| 561 // Parameters accessed via CodeStubGraphBuilder::GetParameter() | 552 // Parameters accessed via CodeStubGraphBuilder::GetParameter() |
| 562 static const int kNumber = 0; | 553 static const int kNumber = 0; |
| 563 | 554 |
| 564 DEFINE_CALL_INTERFACE_DESCRIPTOR(NumberToString); | 555 DEFINE_CALL_INTERFACE_DESCRIPTOR(NumberToString); |
| 565 DEFINE_HYDROGEN_CODE_STUB(NumberToString, HydrogenCodeStub); | 556 DEFINE_HYDROGEN_CODE_STUB(NumberToString, HydrogenCodeStub); |
| 566 }; | 557 }; |
| (...skipping 1963 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2530 | 2521 |
| 2531 class SubStringStub : public PlatformCodeStub { | 2522 class SubStringStub : public PlatformCodeStub { |
| 2532 public: | 2523 public: |
| 2533 explicit SubStringStub(Isolate* isolate) : PlatformCodeStub(isolate) {} | 2524 explicit SubStringStub(Isolate* isolate) : PlatformCodeStub(isolate) {} |
| 2534 | 2525 |
| 2535 DEFINE_CALL_INTERFACE_DESCRIPTOR(ContextOnly); | 2526 DEFINE_CALL_INTERFACE_DESCRIPTOR(ContextOnly); |
| 2536 DEFINE_PLATFORM_CODE_STUB(SubString, PlatformCodeStub); | 2527 DEFINE_PLATFORM_CODE_STUB(SubString, PlatformCodeStub); |
| 2537 }; | 2528 }; |
| 2538 | 2529 |
| 2539 | 2530 |
| 2531 class ToNumberStub FINAL : public PlatformCodeStub { |
| 2532 public: |
| 2533 explicit ToNumberStub(Isolate* isolate) : PlatformCodeStub(isolate) {} |
| 2534 |
| 2535 DEFINE_CALL_INTERFACE_DESCRIPTOR(ToNumber); |
| 2536 DEFINE_PLATFORM_CODE_STUB(ToNumber, PlatformCodeStub); |
| 2537 }; |
| 2538 |
| 2539 |
| 2540 class StringCompareStub : public PlatformCodeStub { | 2540 class StringCompareStub : public PlatformCodeStub { |
| 2541 public: | 2541 public: |
| 2542 explicit StringCompareStub(Isolate* isolate) : PlatformCodeStub(isolate) {} | 2542 explicit StringCompareStub(Isolate* isolate) : PlatformCodeStub(isolate) {} |
| 2543 | 2543 |
| 2544 DEFINE_CALL_INTERFACE_DESCRIPTOR(ContextOnly); | 2544 DEFINE_CALL_INTERFACE_DESCRIPTOR(ContextOnly); |
| 2545 DEFINE_PLATFORM_CODE_STUB(StringCompare, PlatformCodeStub); | 2545 DEFINE_PLATFORM_CODE_STUB(StringCompare, PlatformCodeStub); |
| 2546 }; | 2546 }; |
| 2547 | 2547 |
| 2548 | 2548 |
| 2549 #undef DEFINE_CALL_INTERFACE_DESCRIPTOR | 2549 #undef DEFINE_CALL_INTERFACE_DESCRIPTOR |
| 2550 #undef DEFINE_PLATFORM_CODE_STUB | 2550 #undef DEFINE_PLATFORM_CODE_STUB |
| 2551 #undef DEFINE_HANDLER_CODE_STUB | 2551 #undef DEFINE_HANDLER_CODE_STUB |
| 2552 #undef DEFINE_HYDROGEN_CODE_STUB | 2552 #undef DEFINE_HYDROGEN_CODE_STUB |
| 2553 #undef DEFINE_CODE_STUB | 2553 #undef DEFINE_CODE_STUB |
| 2554 #undef DEFINE_CODE_STUB_BASE | 2554 #undef DEFINE_CODE_STUB_BASE |
| 2555 } } // namespace v8::internal | 2555 } } // namespace v8::internal |
| 2556 | 2556 |
| 2557 #endif // V8_CODE_STUBS_H_ | 2557 #endif // V8_CODE_STUBS_H_ |
| OLD | NEW |