| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 651 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 662 stream->Add("#%d", argument_count()); | 662 stream->Add("#%d", argument_count()); |
| 663 } | 663 } |
| 664 | 664 |
| 665 | 665 |
| 666 void HCallRuntime::PrintDataTo(StringStream* stream) { | 666 void HCallRuntime::PrintDataTo(StringStream* stream) { |
| 667 stream->Add("%o ", *name()); | 667 stream->Add("%o ", *name()); |
| 668 stream->Add("#%d", argument_count()); | 668 stream->Add("#%d", argument_count()); |
| 669 } | 669 } |
| 670 | 670 |
| 671 | 671 |
| 672 void HClassOfTest::PrintDataTo(StringStream* stream) { | 672 void HClassOfTestAndBranch::PrintDataTo(StringStream* stream) { |
| 673 stream->Add("class_of_test("); | 673 stream->Add("class_of_test("); |
| 674 value()->PrintNameTo(stream); | 674 value()->PrintNameTo(stream); |
| 675 stream->Add(", \"%o\")", *class_name()); | 675 stream->Add(", \"%o\")", *class_name()); |
| 676 } | 676 } |
| 677 | 677 |
| 678 | 678 |
| 679 void HAccessArgumentsAt::PrintDataTo(StringStream* stream) { | 679 void HAccessArgumentsAt::PrintDataTo(StringStream* stream) { |
| 680 arguments()->PrintNameTo(stream); | 680 arguments()->PrintNameTo(stream); |
| 681 stream->Add("["); | 681 stream->Add("["); |
| 682 index()->PrintNameTo(stream); | 682 index()->PrintNameTo(stream); |
| 683 stream->Add("], length "); | 683 stream->Add("], length "); |
| 684 length()->PrintNameTo(stream); | 684 length()->PrintNameTo(stream); |
| 685 } | 685 } |
| 686 | 686 |
| 687 | 687 |
| 688 void HControlInstruction::PrintDataTo(StringStream* stream) { | 688 void HControlInstruction::PrintDataTo(StringStream* stream) { |
| 689 if (FirstSuccessor() != NULL) { | 689 stream->Add(" goto ("); |
| 690 int first_id = FirstSuccessor()->block_id(); | 690 bool first_block = true; |
| 691 if (SecondSuccessor() == NULL) { | 691 for (HSuccessorIterator it(this); !it.Done(); it.Advance()) { |
| 692 stream->Add(" B%d", first_id); | 692 stream->Add(first_block ? "B%d" : ", B%d", it.Current()->block_id()); |
| 693 } else { | 693 first_block = false; |
| 694 int second_id = SecondSuccessor()->block_id(); | |
| 695 stream->Add(" goto (B%d, B%d)", first_id, second_id); | |
| 696 } | |
| 697 } | 694 } |
| 695 stream->Add(")"); |
| 698 } | 696 } |
| 699 | 697 |
| 700 | 698 |
| 701 void HUnaryControlInstruction::PrintDataTo(StringStream* stream) { | 699 void HUnaryControlInstruction::PrintDataTo(StringStream* stream) { |
| 702 value()->PrintNameTo(stream); | 700 value()->PrintNameTo(stream); |
| 703 HControlInstruction::PrintDataTo(stream); | 701 HControlInstruction::PrintDataTo(stream); |
| 704 } | 702 } |
| 705 | 703 |
| 706 | 704 |
| 705 void HReturn::PrintDataTo(StringStream* stream) { |
| 706 value()->PrintNameTo(stream); |
| 707 } |
| 708 |
| 709 |
| 707 void HCompareMap::PrintDataTo(StringStream* stream) { | 710 void HCompareMap::PrintDataTo(StringStream* stream) { |
| 708 value()->PrintNameTo(stream); | 711 value()->PrintNameTo(stream); |
| 709 stream->Add(" (%p)", *map()); | 712 stream->Add(" (%p)", *map()); |
| 710 HControlInstruction::PrintDataTo(stream); | 713 HControlInstruction::PrintDataTo(stream); |
| 711 } | 714 } |
| 712 | 715 |
| 713 | 716 |
| 714 const char* HUnaryMathOperation::OpName() const { | 717 const char* HUnaryMathOperation::OpName() const { |
| 715 switch (op()) { | 718 switch (op()) { |
| 716 case kMathFloor: return "floor"; | 719 case kMathFloor: return "floor"; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 737 stream->Add("%s ", name); | 740 stream->Add("%s ", name); |
| 738 value()->PrintNameTo(stream); | 741 value()->PrintNameTo(stream); |
| 739 } | 742 } |
| 740 | 743 |
| 741 | 744 |
| 742 void HUnaryOperation::PrintDataTo(StringStream* stream) { | 745 void HUnaryOperation::PrintDataTo(StringStream* stream) { |
| 743 value()->PrintNameTo(stream); | 746 value()->PrintNameTo(stream); |
| 744 } | 747 } |
| 745 | 748 |
| 746 | 749 |
| 747 void HHasInstanceType::PrintDataTo(StringStream* stream) { | 750 void HHasInstanceTypeAndBranch::PrintDataTo(StringStream* stream) { |
| 748 value()->PrintNameTo(stream); | 751 value()->PrintNameTo(stream); |
| 749 switch (from_) { | 752 switch (from_) { |
| 750 case FIRST_JS_OBJECT_TYPE: | 753 case FIRST_JS_RECEIVER_TYPE: |
| 751 if (to_ == LAST_TYPE) stream->Add(" spec_object"); | 754 if (to_ == LAST_TYPE) stream->Add(" spec_object"); |
| 752 break; | 755 break; |
| 753 case JS_REGEXP_TYPE: | 756 case JS_REGEXP_TYPE: |
| 754 if (to_ == JS_REGEXP_TYPE) stream->Add(" reg_exp"); | 757 if (to_ == JS_REGEXP_TYPE) stream->Add(" reg_exp"); |
| 755 break; | 758 break; |
| 756 case JS_ARRAY_TYPE: | 759 case JS_ARRAY_TYPE: |
| 757 if (to_ == JS_ARRAY_TYPE) stream->Add(" array"); | 760 if (to_ == JS_ARRAY_TYPE) stream->Add(" array"); |
| 758 break; | 761 break; |
| 759 case JS_FUNCTION_TYPE: | 762 case JS_FUNCTION_TYPE: |
| 760 if (to_ == JS_FUNCTION_TYPE) stream->Add(" function"); | 763 if (to_ == JS_FUNCTION_TYPE) stream->Add(" function"); |
| 761 break; | 764 break; |
| 762 default: | 765 default: |
| 763 break; | 766 break; |
| 764 } | 767 } |
| 765 } | 768 } |
| 766 | 769 |
| 767 | 770 |
| 768 void HTypeofIs::PrintDataTo(StringStream* stream) { | 771 void HTypeofIsAndBranch::PrintDataTo(StringStream* stream) { |
| 769 value()->PrintNameTo(stream); | 772 value()->PrintNameTo(stream); |
| 770 stream->Add(" == "); | 773 stream->Add(" == "); |
| 771 stream->Add(type_literal_->ToAsciiVector()); | 774 stream->Add(type_literal_->ToAsciiVector()); |
| 772 } | 775 } |
| 773 | 776 |
| 774 | 777 |
| 775 void HChange::PrintDataTo(StringStream* stream) { | 778 void HChange::PrintDataTo(StringStream* stream) { |
| 776 HUnaryOperation::PrintDataTo(stream); | 779 HUnaryOperation::PrintDataTo(stream); |
| 777 stream->Add(" %s to %s", from_.Mnemonic(), to().Mnemonic()); | 780 stream->Add(" %s to %s", from_.Mnemonic(), to().Mnemonic()); |
| 778 | 781 |
| 779 if (CanTruncateToInt32()) stream->Add(" truncating-int32"); | 782 if (CanTruncateToInt32()) stream->Add(" truncating-int32"); |
| 780 if (CheckFlag(kBailoutOnMinusZero)) stream->Add(" -0?"); | 783 if (CheckFlag(kBailoutOnMinusZero)) stream->Add(" -0?"); |
| 781 } | 784 } |
| 782 | 785 |
| 783 | 786 |
| 787 HValue* HCheckInstanceType::Canonicalize() { |
| 788 if (check_ == IS_STRING && |
| 789 !value()->type().IsUninitialized() && |
| 790 value()->type().IsString()) { |
| 791 return NULL; |
| 792 } |
| 793 if (check_ == IS_SYMBOL && |
| 794 value()->IsConstant() && |
| 795 HConstant::cast(value())->handle()->IsSymbol()) { |
| 796 return NULL; |
| 797 } |
| 798 return this; |
| 799 } |
| 800 |
| 801 |
| 784 void HCheckInstanceType::GetCheckInterval(InstanceType* first, | 802 void HCheckInstanceType::GetCheckInterval(InstanceType* first, |
| 785 InstanceType* last) { | 803 InstanceType* last) { |
| 786 ASSERT(is_interval_check()); | 804 ASSERT(is_interval_check()); |
| 787 switch (check_) { | 805 switch (check_) { |
| 788 case IS_JS_OBJECT_OR_JS_FUNCTION: | 806 case IS_SPEC_OBJECT: |
| 789 STATIC_ASSERT((LAST_JS_OBJECT_TYPE + 1) == JS_FUNCTION_TYPE); | 807 *first = FIRST_SPEC_OBJECT_TYPE; |
| 790 *first = FIRST_JS_OBJECT_TYPE; | 808 *last = LAST_SPEC_OBJECT_TYPE; |
| 791 *last = JS_FUNCTION_TYPE; | |
| 792 return; | 809 return; |
| 793 case IS_JS_ARRAY: | 810 case IS_JS_ARRAY: |
| 794 *first = *last = JS_ARRAY_TYPE; | 811 *first = *last = JS_ARRAY_TYPE; |
| 795 return; | 812 return; |
| 796 default: | 813 default: |
| 797 UNREACHABLE(); | 814 UNREACHABLE(); |
| 798 } | 815 } |
| 799 } | 816 } |
| 800 | 817 |
| 801 | 818 |
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1077 stream->Add(" push "); | 1094 stream->Add(" push "); |
| 1078 } else { | 1095 } else { |
| 1079 stream->Add(" var[%d] = ", GetAssignedIndexAt(i)); | 1096 stream->Add(" var[%d] = ", GetAssignedIndexAt(i)); |
| 1080 } | 1097 } |
| 1081 values_[i]->PrintNameTo(stream); | 1098 values_[i]->PrintNameTo(stream); |
| 1082 } | 1099 } |
| 1083 } | 1100 } |
| 1084 } | 1101 } |
| 1085 | 1102 |
| 1086 | 1103 |
| 1104 void HDeoptimize::PrintDataTo(StringStream* stream) { |
| 1105 if (OperandCount() == 0) return; |
| 1106 OperandAt(0)->PrintNameTo(stream); |
| 1107 for (int i = 1; i < OperandCount(); ++i) { |
| 1108 stream->Add(" "); |
| 1109 OperandAt(i)->PrintNameTo(stream); |
| 1110 } |
| 1111 } |
| 1112 |
| 1113 |
| 1087 void HEnterInlined::PrintDataTo(StringStream* stream) { | 1114 void HEnterInlined::PrintDataTo(StringStream* stream) { |
| 1088 SmartPointer<char> name = function()->debug_name()->ToCString(); | 1115 SmartPointer<char> name = function()->debug_name()->ToCString(); |
| 1089 stream->Add("%s, id=%d", *name, function()->id()); | 1116 stream->Add("%s, id=%d", *name, function()->id()); |
| 1090 } | 1117 } |
| 1091 | 1118 |
| 1092 | 1119 |
| 1093 HConstant::HConstant(Handle<Object> handle, Representation r) | 1120 HConstant::HConstant(Handle<Object> handle, Representation r) |
| 1094 : handle_(handle), | 1121 : handle_(handle), |
| 1095 has_int32_value_(false), | 1122 has_int32_value_(false), |
| 1096 has_double_value_(false), | 1123 has_double_value_(false), |
| (...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1212 : new Range(); | 1239 : new Range(); |
| 1213 result->Shl(c->Integer32Value()); | 1240 result->Shl(c->Integer32Value()); |
| 1214 return result; | 1241 return result; |
| 1215 } | 1242 } |
| 1216 } | 1243 } |
| 1217 return HValue::InferRange(); | 1244 return HValue::InferRange(); |
| 1218 } | 1245 } |
| 1219 | 1246 |
| 1220 | 1247 |
| 1221 | 1248 |
| 1222 void HCompare::PrintDataTo(StringStream* stream) { | 1249 void HCompareGeneric::PrintDataTo(StringStream* stream) { |
| 1223 stream->Add(Token::Name(token())); | 1250 stream->Add(Token::Name(token())); |
| 1224 stream->Add(" "); | 1251 stream->Add(" "); |
| 1225 HBinaryOperation::PrintDataTo(stream); | 1252 HBinaryOperation::PrintDataTo(stream); |
| 1226 } | 1253 } |
| 1227 | 1254 |
| 1228 | 1255 |
| 1229 void HCompare::SetInputRepresentation(Representation r) { | 1256 void HCompareIDAndBranch::PrintDataTo(StringStream* stream) { |
| 1257 stream->Add(Token::Name(token())); |
| 1258 stream->Add(" "); |
| 1259 left()->PrintNameTo(stream); |
| 1260 stream->Add(" "); |
| 1261 right()->PrintNameTo(stream); |
| 1262 } |
| 1263 |
| 1264 |
| 1265 void HCompareIDAndBranch::SetInputRepresentation(Representation r) { |
| 1230 input_representation_ = r; | 1266 input_representation_ = r; |
| 1231 if (r.IsTagged()) { | 1267 if (r.IsDouble()) { |
| 1232 SetAllSideEffects(); | 1268 SetFlag(kDeoptimizeOnUndefined); |
| 1233 ClearFlag(kUseGVN); | |
| 1234 } else { | 1269 } else { |
| 1235 ClearAllSideEffects(); | 1270 ASSERT(r.IsInteger32()); |
| 1236 SetFlag(kUseGVN); | |
| 1237 } | 1271 } |
| 1238 } | 1272 } |
| 1239 | 1273 |
| 1240 | 1274 |
| 1241 void HParameter::PrintDataTo(StringStream* stream) { | 1275 void HParameter::PrintDataTo(StringStream* stream) { |
| 1242 stream->Add("%u", index()); | 1276 stream->Add("%u", index()); |
| 1243 } | 1277 } |
| 1244 | 1278 |
| 1245 | 1279 |
| 1246 void HLoadNamedField::PrintDataTo(StringStream* stream) { | 1280 void HLoadNamedField::PrintDataTo(StringStream* stream) { |
| 1247 object()->PrintNameTo(stream); | 1281 object()->PrintNameTo(stream); |
| 1248 stream->Add(" @%d%s", offset(), is_in_object() ? "[in-object]" : ""); | 1282 stream->Add(" @%d%s", offset(), is_in_object() ? "[in-object]" : ""); |
| 1249 } | 1283 } |
| 1250 | 1284 |
| 1251 | 1285 |
| 1252 HLoadNamedFieldPolymorphic::HLoadNamedFieldPolymorphic(HValue* object, | 1286 HLoadNamedFieldPolymorphic::HLoadNamedFieldPolymorphic(HValue* context, |
| 1287 HValue* object, |
| 1253 ZoneMapList* types, | 1288 ZoneMapList* types, |
| 1254 Handle<String> name) | 1289 Handle<String> name) |
| 1255 : HUnaryOperation(object), | 1290 : types_(Min(types->length(), kMaxLoadPolymorphism)), |
| 1256 types_(Min(types->length(), kMaxLoadPolymorphism)), | |
| 1257 name_(name), | 1291 name_(name), |
| 1258 need_generic_(false) { | 1292 need_generic_(false) { |
| 1293 SetOperandAt(0, context); |
| 1294 SetOperandAt(1, object); |
| 1259 set_representation(Representation::Tagged()); | 1295 set_representation(Representation::Tagged()); |
| 1260 SetFlag(kDependsOnMaps); | 1296 SetFlag(kDependsOnMaps); |
| 1261 for (int i = 0; | 1297 for (int i = 0; |
| 1262 i < types->length() && types_.length() < kMaxLoadPolymorphism; | 1298 i < types->length() && types_.length() < kMaxLoadPolymorphism; |
| 1263 ++i) { | 1299 ++i) { |
| 1264 Handle<Map> map = types->at(i); | 1300 Handle<Map> map = types->at(i); |
| 1265 LookupResult lookup; | 1301 LookupResult lookup; |
| 1266 map->LookupInDescriptors(NULL, *name, &lookup); | 1302 map->LookupInDescriptors(NULL, *name, &lookup); |
| 1267 if (lookup.IsProperty()) { | 1303 if (lookup.IsProperty()) { |
| 1268 switch (lookup.type()) { | 1304 switch (lookup.type()) { |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1335 stream->Add("["); | 1371 stream->Add("["); |
| 1336 key()->PrintNameTo(stream); | 1372 key()->PrintNameTo(stream); |
| 1337 stream->Add("]"); | 1373 stream->Add("]"); |
| 1338 } | 1374 } |
| 1339 | 1375 |
| 1340 | 1376 |
| 1341 void HLoadKeyedSpecializedArrayElement::PrintDataTo( | 1377 void HLoadKeyedSpecializedArrayElement::PrintDataTo( |
| 1342 StringStream* stream) { | 1378 StringStream* stream) { |
| 1343 external_pointer()->PrintNameTo(stream); | 1379 external_pointer()->PrintNameTo(stream); |
| 1344 stream->Add("."); | 1380 stream->Add("."); |
| 1345 switch (array_type()) { | 1381 switch (elements_kind()) { |
| 1346 case kExternalByteArray: | 1382 case JSObject::EXTERNAL_BYTE_ELEMENTS: |
| 1347 stream->Add("byte"); | 1383 stream->Add("byte"); |
| 1348 break; | 1384 break; |
| 1349 case kExternalUnsignedByteArray: | 1385 case JSObject::EXTERNAL_UNSIGNED_BYTE_ELEMENTS: |
| 1350 stream->Add("u_byte"); | 1386 stream->Add("u_byte"); |
| 1351 break; | 1387 break; |
| 1352 case kExternalShortArray: | 1388 case JSObject::EXTERNAL_SHORT_ELEMENTS: |
| 1353 stream->Add("short"); | 1389 stream->Add("short"); |
| 1354 break; | 1390 break; |
| 1355 case kExternalUnsignedShortArray: | 1391 case JSObject::EXTERNAL_UNSIGNED_SHORT_ELEMENTS: |
| 1356 stream->Add("u_short"); | 1392 stream->Add("u_short"); |
| 1357 break; | 1393 break; |
| 1358 case kExternalIntArray: | 1394 case JSObject::EXTERNAL_INT_ELEMENTS: |
| 1359 stream->Add("int"); | 1395 stream->Add("int"); |
| 1360 break; | 1396 break; |
| 1361 case kExternalUnsignedIntArray: | 1397 case JSObject::EXTERNAL_UNSIGNED_INT_ELEMENTS: |
| 1362 stream->Add("u_int"); | 1398 stream->Add("u_int"); |
| 1363 break; | 1399 break; |
| 1364 case kExternalFloatArray: | 1400 case JSObject::EXTERNAL_FLOAT_ELEMENTS: |
| 1365 stream->Add("float"); | 1401 stream->Add("float"); |
| 1366 break; | 1402 break; |
| 1367 case kExternalDoubleArray: | 1403 case JSObject::EXTERNAL_DOUBLE_ELEMENTS: |
| 1368 stream->Add("double"); | 1404 stream->Add("double"); |
| 1369 break; | 1405 break; |
| 1370 case kExternalPixelArray: | 1406 case JSObject::EXTERNAL_PIXEL_ELEMENTS: |
| 1371 stream->Add("pixel"); | 1407 stream->Add("pixel"); |
| 1372 break; | 1408 break; |
| 1409 case JSObject::FAST_ELEMENTS: |
| 1410 case JSObject::FAST_DOUBLE_ELEMENTS: |
| 1411 case JSObject::DICTIONARY_ELEMENTS: |
| 1412 case JSObject::NON_STRICT_ARGUMENTS_ELEMENTS: |
| 1413 UNREACHABLE(); |
| 1414 break; |
| 1373 } | 1415 } |
| 1374 stream->Add("["); | 1416 stream->Add("["); |
| 1375 key()->PrintNameTo(stream); | 1417 key()->PrintNameTo(stream); |
| 1376 stream->Add("]"); | 1418 stream->Add("]"); |
| 1377 } | 1419 } |
| 1378 | 1420 |
| 1379 | 1421 |
| 1380 void HStoreNamedGeneric::PrintDataTo(StringStream* stream) { | 1422 void HStoreNamedGeneric::PrintDataTo(StringStream* stream) { |
| 1381 object()->PrintNameTo(stream); | 1423 object()->PrintNameTo(stream); |
| 1382 stream->Add("."); | 1424 stream->Add("."); |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1415 key()->PrintNameTo(stream); | 1457 key()->PrintNameTo(stream); |
| 1416 stream->Add("] = "); | 1458 stream->Add("] = "); |
| 1417 value()->PrintNameTo(stream); | 1459 value()->PrintNameTo(stream); |
| 1418 } | 1460 } |
| 1419 | 1461 |
| 1420 | 1462 |
| 1421 void HStoreKeyedSpecializedArrayElement::PrintDataTo( | 1463 void HStoreKeyedSpecializedArrayElement::PrintDataTo( |
| 1422 StringStream* stream) { | 1464 StringStream* stream) { |
| 1423 external_pointer()->PrintNameTo(stream); | 1465 external_pointer()->PrintNameTo(stream); |
| 1424 stream->Add("."); | 1466 stream->Add("."); |
| 1425 switch (array_type()) { | 1467 switch (elements_kind()) { |
| 1426 case kExternalByteArray: | 1468 case JSObject::EXTERNAL_BYTE_ELEMENTS: |
| 1427 stream->Add("byte"); | 1469 stream->Add("byte"); |
| 1428 break; | 1470 break; |
| 1429 case kExternalUnsignedByteArray: | 1471 case JSObject::EXTERNAL_UNSIGNED_BYTE_ELEMENTS: |
| 1430 stream->Add("u_byte"); | 1472 stream->Add("u_byte"); |
| 1431 break; | 1473 break; |
| 1432 case kExternalShortArray: | 1474 case JSObject::EXTERNAL_SHORT_ELEMENTS: |
| 1433 stream->Add("short"); | 1475 stream->Add("short"); |
| 1434 break; | 1476 break; |
| 1435 case kExternalUnsignedShortArray: | 1477 case JSObject::EXTERNAL_UNSIGNED_SHORT_ELEMENTS: |
| 1436 stream->Add("u_short"); | 1478 stream->Add("u_short"); |
| 1437 break; | 1479 break; |
| 1438 case kExternalIntArray: | 1480 case JSObject::EXTERNAL_INT_ELEMENTS: |
| 1439 stream->Add("int"); | 1481 stream->Add("int"); |
| 1440 break; | 1482 break; |
| 1441 case kExternalUnsignedIntArray: | 1483 case JSObject::EXTERNAL_UNSIGNED_INT_ELEMENTS: |
| 1442 stream->Add("u_int"); | 1484 stream->Add("u_int"); |
| 1443 break; | 1485 break; |
| 1444 case kExternalFloatArray: | 1486 case JSObject::EXTERNAL_FLOAT_ELEMENTS: |
| 1445 stream->Add("float"); | 1487 stream->Add("float"); |
| 1446 break; | 1488 break; |
| 1447 case kExternalDoubleArray: | 1489 case JSObject::EXTERNAL_DOUBLE_ELEMENTS: |
| 1448 stream->Add("double"); | 1490 stream->Add("double"); |
| 1449 break; | 1491 break; |
| 1450 case kExternalPixelArray: | 1492 case JSObject::EXTERNAL_PIXEL_ELEMENTS: |
| 1451 stream->Add("pixel"); | 1493 stream->Add("pixel"); |
| 1452 break; | 1494 break; |
| 1495 case JSObject::FAST_ELEMENTS: |
| 1496 case JSObject::FAST_DOUBLE_ELEMENTS: |
| 1497 case JSObject::DICTIONARY_ELEMENTS: |
| 1498 case JSObject::NON_STRICT_ARGUMENTS_ELEMENTS: |
| 1499 UNREACHABLE(); |
| 1500 break; |
| 1453 } | 1501 } |
| 1454 stream->Add("["); | 1502 stream->Add("["); |
| 1455 key()->PrintNameTo(stream); | 1503 key()->PrintNameTo(stream); |
| 1456 stream->Add("] = "); | 1504 stream->Add("] = "); |
| 1457 value()->PrintNameTo(stream); | 1505 value()->PrintNameTo(stream); |
| 1458 } | 1506 } |
| 1459 | 1507 |
| 1460 | 1508 |
| 1461 void HLoadGlobalCell::PrintDataTo(StringStream* stream) { | 1509 void HLoadGlobalCell::PrintDataTo(StringStream* stream) { |
| 1462 stream->Add("[%p]", *cell()); | 1510 stream->Add("[%p]", *cell()); |
| (...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1531 } | 1579 } |
| 1532 return result; | 1580 return result; |
| 1533 } | 1581 } |
| 1534 | 1582 |
| 1535 | 1583 |
| 1536 HType HConstant::CalculateInferredType() { | 1584 HType HConstant::CalculateInferredType() { |
| 1537 return HType::TypeFromValue(handle_); | 1585 return HType::TypeFromValue(handle_); |
| 1538 } | 1586 } |
| 1539 | 1587 |
| 1540 | 1588 |
| 1541 HType HCompare::CalculateInferredType() { | 1589 HType HCompareGeneric::CalculateInferredType() { |
| 1542 return HType::Boolean(); | 1590 return HType::Boolean(); |
| 1543 } | 1591 } |
| 1544 | 1592 |
| 1545 | 1593 |
| 1546 HType HCompareJSObjectEq::CalculateInferredType() { | 1594 HType HInstanceOf::CalculateInferredType() { |
| 1547 return HType::Boolean(); | 1595 return HType::Boolean(); |
| 1548 } | 1596 } |
| 1549 | 1597 |
| 1550 | 1598 |
| 1551 HType HUnaryPredicate::CalculateInferredType() { | 1599 HType HDeleteProperty::CalculateInferredType() { |
| 1600 return HType::Boolean(); |
| 1601 } |
| 1602 |
| 1603 |
| 1604 HType HInstanceOfKnownGlobal::CalculateInferredType() { |
| 1552 return HType::Boolean(); | 1605 return HType::Boolean(); |
| 1553 } | 1606 } |
| 1554 | 1607 |
| 1555 | 1608 |
| 1556 HType HBitwiseBinaryOperation::CalculateInferredType() { | 1609 HType HBitwiseBinaryOperation::CalculateInferredType() { |
| 1557 return HType::TaggedNumber(); | 1610 return HType::TaggedNumber(); |
| 1558 } | 1611 } |
| 1559 | 1612 |
| 1560 | 1613 |
| 1561 HType HArithmeticBinaryOperation::CalculateInferredType() { | 1614 HType HArithmeticBinaryOperation::CalculateInferredType() { |
| (...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1718 | 1771 |
| 1719 | 1772 |
| 1720 void HSimulate::Verify() { | 1773 void HSimulate::Verify() { |
| 1721 HInstruction::Verify(); | 1774 HInstruction::Verify(); |
| 1722 ASSERT(HasAstId()); | 1775 ASSERT(HasAstId()); |
| 1723 } | 1776 } |
| 1724 | 1777 |
| 1725 | 1778 |
| 1726 void HBoundsCheck::Verify() { | 1779 void HBoundsCheck::Verify() { |
| 1727 HInstruction::Verify(); | 1780 HInstruction::Verify(); |
| 1728 ASSERT(HasNoUses()); | |
| 1729 } | 1781 } |
| 1730 | 1782 |
| 1731 | 1783 |
| 1732 void HCheckSmi::Verify() { | 1784 void HCheckSmi::Verify() { |
| 1733 HInstruction::Verify(); | 1785 HInstruction::Verify(); |
| 1734 ASSERT(HasNoUses()); | 1786 ASSERT(HasNoUses()); |
| 1735 } | 1787 } |
| 1736 | 1788 |
| 1737 | 1789 |
| 1738 void HCheckNonSmi::Verify() { | 1790 void HCheckNonSmi::Verify() { |
| (...skipping 21 matching lines...) Expand all Loading... |
| 1760 | 1812 |
| 1761 | 1813 |
| 1762 void HCheckPrototypeMaps::Verify() { | 1814 void HCheckPrototypeMaps::Verify() { |
| 1763 HInstruction::Verify(); | 1815 HInstruction::Verify(); |
| 1764 ASSERT(HasNoUses()); | 1816 ASSERT(HasNoUses()); |
| 1765 } | 1817 } |
| 1766 | 1818 |
| 1767 #endif | 1819 #endif |
| 1768 | 1820 |
| 1769 } } // namespace v8::internal | 1821 } } // namespace v8::internal |
| OLD | NEW |