| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 #include <iomanip> | 5 #include <iomanip> |
| 6 #include <sstream> | 6 #include <sstream> |
| 7 | 7 |
| 8 #include "src/v8.h" | 8 #include "src/v8.h" |
| 9 | 9 |
| 10 #include "src/accessors.h" | 10 #include "src/accessors.h" |
| (...skipping 1616 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1627 | 1627 |
| 1628 #define FIELD_ADDR_CONST(p, offset) \ | 1628 #define FIELD_ADDR_CONST(p, offset) \ |
| 1629 (reinterpret_cast<const byte*>(p) + offset - kHeapObjectTag) | 1629 (reinterpret_cast<const byte*>(p) + offset - kHeapObjectTag) |
| 1630 | 1630 |
| 1631 #define READ_INT32_FIELD(p, offset) \ | 1631 #define READ_INT32_FIELD(p, offset) \ |
| 1632 (*reinterpret_cast<const int32_t*>(FIELD_ADDR_CONST(p, offset))) | 1632 (*reinterpret_cast<const int32_t*>(FIELD_ADDR_CONST(p, offset))) |
| 1633 | 1633 |
| 1634 #define READ_INT64_FIELD(p, offset) \ | 1634 #define READ_INT64_FIELD(p, offset) \ |
| 1635 (*reinterpret_cast<const int64_t*>(FIELD_ADDR_CONST(p, offset))) | 1635 (*reinterpret_cast<const int64_t*>(FIELD_ADDR_CONST(p, offset))) |
| 1636 | 1636 |
| 1637 #define READ_BYTE_FIELD(p, offset) \ |
| 1638 (*reinterpret_cast<const byte*>(FIELD_ADDR_CONST(p, offset))) |
| 1639 |
| 1637 | 1640 |
| 1638 bool Simd128Value::BitwiseEquals(const Simd128Value* other) const { | 1641 bool Simd128Value::BitwiseEquals(const Simd128Value* other) const { |
| 1639 return READ_INT64_FIELD(this, kValueOffset) == | 1642 return READ_INT64_FIELD(this, kValueOffset) == |
| 1640 READ_INT64_FIELD(other, kValueOffset) && | 1643 READ_INT64_FIELD(other, kValueOffset) && |
| 1641 READ_INT64_FIELD(this, kValueOffset + kInt64Size) == | 1644 READ_INT64_FIELD(this, kValueOffset + kInt64Size) == |
| 1642 READ_INT64_FIELD(other, kValueOffset + kInt64Size); | 1645 READ_INT64_FIELD(other, kValueOffset + kInt64Size); |
| 1643 } | 1646 } |
| 1644 | 1647 |
| 1645 | 1648 |
| 1646 uint32_t Simd128Value::Hash() const { | 1649 uint32_t Simd128Value::Hash() const { |
| 1647 uint32_t seed = v8::internal::kZeroHashSeed; | 1650 uint32_t seed = v8::internal::kZeroHashSeed; |
| 1648 uint32_t hash; | 1651 uint32_t hash; |
| 1649 hash = ComputeIntegerHash(READ_INT32_FIELD(this, kValueOffset), seed); | 1652 hash = ComputeIntegerHash(READ_INT32_FIELD(this, kValueOffset), seed); |
| 1650 hash = ComputeIntegerHash( | 1653 hash = ComputeIntegerHash( |
| 1651 READ_INT32_FIELD(this, kValueOffset + 1 * kInt32Size), hash * 31); | 1654 READ_INT32_FIELD(this, kValueOffset + 1 * kInt32Size), hash * 31); |
| 1652 hash = ComputeIntegerHash( | 1655 hash = ComputeIntegerHash( |
| 1653 READ_INT32_FIELD(this, kValueOffset + 2 * kInt32Size), hash * 31); | 1656 READ_INT32_FIELD(this, kValueOffset + 2 * kInt32Size), hash * 31); |
| 1654 hash = ComputeIntegerHash( | 1657 hash = ComputeIntegerHash( |
| 1655 READ_INT32_FIELD(this, kValueOffset + 3 * kInt32Size), hash * 31); | 1658 READ_INT32_FIELD(this, kValueOffset + 3 * kInt32Size), hash * 31); |
| 1656 return hash; | 1659 return hash; |
| 1657 } | 1660 } |
| 1658 | 1661 |
| 1659 | 1662 |
| 1663 void Simd128Value::CopyBits(void* destination) const { |
| 1664 memcpy(destination, &READ_BYTE_FIELD(this, kValueOffset), kSimd128Size); |
| 1665 } |
| 1666 |
| 1667 |
| 1660 String* JSReceiver::class_name() { | 1668 String* JSReceiver::class_name() { |
| 1661 if (IsJSFunction() || IsJSFunctionProxy()) { | 1669 if (IsJSFunction() || IsJSFunctionProxy()) { |
| 1662 return GetHeap()->Function_string(); | 1670 return GetHeap()->Function_string(); |
| 1663 } | 1671 } |
| 1664 Object* maybe_constructor = map()->GetConstructor(); | 1672 Object* maybe_constructor = map()->GetConstructor(); |
| 1665 if (maybe_constructor->IsJSFunction()) { | 1673 if (maybe_constructor->IsJSFunction()) { |
| 1666 JSFunction* constructor = JSFunction::cast(maybe_constructor); | 1674 JSFunction* constructor = JSFunction::cast(maybe_constructor); |
| 1667 return String::cast(constructor->shared()->instance_class_name()); | 1675 return String::cast(constructor->shared()->instance_class_name()); |
| 1668 } | 1676 } |
| 1669 // If the constructor is not present, return "Object". | 1677 // If the constructor is not present, return "Object". |
| (...skipping 14192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 15862 if (cell->value() != *new_value) { | 15870 if (cell->value() != *new_value) { |
| 15863 cell->set_value(*new_value); | 15871 cell->set_value(*new_value); |
| 15864 Isolate* isolate = cell->GetIsolate(); | 15872 Isolate* isolate = cell->GetIsolate(); |
| 15865 cell->dependent_code()->DeoptimizeDependentCodeGroup( | 15873 cell->dependent_code()->DeoptimizeDependentCodeGroup( |
| 15866 isolate, DependentCode::kPropertyCellChangedGroup); | 15874 isolate, DependentCode::kPropertyCellChangedGroup); |
| 15867 } | 15875 } |
| 15868 } | 15876 } |
| 15869 | 15877 |
| 15870 } // namespace internal | 15878 } // namespace internal |
| 15871 } // namespace v8 | 15879 } // namespace v8 |
| OLD | NEW |