| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index 1cb246b30ac51681ff31c266222f00c66efb1f07..2afd802f534629dc7b4335c677ec59388bf5c6ed 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -1521,6 +1521,29 @@ int HeapNumber::get_sign() {
|
| }
|
|
|
|
|
| +bool Simd128Value::Equals(Simd128Value* that) {
|
| +#define SIMD128_VALUE(TYPE, Type, type, lane_count, lane_type) \
|
| + if (this->Is##Type()) { \
|
| + if (!that->Is##Type()) return false; \
|
| + return Type::cast(this)->Equals(Type::cast(that)); \
|
| + }
|
| + SIMD128_TYPES(SIMD128_VALUE)
|
| +#undef SIMD128_VALUE
|
| + return false;
|
| +}
|
| +
|
| +
|
| +#define SIMD128_VALUE_EQUALS(TYPE, Type, type, lane_count, lane_type) \
|
| + bool Type::Equals(Type* that) { \
|
| + for (int lane = 0; lane < lane_count; ++lane) { \
|
| + if (this->get_lane(lane) != that->get_lane(lane)) return false; \
|
| + } \
|
| + return true; \
|
| + }
|
| +SIMD128_TYPES(SIMD128_VALUE_EQUALS)
|
| +#undef SIMD128_VALUE_EQUALS
|
| +
|
| +
|
| float Float32x4::get_lane(int lane) const {
|
| DCHECK(lane < 4 && lane >= 0);
|
| #if defined(V8_TARGET_LITTLE_ENDIAN)
|
|
|