| Index: src/objects-printer.cc
|
| diff --git a/src/objects-printer.cc b/src/objects-printer.cc
|
| index 7272ee54ac262d7bdbbd479dd7e1b1f121d13f48..928cc06990da68e1e8f62a571d5bd196d6dad184 100644
|
| --- a/src/objects-printer.cc
|
| +++ b/src/objects-printer.cc
|
| @@ -73,6 +73,9 @@
|
| os << "<mutable ";
|
| HeapNumber::cast(this)->HeapNumberPrint(os);
|
| os << ">\n";
|
| + break;
|
| + case SIMD128_VALUE_TYPE:
|
| + Simd128Value::cast(this)->Simd128ValuePrint(os);
|
| break;
|
| case FIXED_DOUBLE_ARRAY_TYPE:
|
| FixedDoubleArray::cast(this)->FixedDoubleArrayPrint(os);
|
| @@ -249,6 +252,59 @@
|
| break;
|
| }
|
| }
|
| +
|
| +
|
| +void Simd128Value::Simd128ValuePrint(std::ostream& os) { // NOLINT
|
| +#define PRINT_SIMD128_VALUE(TYPE, Type, type, lane_count, lane_type) \
|
| + if (Is##Type()) return Type::cast(this)->Type##Print(os);
|
| + SIMD128_TYPES(PRINT_SIMD128_VALUE)
|
| +#undef PRINT_SIMD128_VALUE
|
| + UNREACHABLE();
|
| +}
|
| +
|
| +
|
| +void Float32x4::Float32x4Print(std::ostream& os) { // NOLINT
|
| + char arr[100];
|
| + Vector<char> buffer(arr, arraysize(arr));
|
| + os << std::string(DoubleToCString(get_lane(0), buffer)) << ", "
|
| + << std::string(DoubleToCString(get_lane(1), buffer)) << ", "
|
| + << std::string(DoubleToCString(get_lane(2), buffer)) << ", "
|
| + << std::string(DoubleToCString(get_lane(3), buffer));
|
| +}
|
| +
|
| +
|
| +#define SIMD128_INT_PRINT_FUNCTION(type, lane_count) \
|
| + void type::type##Print(std::ostream& os) { \
|
| + char arr[100]; \
|
| + Vector<char> buffer(arr, arraysize(arr)); \
|
| + os << std::string(IntToCString(get_lane(0), buffer)); \
|
| + for (int i = 1; i < lane_count; i++) { \
|
| + os << ", " << std::string(IntToCString(get_lane(i), buffer)); \
|
| + } \
|
| + }
|
| +SIMD128_INT_PRINT_FUNCTION(Int32x4, 4)
|
| +SIMD128_INT_PRINT_FUNCTION(Uint32x4, 4)
|
| +SIMD128_INT_PRINT_FUNCTION(Int16x8, 8)
|
| +SIMD128_INT_PRINT_FUNCTION(Uint16x8, 8)
|
| +SIMD128_INT_PRINT_FUNCTION(Int8x16, 16)
|
| +SIMD128_INT_PRINT_FUNCTION(Uint8x16, 16)
|
| +#undef SIMD128_INT_PRINT_FUNCTION
|
| +
|
| +
|
| +#define SIMD128_BOOL_PRINT_FUNCTION(type, lane_count) \
|
| + void type::type##Print(std::ostream& os) { \
|
| + char arr[100]; \
|
| + Vector<char> buffer(arr, arraysize(arr)); \
|
| + os << std::string(get_lane(0) ? "true" : "false"); \
|
| + for (int i = 1; i < lane_count; i++) { \
|
| + os << ", " << std::string(get_lane(i) ? "true" : "false"); \
|
| + } \
|
| + }
|
| +SIMD128_BOOL_PRINT_FUNCTION(Bool32x4, 4)
|
| +SIMD128_BOOL_PRINT_FUNCTION(Bool16x8, 8)
|
| +SIMD128_BOOL_PRINT_FUNCTION(Bool8x16, 16)
|
| +#undef SIMD128_BOOL_PRINT_FUNCTION
|
| +
|
|
|
| void ByteArray::ByteArrayPrint(std::ostream& os) { // NOLINT
|
| os << "byte array, data starts at " << GetDataStartAddress();
|
|
|