| 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/code-stub-assembler.h" | 10 #include "src/code-stub-assembler.h" |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 77 V(LoadFastElement) \ | 77 V(LoadFastElement) \ |
| 78 V(LoadField) \ | 78 V(LoadField) \ |
| 79 /* These should never be ported to TF */ \ | 79 /* These should never be ported to TF */ \ |
| 80 /* because they are either used only by */ \ | 80 /* because they are either used only by */ \ |
| 81 /* FCG/Crankshaft or are deprecated */ \ | 81 /* FCG/Crankshaft or are deprecated */ \ |
| 82 V(BinaryOpIC) \ | 82 V(BinaryOpIC) \ |
| 83 V(BinaryOpWithAllocationSite) \ | 83 V(BinaryOpWithAllocationSite) \ |
| 84 V(ToBooleanIC) \ | 84 V(ToBooleanIC) \ |
| 85 V(RegExpConstructResult) \ | 85 V(RegExpConstructResult) \ |
| 86 V(TransitionElementsKind) \ | 86 V(TransitionElementsKind) \ |
| 87 V(StoreGlobalViaContext) \ | |
| 88 /* --- TurboFanCodeStubs --- */ \ | 87 /* --- TurboFanCodeStubs --- */ \ |
| 89 V(AllocateHeapNumber) \ | 88 V(AllocateHeapNumber) \ |
| 90 V(AllocateFloat32x4) \ | 89 V(AllocateFloat32x4) \ |
| 91 V(AllocateInt32x4) \ | 90 V(AllocateInt32x4) \ |
| 92 V(AllocateUint32x4) \ | 91 V(AllocateUint32x4) \ |
| 93 V(AllocateBool32x4) \ | 92 V(AllocateBool32x4) \ |
| 94 V(AllocateInt16x8) \ | 93 V(AllocateInt16x8) \ |
| 95 V(AllocateUint16x8) \ | 94 V(AllocateUint16x8) \ |
| 96 V(AllocateBool16x8) \ | 95 V(AllocateBool16x8) \ |
| 97 V(AllocateInt8x16) \ | 96 V(AllocateInt8x16) \ |
| (...skipping 1379 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1477 private: | 1476 private: |
| 1478 class CellTypeBits : public BitField<PropertyCellType, 0, 2> {}; | 1477 class CellTypeBits : public BitField<PropertyCellType, 0, 2> {}; |
| 1479 class ConstantTypeBits | 1478 class ConstantTypeBits |
| 1480 : public BitField<PropertyCellConstantType, CellTypeBits::kNext, 2> {}; | 1479 : public BitField<PropertyCellConstantType, CellTypeBits::kNext, 2> {}; |
| 1481 class CheckGlobalBits : public BitField<bool, ConstantTypeBits::kNext, 1> {}; | 1480 class CheckGlobalBits : public BitField<bool, ConstantTypeBits::kNext, 1> {}; |
| 1482 | 1481 |
| 1483 DEFINE_CALL_INTERFACE_DESCRIPTOR(StoreWithVector); | 1482 DEFINE_CALL_INTERFACE_DESCRIPTOR(StoreWithVector); |
| 1484 DEFINE_TURBOFAN_CODE_STUB(StoreGlobal, TurboFanCodeStub); | 1483 DEFINE_TURBOFAN_CODE_STUB(StoreGlobal, TurboFanCodeStub); |
| 1485 }; | 1484 }; |
| 1486 | 1485 |
| 1487 // TODO(ishell): remove, once StoreGlobalIC is implemented. | |
| 1488 class StoreGlobalViaContextStub final : public PlatformCodeStub { | |
| 1489 public: | |
| 1490 static const int kMaximumDepth = 15; | |
| 1491 | |
| 1492 StoreGlobalViaContextStub(Isolate* isolate, int depth, | |
| 1493 LanguageMode language_mode) | |
| 1494 : PlatformCodeStub(isolate) { | |
| 1495 minor_key_ = | |
| 1496 DepthBits::encode(depth) | LanguageModeBits::encode(language_mode); | |
| 1497 } | |
| 1498 | |
| 1499 int depth() const { return DepthBits::decode(minor_key_); } | |
| 1500 LanguageMode language_mode() const { | |
| 1501 return LanguageModeBits::decode(minor_key_); | |
| 1502 } | |
| 1503 | |
| 1504 private: | |
| 1505 class DepthBits : public BitField<int, 0, 4> {}; | |
| 1506 STATIC_ASSERT(DepthBits::kMax == kMaximumDepth); | |
| 1507 class LanguageModeBits : public BitField<LanguageMode, 4, 1> {}; | |
| 1508 STATIC_ASSERT(LANGUAGE_END == 2); | |
| 1509 | |
| 1510 DEFINE_CALL_INTERFACE_DESCRIPTOR(StoreGlobalViaContext); | |
| 1511 DEFINE_PLATFORM_CODE_STUB(StoreGlobalViaContext, PlatformCodeStub); | |
| 1512 }; | |
| 1513 | |
| 1514 class CallApiCallbackStub : public PlatformCodeStub { | 1486 class CallApiCallbackStub : public PlatformCodeStub { |
| 1515 public: | 1487 public: |
| 1516 static const int kArgBits = 3; | 1488 static const int kArgBits = 3; |
| 1517 static const int kArgMax = (1 << kArgBits) - 1; | 1489 static const int kArgMax = (1 << kArgBits) - 1; |
| 1518 | 1490 |
| 1519 // CallApiCallbackStub for regular setters and getters. | 1491 // CallApiCallbackStub for regular setters and getters. |
| 1520 CallApiCallbackStub(Isolate* isolate, bool is_store, bool call_data_undefined, | 1492 CallApiCallbackStub(Isolate* isolate, bool is_store, bool call_data_undefined, |
| 1521 bool is_lazy) | 1493 bool is_lazy) |
| 1522 : CallApiCallbackStub(isolate, is_store ? 1 : 0, is_store, | 1494 : CallApiCallbackStub(isolate, is_store ? 1 : 0, is_store, |
| 1523 call_data_undefined, is_lazy) {} | 1495 call_data_undefined, is_lazy) {} |
| (...skipping 1306 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2830 #undef DEFINE_HYDROGEN_CODE_STUB | 2802 #undef DEFINE_HYDROGEN_CODE_STUB |
| 2831 #undef DEFINE_CODE_STUB | 2803 #undef DEFINE_CODE_STUB |
| 2832 #undef DEFINE_CODE_STUB_BASE | 2804 #undef DEFINE_CODE_STUB_BASE |
| 2833 | 2805 |
| 2834 extern Representation RepresentationFromMachineType(MachineType type); | 2806 extern Representation RepresentationFromMachineType(MachineType type); |
| 2835 | 2807 |
| 2836 } // namespace internal | 2808 } // namespace internal |
| 2837 } // namespace v8 | 2809 } // namespace v8 |
| 2838 | 2810 |
| 2839 #endif // V8_CODE_STUBS_H_ | 2811 #endif // V8_CODE_STUBS_H_ |
| OLD | NEW |