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 |