Changeset 202131 in webkit
- Timestamp:
- Jun 16, 2016, 11:25:54 AM (9 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r202125 r202131 1 2016-06-16 Mark Lam <mark.lam@apple.com> 2 3 Add collecting of LLINT slow path stats. 4 https://bugs.webkit.org/show_bug.cgi?id=158829 5 6 Reviewed by Keith Miller. 7 8 * llint/LLIntData.cpp: 9 (JSC::LLInt::Data::dumpStats): 10 * llint/LLIntData.h: 11 * llint/LLIntSlowPaths.cpp: 12 (JSC::LLInt::LLINT_SLOW_PATH_DECL): 13 * llint/LLIntSlowPaths.h: 14 * llint/LowLevelInterpreter.asm: 15 * llint/LowLevelInterpreter32_64.asm: 16 * llint/LowLevelInterpreter64.asm: 17 1 18 2016-06-15 Keith Miller <keith_miller@apple.com> 2 19 -
trunk/Source/JavaScriptCore/llint/LLIntData.cpp
r202125 r202131 237 237 auto statsCopy = *s_opcodeStatsArray; 238 238 std::sort(statsCopy.begin(), statsCopy.end(), [] (OpcodeStats& a, OpcodeStats& b) -> bool { 239 return a.count > b.count; 239 if (a.count > b.count) 240 return true; 241 if (a.count < b.count) 242 return false; 243 return a.slowPathCount > b.slowPathCount; 240 244 }); 241 245 … … 244 248 for (auto& stats : statsCopy) { 245 249 if (stats.count) 246 dataLog(" [", i++, "]: fast:", stats.count, " ", opcodeNames[stats.id], "\n");250 dataLog(" [", i++, "]: fast:", stats.count, " slow:", stats.slowPathCount, " ", opcodeNames[stats.id], "\n"); 247 251 } 248 252 #endif -
trunk/Source/JavaScriptCore/llint/LLIntData.h
r201990 r202131 47 47 OpcodeID id; 48 48 size_t count { 0 }; 49 size_t slowPathCount { 0 }; 49 50 }; 50 51 typedef std::array<OpcodeStats, numOpcodeIDs> OpcodeStatsArray; -
trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
r202003 r202131 1656 1656 } 1657 1657 1658 LLINT_SLOW_PATH_DECL(count_opcode_slow_path) 1659 { 1660 OpcodeID opcodeID = exec->vm().interpreter->getOpcodeID(pc[0].u.opcode); 1661 Data::opcodeStats(opcodeID).slowPathCount++; 1662 LLINT_END_IMPL(); 1663 } 1664 1658 1665 #endif // ENABLE(LLINT_STATS) 1659 1666 -
trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.h
r202003 r202131 56 56 LLINT_SLOW_PATH_HIDDEN_DECL(special_trace); 57 57 LLINT_SLOW_PATH_HIDDEN_DECL(count_opcode); 58 LLINT_SLOW_PATH_HIDDEN_DECL(count_opcode_slow_path); 58 59 LLINT_SLOW_PATH_HIDDEN_DECL(entry_osr); 59 60 LLINT_SLOW_PATH_HIDDEN_DECL(entry_osr_function_for_call); -
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
r202125 r202131 736 736 end 737 737 738 macro traceSlowPathExecution() 739 if COLLECT_STATS 740 callSlowPath(_llint_count_opcode_slow_path) 741 end 742 end 743 744 macro callOpcodeSlowPath(slowPath) 745 traceSlowPathExecution() 746 callSlowPath(slowPath) 747 end 748 738 749 macro callTargetFunction(callee) 739 750 if C_LOOP … … 800 811 801 812 macro slowPathForCall(slowPath, prepareCall) 813 traceSlowPathExecution() 802 814 callCallSlowPath( 803 815 slowPath, … … 840 852 10, 841 853 macro () 842 call SlowPath(_llint_replace)854 callOpcodeSlowPath(_llint_replace) 843 855 end) 844 856 end … … 1223 1235 _llint_op_create_direct_arguments: 1224 1236 traceExecution() 1225 call SlowPath(_slow_path_create_direct_arguments)1237 callOpcodeSlowPath(_slow_path_create_direct_arguments) 1226 1238 dispatch(2) 1227 1239 … … 1229 1241 _llint_op_create_scoped_arguments: 1230 1242 traceExecution() 1231 call SlowPath(_slow_path_create_scoped_arguments)1243 callOpcodeSlowPath(_slow_path_create_scoped_arguments) 1232 1244 dispatch(3) 1233 1245 … … 1235 1247 _llint_op_create_cloned_arguments: 1236 1248 traceExecution() 1237 call SlowPath(_slow_path_create_cloned_arguments)1249 callOpcodeSlowPath(_slow_path_create_cloned_arguments) 1238 1250 dispatch(2) 1239 1251 … … 1241 1253 _llint_op_new_func: 1242 1254 traceExecution() 1243 call SlowPath(_llint_slow_path_new_func)1255 callOpcodeSlowPath(_llint_slow_path_new_func) 1244 1256 dispatch(4) 1245 1257 … … 1247 1259 _llint_op_new_generator_func: 1248 1260 traceExecution() 1249 call SlowPath(_llint_slow_path_new_generator_func)1261 callOpcodeSlowPath(_llint_slow_path_new_generator_func) 1250 1262 dispatch(4) 1251 1263 … … 1253 1265 _llint_op_new_array: 1254 1266 traceExecution() 1255 call SlowPath(_llint_slow_path_new_array)1267 callOpcodeSlowPath(_llint_slow_path_new_array) 1256 1268 dispatch(5) 1257 1269 … … 1259 1271 _llint_op_new_array_with_size: 1260 1272 traceExecution() 1261 call SlowPath(_llint_slow_path_new_array_with_size)1273 callOpcodeSlowPath(_llint_slow_path_new_array_with_size) 1262 1274 dispatch(4) 1263 1275 … … 1265 1277 _llint_op_new_array_buffer: 1266 1278 traceExecution() 1267 call SlowPath(_llint_slow_path_new_array_buffer)1279 callOpcodeSlowPath(_llint_slow_path_new_array_buffer) 1268 1280 dispatch(5) 1269 1281 … … 1271 1283 _llint_op_new_regexp: 1272 1284 traceExecution() 1273 call SlowPath(_llint_slow_path_new_regexp)1285 callOpcodeSlowPath(_llint_slow_path_new_regexp) 1274 1286 dispatch(3) 1275 1287 … … 1277 1289 _llint_op_less: 1278 1290 traceExecution() 1279 call SlowPath(_slow_path_less)1291 callOpcodeSlowPath(_slow_path_less) 1280 1292 dispatch(4) 1281 1293 … … 1283 1295 _llint_op_lesseq: 1284 1296 traceExecution() 1285 call SlowPath(_slow_path_lesseq)1297 callOpcodeSlowPath(_slow_path_lesseq) 1286 1298 dispatch(4) 1287 1299 … … 1289 1301 _llint_op_greater: 1290 1302 traceExecution() 1291 call SlowPath(_slow_path_greater)1303 callOpcodeSlowPath(_slow_path_greater) 1292 1304 dispatch(4) 1293 1305 … … 1295 1307 _llint_op_greatereq: 1296 1308 traceExecution() 1297 call SlowPath(_slow_path_greatereq)1309 callOpcodeSlowPath(_slow_path_greatereq) 1298 1310 dispatch(4) 1299 1311 … … 1301 1313 _llint_op_mod: 1302 1314 traceExecution() 1303 call SlowPath(_slow_path_mod)1315 callOpcodeSlowPath(_slow_path_mod) 1304 1316 dispatch(4) 1305 1317 … … 1307 1319 _llint_op_typeof: 1308 1320 traceExecution() 1309 call SlowPath(_slow_path_typeof)1321 callOpcodeSlowPath(_slow_path_typeof) 1310 1322 dispatch(3) 1311 1323 … … 1313 1325 _llint_op_is_object_or_null: 1314 1326 traceExecution() 1315 call SlowPath(_slow_path_is_object_or_null)1327 callOpcodeSlowPath(_slow_path_is_object_or_null) 1316 1328 dispatch(3) 1317 1329 1318 1330 _llint_op_is_function: 1319 1331 traceExecution() 1320 call SlowPath(_slow_path_is_function)1332 callOpcodeSlowPath(_slow_path_is_function) 1321 1333 dispatch(3) 1322 1334 … … 1324 1336 _llint_op_in: 1325 1337 traceExecution() 1326 call SlowPath(_slow_path_in)1338 callOpcodeSlowPath(_slow_path_in) 1327 1339 dispatch(4) 1328 1340 … … 1330 1342 _llint_op_try_get_by_id: 1331 1343 traceExecution() 1332 call SlowPath(_llint_slow_path_try_get_by_id)1344 callOpcodeSlowPath(_llint_slow_path_try_get_by_id) 1333 1345 dispatch(4) 1334 1346 … … 1336 1348 _llint_op_del_by_id: 1337 1349 traceExecution() 1338 call SlowPath(_llint_slow_path_del_by_id)1350 callOpcodeSlowPath(_llint_slow_path_del_by_id) 1339 1351 dispatch(4) 1340 1352 … … 1342 1354 _llint_op_del_by_val: 1343 1355 traceExecution() 1344 call SlowPath(_llint_slow_path_del_by_val)1356 callOpcodeSlowPath(_llint_slow_path_del_by_val) 1345 1357 dispatch(4) 1346 1358 … … 1348 1360 _llint_op_put_by_index: 1349 1361 traceExecution() 1350 call SlowPath(_llint_slow_path_put_by_index)1362 callOpcodeSlowPath(_llint_slow_path_put_by_index) 1351 1363 dispatch(4) 1352 1364 … … 1354 1366 _llint_op_put_getter_by_id: 1355 1367 traceExecution() 1356 call SlowPath(_llint_slow_path_put_getter_by_id)1368 callOpcodeSlowPath(_llint_slow_path_put_getter_by_id) 1357 1369 dispatch(5) 1358 1370 … … 1360 1372 _llint_op_put_setter_by_id: 1361 1373 traceExecution() 1362 call SlowPath(_llint_slow_path_put_setter_by_id)1374 callOpcodeSlowPath(_llint_slow_path_put_setter_by_id) 1363 1375 dispatch(5) 1364 1376 … … 1366 1378 _llint_op_put_getter_setter_by_id: 1367 1379 traceExecution() 1368 call SlowPath(_llint_slow_path_put_getter_setter_by_id)1380 callOpcodeSlowPath(_llint_slow_path_put_getter_setter_by_id) 1369 1381 dispatch(6) 1370 1382 … … 1372 1384 _llint_op_put_getter_by_val: 1373 1385 traceExecution() 1374 call SlowPath(_llint_slow_path_put_getter_by_val)1386 callOpcodeSlowPath(_llint_slow_path_put_getter_by_val) 1375 1387 dispatch(5) 1376 1388 … … 1378 1390 _llint_op_put_setter_by_val: 1379 1391 traceExecution() 1380 call SlowPath(_llint_slow_path_put_setter_by_val)1392 callOpcodeSlowPath(_llint_slow_path_put_setter_by_val) 1381 1393 dispatch(5) 1382 1394 … … 1497 1509 _llint_op_switch_string: 1498 1510 traceExecution() 1499 call SlowPath(_llint_slow_path_switch_string)1511 callOpcodeSlowPath(_llint_slow_path_switch_string) 1500 1512 dispatch(0) 1501 1513 … … 1503 1515 _llint_op_new_func_exp: 1504 1516 traceExecution() 1505 call SlowPath(_llint_slow_path_new_func_exp)1517 callOpcodeSlowPath(_llint_slow_path_new_func_exp) 1506 1518 dispatch(4) 1507 1519 1508 1520 _llint_op_new_generator_func_exp: 1509 1521 traceExecution() 1510 call SlowPath(_llint_slow_path_new_generator_func_exp)1522 callOpcodeSlowPath(_llint_slow_path_new_generator_func_exp) 1511 1523 dispatch(4) 1512 1524 1513 1525 _llint_op_set_function_name: 1514 1526 traceExecution() 1515 call SlowPath(_llint_slow_path_set_function_name)1527 callOpcodeSlowPath(_llint_slow_path_set_function_name) 1516 1528 dispatch(3) 1517 1529 … … 1532 1544 1533 1545 macro doCallVarargs(frameSlowPath, slowPath, prepareCall) 1534 call SlowPath(frameSlowPath)1546 callOpcodeSlowPath(frameSlowPath) 1535 1547 branchIfException(_llint_throw_from_slow_path_trampoline) 1536 1548 # calleeFrame in r1 … … 1619 1631 _llint_op_strcat: 1620 1632 traceExecution() 1621 call SlowPath(_slow_path_strcat)1633 callOpcodeSlowPath(_slow_path_strcat) 1622 1634 dispatch(4) 1623 1635 … … 1625 1637 _llint_op_push_with_scope: 1626 1638 traceExecution() 1627 call SlowPath(_slow_path_push_with_scope)1639 callOpcodeSlowPath(_slow_path_push_with_scope) 1628 1640 dispatch(4) 1629 1641 … … 1631 1643 _llint_op_assert: 1632 1644 traceExecution() 1633 call SlowPath(_slow_path_assert)1645 callOpcodeSlowPath(_slow_path_assert) 1634 1646 dispatch(3) 1635 1647 … … 1637 1649 _llint_op_save: 1638 1650 traceExecution() 1639 call SlowPath(_slow_path_save)1651 callOpcodeSlowPath(_slow_path_save) 1640 1652 dispatch(4) 1641 1653 … … 1643 1655 _llint_op_resume: 1644 1656 traceExecution() 1645 call SlowPath(_slow_path_resume)1657 callOpcodeSlowPath(_slow_path_resume) 1646 1658 dispatch(3) 1647 1659 … … 1649 1661 _llint_op_create_lexical_environment: 1650 1662 traceExecution() 1651 call SlowPath(_slow_path_create_lexical_environment)1663 callOpcodeSlowPath(_slow_path_create_lexical_environment) 1652 1664 dispatch(5) 1653 1665 … … 1655 1667 _llint_op_throw: 1656 1668 traceExecution() 1657 call SlowPath(_llint_slow_path_throw)1669 callOpcodeSlowPath(_llint_slow_path_throw) 1658 1670 dispatch(2) 1659 1671 … … 1661 1673 _llint_op_throw_static_error: 1662 1674 traceExecution() 1663 call SlowPath(_llint_slow_path_throw_static_error)1675 callOpcodeSlowPath(_llint_slow_path_throw_static_error) 1664 1676 dispatch(3) 1665 1677 … … 1670 1682 loadi CodeBlock::m_debuggerRequests[t0], t0 1671 1683 btiz t0, .opDebugDone 1672 call SlowPath(_llint_slow_path_debug)1684 callOpcodeSlowPath(_llint_slow_path_debug) 1673 1685 .opDebugDone: 1674 1686 dispatch(3) … … 1684 1696 _llint_op_get_enumerable_length: 1685 1697 traceExecution() 1686 call SlowPath(_slow_path_get_enumerable_length)1698 callOpcodeSlowPath(_slow_path_get_enumerable_length) 1687 1699 dispatch(3) 1688 1700 1689 1701 _llint_op_has_indexed_property: 1690 1702 traceExecution() 1691 call SlowPath(_slow_path_has_indexed_property)1703 callOpcodeSlowPath(_slow_path_has_indexed_property) 1692 1704 dispatch(5) 1693 1705 1694 1706 _llint_op_has_structure_property: 1695 1707 traceExecution() 1696 call SlowPath(_slow_path_has_structure_property)1708 callOpcodeSlowPath(_slow_path_has_structure_property) 1697 1709 dispatch(5) 1698 1710 1699 1711 _llint_op_has_generic_property: 1700 1712 traceExecution() 1701 call SlowPath(_slow_path_has_generic_property)1713 callOpcodeSlowPath(_slow_path_has_generic_property) 1702 1714 dispatch(4) 1703 1715 1704 1716 _llint_op_get_direct_pname: 1705 1717 traceExecution() 1706 call SlowPath(_slow_path_get_direct_pname)1718 callOpcodeSlowPath(_slow_path_get_direct_pname) 1707 1719 dispatch(7) 1708 1720 1709 1721 _llint_op_get_property_enumerator: 1710 1722 traceExecution() 1711 call SlowPath(_slow_path_get_property_enumerator)1723 callOpcodeSlowPath(_slow_path_get_property_enumerator) 1712 1724 dispatch(3) 1713 1725 1714 1726 _llint_op_enumerator_structure_pname: 1715 1727 traceExecution() 1716 call SlowPath(_slow_path_next_structure_enumerator_pname)1728 callOpcodeSlowPath(_slow_path_next_structure_enumerator_pname) 1717 1729 dispatch(4) 1718 1730 1719 1731 _llint_op_enumerator_generic_pname: 1720 1732 traceExecution() 1721 call SlowPath(_slow_path_next_generic_enumerator_pname)1733 callOpcodeSlowPath(_slow_path_next_generic_enumerator_pname) 1722 1734 dispatch(4) 1723 1735 1724 1736 _llint_op_to_index_string: 1725 1737 traceExecution() 1726 call SlowPath(_slow_path_to_index_string)1738 callOpcodeSlowPath(_slow_path_to_index_string) 1727 1739 dispatch(3) 1728 1740 1729 1741 _llint_op_copy_rest: 1730 1742 traceExecution() 1731 call SlowPath(_slow_path_copy_rest)1743 callOpcodeSlowPath(_slow_path_copy_rest) 1732 1744 dispatch(4) 1733 1745 1734 1746 _llint_op_instanceof: 1735 1747 traceExecution() 1736 call SlowPath(_llint_slow_path_instanceof)1748 callOpcodeSlowPath(_llint_slow_path_instanceof) 1737 1749 dispatch(4) 1738 1750 1739 1751 _llint_op_get_by_id_with_this: 1740 1752 traceExecution() 1741 call SlowPath(_slow_path_get_by_id_with_this)1753 callOpcodeSlowPath(_slow_path_get_by_id_with_this) 1742 1754 dispatch(5) 1743 1755 1744 1756 _llint_op_get_by_val_with_this: 1745 1757 traceExecution() 1746 call SlowPath(_slow_path_get_by_val_with_this)1758 callOpcodeSlowPath(_slow_path_get_by_val_with_this) 1747 1759 dispatch(5) 1748 1760 1749 1761 _llint_op_put_by_id_with_this: 1750 1762 traceExecution() 1751 call SlowPath(_slow_path_put_by_id_with_this)1763 callOpcodeSlowPath(_slow_path_put_by_id_with_this) 1752 1764 dispatch(5) 1753 1765 1754 1766 _llint_op_put_by_val_with_this: 1755 1767 traceExecution() 1756 call SlowPath(_slow_path_put_by_val_with_this)1768 callOpcodeSlowPath(_slow_path_put_by_val_with_this) 1757 1769 dispatch(5) 1758 1770 -
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
r202125 r202131 674 674 btinz t2, .opEnterLoop 675 675 .opEnterDone: 676 call SlowPath(_slow_path_enter)676 callOpcodeSlowPath(_slow_path_enter) 677 677 dispatch(1) 678 678 … … 720 720 721 721 .opCreateThisSlow: 722 call SlowPath(_slow_path_create_this)722 callOpcodeSlowPath(_slow_path_create_this) 723 723 dispatch(5) 724 724 … … 735 735 736 736 .opToThisSlow: 737 call SlowPath(_slow_path_to_this)737 callOpcodeSlowPath(_slow_path_to_this) 738 738 dispatch(4) 739 739 … … 751 751 752 752 .opNewObjectSlow: 753 call SlowPath(_llint_slow_path_new_object)753 callOpcodeSlowPath(_llint_slow_path_new_object) 754 754 dispatch(4) 755 755 … … 760 760 loadConstantOrVariableTag(t0, t1) 761 761 bineq t1, EmptyValueTag, .opNotTDZ 762 call SlowPath(_slow_path_throw_tdz_error)762 callOpcodeSlowPath(_slow_path_throw_tdz_error) 763 763 764 764 .opNotTDZ: … … 788 788 789 789 .opNotSlow: 790 call SlowPath(_slow_path_not)790 callOpcodeSlowPath(_slow_path_not) 791 791 dispatch(3) 792 792 … … 808 808 809 809 .opEqSlow: 810 call SlowPath(_slow_path_eq)810 callOpcodeSlowPath(_slow_path_eq) 811 811 dispatch(4) 812 812 … … 855 855 856 856 .opNeqSlow: 857 call SlowPath(_slow_path_neq)857 callOpcodeSlowPath(_slow_path_neq) 858 858 dispatch(4) 859 859 … … 904 904 905 905 .slow: 906 call SlowPath(slowPath)906 callOpcodeSlowPath(slowPath) 907 907 dispatch(4) 908 908 end … … 928 928 929 929 .opIncSlow: 930 call SlowPath(_slow_path_inc)930 callOpcodeSlowPath(_slow_path_inc) 931 931 dispatch(2) 932 932 … … 942 942 943 943 .opDecSlow: 944 call SlowPath(_slow_path_dec)944 callOpcodeSlowPath(_slow_path_dec) 945 945 dispatch(2) 946 946 … … 959 959 960 960 .opToNumberSlow: 961 call SlowPath(_slow_path_to_number)961 callOpcodeSlowPath(_slow_path_to_number) 962 962 dispatch(3) 963 963 … … 976 976 977 977 .opToStringSlow: 978 call SlowPath(_slow_path_to_string)978 callOpcodeSlowPath(_slow_path_to_string) 979 979 dispatch(3) 980 980 … … 999 999 1000 1000 .opNegateSlow: 1001 call SlowPath(_slow_path_negate)1001 callOpcodeSlowPath(_slow_path_negate) 1002 1002 dispatch(3) 1003 1003 … … 1041 1041 1042 1042 .slow: 1043 call SlowPath(slowPath)1043 callOpcodeSlowPath(slowPath) 1044 1044 dispatch(5) 1045 1045 end … … 1122 1122 1123 1123 .slow: 1124 call SlowPath(slowPath)1124 callOpcodeSlowPath(slowPath) 1125 1125 dispatch(advance) 1126 1126 end … … 1160 1160 dispatch(3) 1161 1161 .opUnsignedSlow: 1162 call SlowPath(_slow_path_unsigned)1162 callOpcodeSlowPath(_slow_path_unsigned) 1163 1163 dispatch(3) 1164 1164 … … 1220 1220 _llint_op_instanceof_custom: 1221 1221 traceExecution() 1222 call SlowPath(_llint_slow_path_instanceof_custom)1222 callOpcodeSlowPath(_llint_slow_path_instanceof_custom) 1223 1223 dispatch(5) 1224 1224 … … 1383 1383 1384 1384 .opGetByIdSlow: 1385 call SlowPath(_llint_slow_path_get_by_id)1385 callOpcodeSlowPath(_llint_slow_path_get_by_id) 1386 1386 dispatch(9) 1387 1387 … … 1403 1403 1404 1404 .opGetByIdProtoSlow: 1405 call SlowPath(_llint_slow_path_get_by_id)1405 callOpcodeSlowPath(_llint_slow_path_get_by_id) 1406 1406 dispatch(9) 1407 1407 … … 1420 1420 1421 1421 .opGetByIdUnsetSlow: 1422 call SlowPath(_llint_slow_path_get_by_id)1422 callOpcodeSlowPath(_llint_slow_path_get_by_id) 1423 1423 dispatch(9) 1424 1424 … … 1443 1443 1444 1444 .opGetArrayLengthSlow: 1445 call SlowPath(_llint_slow_path_get_by_id)1445 callOpcodeSlowPath(_llint_slow_path_get_by_id) 1446 1446 dispatch(9) 1447 1447 … … 1574 1574 1575 1575 .opPutByIdSlow: 1576 call SlowPath(_llint_slow_path_put_by_id)1576 callOpcodeSlowPath(_llint_slow_path_put_by_id) 1577 1577 dispatch(9) 1578 1578 … … 1628 1628 storeb 1, ArrayProfile::m_outOfBounds[t0] 1629 1629 .opGetByValSlow: 1630 call SlowPath(_llint_slow_path_get_by_val)1630 callOpcodeSlowPath(_llint_slow_path_get_by_val) 1631 1631 dispatch(6) 1632 1632 … … 1720 1720 storeb 1, ArrayProfile::m_outOfBounds[t0] 1721 1721 .opPutByValSlow: 1722 call SlowPath(slowPath)1722 callOpcodeSlowPath(slowPath) 1723 1723 dispatch(5) 1724 1724 end … … 1745 1745 1746 1746 .slow: 1747 call SlowPath(slow)1747 callOpcodeSlowPath(slow) 1748 1748 dispatch(0) 1749 1749 end … … 1843 1843 1844 1844 .slow: 1845 call SlowPath(slowPath)1845 callOpcodeSlowPath(slowPath) 1846 1846 dispatch(0) 1847 1847 end … … 1872 1872 1873 1873 .opSwitchImmSlow: 1874 call SlowPath(_llint_slow_path_switch_imm)1874 callOpcodeSlowPath(_llint_slow_path_switch_imm) 1875 1875 dispatch(0) 1876 1876 … … 1909 1909 1910 1910 .opSwitchOnRope: 1911 call SlowPath(_llint_slow_path_switch_char)1911 callOpcodeSlowPath(_llint_slow_path_switch_char) 1912 1912 dispatch(0) 1913 1913 … … 1968 1968 1969 1969 .opToPrimitiveSlowCase: 1970 call SlowPath(_slow_path_to_primitive)1970 callOpcodeSlowPath(_slow_path_to_primitive) 1971 1971 dispatch(3) 1972 1972 … … 1988 1988 loadi VM::targetInterpreterPCForThrow[t3], PC 1989 1989 1990 call SlowPath(_llint_slow_path_check_if_exception_is_uncatchable_and_notify_profiler)1990 callOpcodeSlowPath(_llint_slow_path_check_if_exception_is_uncatchable_and_notify_profiler) 1991 1991 bpeq r1, 0, .isCatchableException 1992 1992 jmp _llint_throw_from_slow_path_trampoline … … 2183 2183 2184 2184 .rDynamic: 2185 call SlowPath(_slow_path_resolve_scope)2185 callOpcodeSlowPath(_slow_path_resolve_scope) 2186 2186 dispatch(7) 2187 2187 … … 2283 2283 2284 2284 .gDynamic: 2285 call SlowPath(_llint_slow_path_get_from_scope)2285 callOpcodeSlowPath(_llint_slow_path_get_from_scope) 2286 2286 dispatch(8) 2287 2287 … … 2394 2394 .pModuleVar: 2395 2395 bineq t0, ModuleVar, .pDynamic 2396 call SlowPath(_slow_path_throw_strict_mode_readonly_property_write_error)2396 callOpcodeSlowPath(_slow_path_throw_strict_mode_readonly_property_write_error) 2397 2397 dispatch(7) 2398 2398 2399 2399 .pDynamic: 2400 call SlowPath(_llint_slow_path_put_to_scope)2400 callOpcodeSlowPath(_llint_slow_path_put_to_scope) 2401 2401 dispatch(7) 2402 2402 … … 2478 2478 loadp TypeProfilerLog::m_logEndPtr[t1], t1 2479 2479 bpneq t2, t1, .opProfileTypeDone 2480 call SlowPath(_slow_path_profile_type_clear_log)2480 callOpcodeSlowPath(_slow_path_profile_type_clear_log) 2481 2481 2482 2482 .opProfileTypeDone: … … 2525 2525 dispatch(2) 2526 2526 .opLogShadowChickenPrologueSlow: 2527 call SlowPath(_llint_slow_path_log_shadow_chicken_prologue)2527 callOpcodeSlowPath(_llint_slow_path_log_shadow_chicken_prologue) 2528 2528 dispatch(2) 2529 2529 … … 2545 2545 dispatch(3) 2546 2546 .opLogShadowChickenTailSlow: 2547 call SlowPath(_llint_slow_path_log_shadow_chicken_tail)2548 dispatch(3) 2547 callOpcodeSlowPath(_llint_slow_path_log_shadow_chicken_tail) 2548 dispatch(3) -
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
r202125 r202131 581 581 btqnz t2, .opEnterLoop 582 582 .opEnterDone: 583 call SlowPath(_slow_path_enter)583 callOpcodeSlowPath(_slow_path_enter) 584 584 dispatch(1) 585 585 … … 624 624 625 625 .opCreateThisSlow: 626 call SlowPath(_slow_path_create_this)626 callOpcodeSlowPath(_slow_path_create_this) 627 627 dispatch(5) 628 628 … … 640 640 641 641 .opToThisSlow: 642 call SlowPath(_slow_path_to_this)642 callOpcodeSlowPath(_slow_path_to_this) 643 643 dispatch(4) 644 644 … … 655 655 656 656 .opNewObjectSlow: 657 call SlowPath(_llint_slow_path_new_object)657 callOpcodeSlowPath(_llint_slow_path_new_object) 658 658 dispatch(4) 659 659 … … 664 664 loadConstantOrVariable(t0, t1) 665 665 bqneq t1, ValueEmpty, .opNotTDZ 666 call SlowPath(_slow_path_throw_tdz_error)666 callOpcodeSlowPath(_slow_path_throw_tdz_error) 667 667 668 668 .opNotTDZ: … … 691 691 692 692 .opNotSlow: 693 call SlowPath(_slow_path_not)693 callOpcodeSlowPath(_slow_path_not) 694 694 dispatch(3) 695 695 … … 708 708 709 709 .slow: 710 call SlowPath(slowPath)710 callOpcodeSlowPath(slowPath) 711 711 dispatch(4) 712 712 end … … 783 783 784 784 .slow: 785 call SlowPath(slowPath)785 callOpcodeSlowPath(slowPath) 786 786 dispatch(4) 787 787 end … … 810 810 811 811 .slow: 812 call SlowPath(slowPath)812 callOpcodeSlowPath(slowPath) 813 813 dispatch(2) 814 814 end … … 838 838 839 839 .opToNumberSlow: 840 call SlowPath(_slow_path_to_number)840 callOpcodeSlowPath(_slow_path_to_number) 841 841 dispatch(3) 842 842 … … 854 854 855 855 .opToStringSlow: 856 call SlowPath(_slow_path_to_string)856 callOpcodeSlowPath(_slow_path_to_string) 857 857 dispatch(3) 858 858 … … 876 876 877 877 .opNegateSlow: 878 call SlowPath(_slow_path_negate)878 callOpcodeSlowPath(_slow_path_negate) 879 879 dispatch(3) 880 880 … … 925 925 926 926 .slow: 927 call SlowPath(slowPath)927 callOpcodeSlowPath(slowPath) 928 928 dispatch(5) 929 929 end … … 997 997 _slow_path_div) 998 998 else 999 call SlowPath(_slow_path_div)999 callOpcodeSlowPath(_slow_path_div) 1000 1000 dispatch(5) 1001 1001 end … … 1016 1016 1017 1017 .slow: 1018 call SlowPath(slowPath)1018 callOpcodeSlowPath(slowPath) 1019 1019 dispatch(advance) 1020 1020 end … … 1053 1053 dispatch(3) 1054 1054 .opUnsignedSlow: 1055 call SlowPath(_slow_path_unsigned)1055 callOpcodeSlowPath(_slow_path_unsigned) 1056 1056 dispatch(3) 1057 1057 … … 1106 1106 _llint_op_instanceof_custom: 1107 1107 traceExecution() 1108 call SlowPath(_llint_slow_path_instanceof_custom)1108 callOpcodeSlowPath(_llint_slow_path_instanceof_custom) 1109 1109 dispatch(5) 1110 1110 … … 1254 1254 1255 1255 .opGetByIdSlow: 1256 call SlowPath(_llint_slow_path_get_by_id)1256 callOpcodeSlowPath(_llint_slow_path_get_by_id) 1257 1257 dispatch(9) 1258 1258 … … 1274 1274 1275 1275 .opGetByIdProtoSlow: 1276 call SlowPath(_llint_slow_path_get_by_id)1276 callOpcodeSlowPath(_llint_slow_path_get_by_id) 1277 1277 dispatch(9) 1278 1278 … … 1291 1291 1292 1292 .opGetByIdUnsetSlow: 1293 call SlowPath(_llint_slow_path_get_by_id)1293 callOpcodeSlowPath(_llint_slow_path_get_by_id) 1294 1294 dispatch(9) 1295 1295 … … 1314 1314 1315 1315 .opGetArrayLengthSlow: 1316 call SlowPath(_llint_slow_path_get_by_id)1316 callOpcodeSlowPath(_llint_slow_path_get_by_id) 1317 1317 dispatch(9) 1318 1318 … … 1453 1453 1454 1454 .opPutByIdSlow: 1455 call SlowPath(_llint_slow_path_put_by_id)1455 callOpcodeSlowPath(_llint_slow_path_put_by_id) 1456 1456 dispatch(9) 1457 1457 … … 1590 1590 1591 1591 .opGetByValSlow: 1592 call SlowPath(_llint_slow_path_get_by_val)1592 callOpcodeSlowPath(_llint_slow_path_get_by_val) 1593 1593 dispatch(6) 1594 1594 … … 1678 1678 storeb 1, ArrayProfile::m_outOfBounds[t0] 1679 1679 .opPutByValSlow: 1680 call SlowPath(slowPath)1680 callOpcodeSlowPath(slowPath) 1681 1681 dispatch(5) 1682 1682 end … … 1706 1706 1707 1707 .slow: 1708 call SlowPath(slow)1708 callOpcodeSlowPath(slow) 1709 1709 dispatch(0) 1710 1710 end … … 1805 1805 1806 1806 .slow: 1807 call SlowPath(slowPath)1807 callOpcodeSlowPath(slowPath) 1808 1808 dispatch(0) 1809 1809 end … … 1834 1834 1835 1835 .opSwitchImmSlow: 1836 call SlowPath(_llint_slow_path_switch_imm)1836 callOpcodeSlowPath(_llint_slow_path_switch_imm) 1837 1837 dispatch(0) 1838 1838 … … 1871 1871 1872 1872 .opSwitchOnRope: 1873 call SlowPath(_llint_slow_path_switch_char)1873 callOpcodeSlowPath(_llint_slow_path_switch_char) 1874 1874 dispatch(0) 1875 1875 … … 1928 1928 1929 1929 .opToPrimitiveSlowCase: 1930 call SlowPath(_slow_path_to_primitive)1930 callOpcodeSlowPath(_slow_path_to_primitive) 1931 1931 dispatch(3) 1932 1932 … … 1952 1952 rshiftp 3, PC 1953 1953 1954 call SlowPath(_llint_slow_path_check_if_exception_is_uncatchable_and_notify_profiler)1954 callOpcodeSlowPath(_llint_slow_path_check_if_exception_is_uncatchable_and_notify_profiler) 1955 1955 bpeq r1, 0, .isCatchableException 1956 1956 jmp _llint_throw_from_slow_path_trampoline … … 2130 2130 2131 2131 .rDynamic: 2132 call SlowPath(_slow_path_resolve_scope)2132 callOpcodeSlowPath(_slow_path_resolve_scope) 2133 2133 dispatch(7) 2134 2134 … … 2226 2226 2227 2227 .gDynamic: 2228 call SlowPath(_llint_slow_path_get_from_scope)2228 callOpcodeSlowPath(_llint_slow_path_get_from_scope) 2229 2229 dispatch(8) 2230 2230 … … 2347 2347 .pModuleVar: 2348 2348 bineq t0, ModuleVar, .pDynamic 2349 call SlowPath(_slow_path_throw_strict_mode_readonly_property_write_error)2349 callOpcodeSlowPath(_slow_path_throw_strict_mode_readonly_property_write_error) 2350 2350 dispatch(7) 2351 2351 2352 2352 .pDynamic: 2353 call SlowPath(_llint_slow_path_put_to_scope)2353 callOpcodeSlowPath(_llint_slow_path_put_to_scope) 2354 2354 dispatch(7) 2355 2355 … … 2421 2421 loadp TypeProfilerLog::m_logEndPtr[t1], t1 2422 2422 bpneq t2, t1, .opProfileTypeDone 2423 call SlowPath(_slow_path_profile_type_clear_log)2423 callOpcodeSlowPath(_slow_path_profile_type_clear_log) 2424 2424 2425 2425 .opProfileTypeDone: … … 2462 2462 dispatch(2) 2463 2463 .opLogShadowChickenPrologueSlow: 2464 call SlowPath(_llint_slow_path_log_shadow_chicken_prologue)2464 callOpcodeSlowPath(_llint_slow_path_log_shadow_chicken_prologue) 2465 2465 dispatch(2) 2466 2466 … … 2480 2480 dispatch(3) 2481 2481 .opLogShadowChickenTailSlow: 2482 call SlowPath(_llint_slow_path_log_shadow_chicken_tail)2483 dispatch(3) 2482 callOpcodeSlowPath(_llint_slow_path_log_shadow_chicken_tail) 2483 dispatch(3)
Note:
See TracChangeset
for help on using the changeset viewer.