Changeset 229478 in webkit
- Timestamp:
- Mar 9, 2018, 1:04:03 PM (7 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r229476 r229478 1 2018-03-09 Mark Lam <mark.lam@apple.com> 2 3 Remove unused LLINT_STATS feature. 4 https://bugs.webkit.org/show_bug.cgi?id=183522 5 <rdar://problem/38313139> 6 7 Rubber-stamped by Keith Miller. 8 9 We haven't used this in a while, and it is one more option that makes offlineasm 10 build slower. We can always re-introduce this later if we need it. 11 12 * jsc.cpp: 13 * llint/LLIntCommon.h: 14 * llint/LLIntData.cpp: 15 (JSC::LLInt::initialize): 16 (JSC::LLInt::Data::finalizeStats): Deleted. 17 (JSC::LLInt::compareStats): Deleted. 18 (JSC::LLInt::Data::dumpStats): Deleted. 19 (JSC::LLInt::Data::ensureStats): Deleted. 20 (JSC::LLInt::Data::loadStats): Deleted. 21 (JSC::LLInt::Data::resetStats): Deleted. 22 (JSC::LLInt::Data::saveStats): Deleted. 23 * llint/LLIntData.h: 24 (): Deleted. 25 (JSC::LLInt::Data::opcodeStats): Deleted. 26 * llint/LLIntOfflineAsmConfig.h: 27 * llint/LLIntSlowPaths.cpp: 28 * llint/LLIntSlowPaths.h: 29 * llint/LowLevelInterpreter.asm: 30 * llint/LowLevelInterpreter32_64.asm: 31 * llint/LowLevelInterpreter64.asm: 32 * runtime/Options.cpp: 33 (JSC::Options::isAvailable): 34 (JSC::recomputeDependentOptions): 35 * runtime/Options.h: 36 * runtime/TestRunnerUtils.cpp: 37 (JSC::finalizeStatsAtEndOfTesting): 38 1 39 2018-03-09 Michael Saboff <msaboff@apple.com> 2 40 -
trunk/Source/JavaScriptCore/jsc.cpp
r229410 r229478 55 55 #include "JSWebAssemblyInstance.h" 56 56 #include "JSWebAssemblyMemory.h" 57 #include "LLIntData.h"58 57 #include "LLIntThunks.h" 59 58 #include "ObjectConstructor.h" -
trunk/Source/JavaScriptCore/llint/LLIntCommon.h
r206525 r229478 26 26 #pragma once 27 27 28 // Enables LLINT stats collection.29 #define ENABLE_LLINT_STATS 030 31 28 // Print every instruction executed. 32 29 #define LLINT_EXECUTION_TRACING 0 -
trunk/Source/JavaScriptCore/llint/LLIntData.cpp
r229447 r229478 1 1 /* 2 * Copyright (C) 2011 , 2016Apple Inc. All rights reserved.2 * Copyright (C) 2011-2018 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 31 31 #include "CodeBlock.h" 32 32 #include "CodeType.h" 33 #include "InitializeThreading.h"34 33 #include "Instruction.h" 35 34 #include "JSScope.h" 36 35 #include "LLIntCLoop.h" 37 #include "LLIntCommon.h"38 36 #include "MaxFrameExtentForSlowPathCall.h" 39 37 #include "Opcode.h" … … 41 39 #include "ShadowChicken.h" 42 40 #include "WriteBarrier.h" 43 #include <string>44 #include <wtf/NeverDestroyed.h>45 41 46 42 #define STATIC_ASSERT(cond) static_assert(cond, "LLInt assumes " #cond) … … 50 46 Instruction Data::s_exceptionInstructions[maxOpcodeLength + 1] = { }; 51 47 Opcode Data::s_opcodeMap[numOpcodeIDs] = { }; 52 OpcodeStatsArray* Data::s_opcodeStatsArray = nullptr;53 48 54 49 #if ENABLE(JIT) … … 68 63 LLInt::getCodePtr(llint_throw_from_slow_path_trampoline); 69 64 #endif // ENABLE(JIT) 70 71 #if ENABLE(LLINT_STATS)72 Data::ensureStats();73 #endif74 65 } 75 66 … … 210 201 #endif 211 202 212 void Data::finalizeStats()213 {214 #if ENABLE(LLINT_STATS)215 if (!Options::reportLLIntStats())216 return;217 218 if (Options::llintStatsFile())219 saveStats();220 221 dumpStats();222 #endif223 }224 225 #if ENABLE(LLINT_STATS)226 namespace LLIntDataInternal {227 static const bool verboseStats = false;228 }229 230 static bool compareStats(const OpcodeStats& a, const OpcodeStats& b)231 {232 if (a.count > b.count)233 return true;234 if (a.count < b.count)235 return false;236 return a.slowPathCount > b.slowPathCount;237 }238 239 void Data::dumpStats()240 {241 ASSERT(Options::reportLLIntStats());242 auto statsCopy = *s_opcodeStatsArray;243 std::sort(statsCopy.begin(), statsCopy.end(), compareStats);244 245 dataLog("Opcode stats:\n");246 unsigned i = 0;247 for (auto& stats : statsCopy) {248 if (stats.count || stats.slowPathCount)249 dataLog(" [", i++, "]: fast:", stats.count, " slow:", stats.slowPathCount, " ", opcodeNames[stats.id], "\n");250 }251 }252 253 void Data::ensureStats()254 {255 static std::once_flag initializeOptionsOnceFlag;256 std::call_once(initializeOptionsOnceFlag, [] {257 s_opcodeStatsArray = new OpcodeStatsArray();258 resetStats();259 });260 }261 262 void Data::loadStats()263 {264 static NeverDestroyed<std::string> installedStatsFile;265 if (!Options::llintStatsFile() || !installedStatsFile.get().compare(Options::llintStatsFile()))266 return;267 268 Options::reportLLIntStats() = true; // Force stats collection.269 installedStatsFile.get() = Options::llintStatsFile();270 271 ensureStats();272 273 const char* filename = Options::llintStatsFile();274 FILE* file = fopen(filename, "r");275 if (!file) {276 dataLogF("Failed to open file %s. Did you add the file-read-write-data entitlement to WebProcess.sb?\n", filename);277 return;278 }279 280 resetStats();281 282 OpcodeStats loaded;283 unsigned index;284 char opcodeName[100];285 while (fscanf(file, "[%u]: fast:%zu slow:%zu id:%u %s\n", &index, &loaded.count, &loaded.slowPathCount, &loaded.id, opcodeName) != EOF) {286 if (LLIntDataInternal::verboseStats)287 dataLogF("loaded [%u]: fast %zu slow %zu id:%u %s\n", index, loaded.count, loaded.slowPathCount, loaded.id, opcodeName);288 289 OpcodeStats& stats = opcodeStats(loaded.id);290 stats.count = loaded.count;291 stats.slowPathCount = loaded.slowPathCount;292 }293 294 if (LLIntDataInternal::verboseStats) {295 dataLogF("After loading from %s, ", filename);296 dumpStats();297 }298 299 int result = fclose(file);300 if (result)301 dataLogF("Failed to close file %s: %s\n", filename, strerror(errno));302 }303 304 void Data::resetStats()305 {306 unsigned i = 0;307 for (auto& stats : *s_opcodeStatsArray) {308 stats.id = static_cast<OpcodeID>(i++);309 stats.count = 0;310 stats.slowPathCount = 0;311 }312 }313 314 void Data::saveStats()315 {316 ASSERT(Options::reportLLIntStats() && Options::llintStatsFile());317 const char* filename = Options::llintStatsFile();318 319 FILE* file = fopen(filename, "w");320 if (!file) {321 dataLogF("Failed to open file %s. Did you add the file-read-write-data entitlement to WebProcess.sb?\n", filename);322 return;323 }324 325 auto statsCopy = *s_opcodeStatsArray;326 std::sort(statsCopy.begin(), statsCopy.end(), compareStats);327 328 int index = 0;329 for (auto& stats : statsCopy) {330 if (!stats.count && !stats.slowPathCount)331 break; // stats are sorted. If we encountered 0 counts, then there are no more non-zero counts.332 333 if (LLIntDataInternal::verboseStats)334 dataLogF("saved [%u]: fast:%zu slow:%zu id:%u %s\n", index, stats.count, stats.slowPathCount, stats.id, opcodeNames[stats.id]);335 336 fprintf(file, "[%u]: fast:%zu slow:%zu id:%u %s\n", index, stats.count, stats.slowPathCount, stats.id, opcodeNames[stats.id]);337 index++;338 }339 340 int result = fclose(file);341 if (result)342 dataLogF("Failed to close file %s: %s\n", filename, strerror(errno));343 }344 #endif345 346 203 } } // namespace JSC::LLInt -
trunk/Source/JavaScriptCore/llint/LLIntData.h
r229447 r229478 28 28 #include "JSCJSValue.h" 29 29 #include "Opcode.h" 30 #include <array>31 30 #include <wtf/PointerPreparations.h> 32 31 … … 44 43 namespace LLInt { 45 44 46 struct OpcodeStats {47 OpcodeID id;48 size_t count { 0 };49 size_t slowPathCount { 0 };50 };51 typedef std::array<OpcodeStats, numOpcodeIDs> OpcodeStatsArray;52 53 45 class Data { 54 46 public: 55 56 47 static void performAssertions(VM&); 57 static OpcodeStats& opcodeStats(OpcodeID id) { return (*s_opcodeStatsArray)[id]; }58 59 JS_EXPORT_PRIVATE static void finalizeStats();60 61 static void dumpStats();62 static void loadStats();63 48 64 49 private: 65 static void ensureStats();66 static void resetStats();67 static void saveStats();68 69 50 static Instruction s_exceptionInstructions[maxOpcodeLength + 1]; 70 51 static Opcode s_opcodeMap[numOpcodeIDs]; 71 static OpcodeStatsArray* s_opcodeStatsArray;72 52 73 53 friend void initialize(); -
trunk/Source/JavaScriptCore/llint/LLIntOfflineAsmConfig.h
r229447 r229478 162 162 #endif 163 163 164 #if ENABLE(LLINT_STATS)165 #define OFFLINE_ASM_COLLECT_STATS 1166 #else167 #define OFFLINE_ASM_COLLECT_STATS 0168 #endif169 170 164 #if LLINT_EXECUTION_TRACING 171 165 #define OFFLINE_ASM_EXECUTION_TRACING 1 -
trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
r229447 r229478 1804 1804 } 1805 1805 1806 #if ENABLE(LLINT_STATS)1807 1808 LLINT_SLOW_PATH_DECL(count_opcode)1809 {1810 OpcodeID opcodeID = Interpreter::getOpcodeID(pc[0].u.opcode);1811 Data::opcodeStats(opcodeID).count++;1812 LLINT_END_IMPL();1813 }1814 1815 LLINT_SLOW_PATH_DECL(count_opcode_slow_path)1816 {1817 OpcodeID opcodeID = Interpreter::getOpcodeID(pc[0].u.opcode);1818 Data::opcodeStats(opcodeID).slowPathCount++;1819 LLINT_END_IMPL();1820 }1821 1822 #endif // ENABLE(LLINT_STATS)1823 1824 1806 } } // namespace JSC::LLInt -
trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.h
r225385 r229478 54 54 LLINT_SLOW_PATH_HIDDEN_DECL(trace); 55 55 LLINT_SLOW_PATH_HIDDEN_DECL(special_trace); 56 LLINT_SLOW_PATH_HIDDEN_DECL(count_opcode);57 LLINT_SLOW_PATH_HIDDEN_DECL(count_opcode_slow_path);58 56 LLINT_SLOW_PATH_HIDDEN_DECL(entry_osr); 59 57 LLINT_SLOW_PATH_HIDDEN_DECL(entry_osr_function_for_call); -
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter.asm
r229447 r229478 830 830 831 831 macro traceExecution() 832 if COLLECT_STATS833 callSlowPath(_llint_count_opcode)834 end835 832 if EXECUTION_TRACING 836 833 callSlowPath(_llint_trace) 837 834 end 838 end839 840 macro traceSlowPathExecution()841 if COLLECT_STATS842 callSlowPath(_llint_count_opcode_slow_path)843 end844 end845 846 macro callOpcodeSlowPath(slowPath)847 traceSlowPathExecution()848 callSlowPath(slowPath)849 835 end 850 836 … … 913 899 914 900 macro slowPathForCall(slowPath, prepareCall) 915 traceSlowPathExecution()916 901 callCallSlowPath( 917 902 slowPath, … … 956 941 10, 957 942 macro () 958 call OpcodeSlowPath(_llint_replace)943 callSlowPath(_llint_replace) 959 944 end) 960 945 end … … 1334 1319 _llint_op_create_direct_arguments: 1335 1320 traceExecution() 1336 call OpcodeSlowPath(_slow_path_create_direct_arguments)1321 callSlowPath(_slow_path_create_direct_arguments) 1337 1322 dispatch(constexpr op_create_direct_arguments_length) 1338 1323 … … 1340 1325 _llint_op_create_scoped_arguments: 1341 1326 traceExecution() 1342 call OpcodeSlowPath(_slow_path_create_scoped_arguments)1327 callSlowPath(_slow_path_create_scoped_arguments) 1343 1328 dispatch(constexpr op_create_scoped_arguments_length) 1344 1329 … … 1346 1331 _llint_op_create_cloned_arguments: 1347 1332 traceExecution() 1348 call OpcodeSlowPath(_slow_path_create_cloned_arguments)1333 callSlowPath(_slow_path_create_cloned_arguments) 1349 1334 dispatch(constexpr op_create_cloned_arguments_length) 1350 1335 … … 1352 1337 _llint_op_create_this: 1353 1338 traceExecution() 1354 call OpcodeSlowPath(_slow_path_create_this)1339 callSlowPath(_slow_path_create_this) 1355 1340 dispatch(constexpr op_create_this_length) 1356 1341 … … 1358 1343 _llint_op_new_object: 1359 1344 traceExecution() 1360 call OpcodeSlowPath(_llint_slow_path_new_object)1345 callSlowPath(_llint_slow_path_new_object) 1361 1346 dispatch(constexpr op_new_object_length) 1362 1347 … … 1364 1349 _llint_op_new_func: 1365 1350 traceExecution() 1366 call OpcodeSlowPath(_llint_slow_path_new_func)1351 callSlowPath(_llint_slow_path_new_func) 1367 1352 dispatch(constexpr op_new_func_length) 1368 1353 … … 1370 1355 _llint_op_new_generator_func: 1371 1356 traceExecution() 1372 call OpcodeSlowPath(_llint_slow_path_new_generator_func)1357 callSlowPath(_llint_slow_path_new_generator_func) 1373 1358 dispatch(constexpr op_new_generator_func_length) 1374 1359 … … 1391 1376 _llint_op_new_array: 1392 1377 traceExecution() 1393 call OpcodeSlowPath(_llint_slow_path_new_array)1378 callSlowPath(_llint_slow_path_new_array) 1394 1379 dispatch(constexpr op_new_array_length) 1395 1380 … … 1397 1382 _llint_op_new_array_with_spread: 1398 1383 traceExecution() 1399 call OpcodeSlowPath(_slow_path_new_array_with_spread)1384 callSlowPath(_slow_path_new_array_with_spread) 1400 1385 dispatch(constexpr op_new_array_with_spread_length) 1401 1386 … … 1403 1388 _llint_op_spread: 1404 1389 traceExecution() 1405 call OpcodeSlowPath(_slow_path_spread)1390 callSlowPath(_slow_path_spread) 1406 1391 dispatch(constexpr op_spread_length) 1407 1392 … … 1409 1394 _llint_op_new_array_with_size: 1410 1395 traceExecution() 1411 call OpcodeSlowPath(_llint_slow_path_new_array_with_size)1396 callSlowPath(_llint_slow_path_new_array_with_size) 1412 1397 dispatch(constexpr op_new_array_with_size_length) 1413 1398 … … 1415 1400 _llint_op_new_array_buffer: 1416 1401 traceExecution() 1417 call OpcodeSlowPath(_slow_path_new_array_buffer)1402 callSlowPath(_slow_path_new_array_buffer) 1418 1403 dispatch(constexpr op_new_array_buffer_length) 1419 1404 … … 1421 1406 _llint_op_new_regexp: 1422 1407 traceExecution() 1423 call OpcodeSlowPath(_llint_slow_path_new_regexp)1408 callSlowPath(_llint_slow_path_new_regexp) 1424 1409 dispatch(constexpr op_new_regexp_length) 1425 1410 … … 1427 1412 _llint_op_less: 1428 1413 traceExecution() 1429 call OpcodeSlowPath(_slow_path_less)1414 callSlowPath(_slow_path_less) 1430 1415 dispatch(constexpr op_less_length) 1431 1416 … … 1433 1418 _llint_op_lesseq: 1434 1419 traceExecution() 1435 call OpcodeSlowPath(_slow_path_lesseq)1420 callSlowPath(_slow_path_lesseq) 1436 1421 dispatch(constexpr op_lesseq_length) 1437 1422 … … 1439 1424 _llint_op_greater: 1440 1425 traceExecution() 1441 call OpcodeSlowPath(_slow_path_greater)1426 callSlowPath(_slow_path_greater) 1442 1427 dispatch(constexpr op_greater_length) 1443 1428 … … 1445 1430 _llint_op_greatereq: 1446 1431 traceExecution() 1447 call OpcodeSlowPath(_slow_path_greatereq)1432 callSlowPath(_slow_path_greatereq) 1448 1433 dispatch(constexpr op_greatereq_length) 1449 1434 … … 1463 1448 _llint_op_mod: 1464 1449 traceExecution() 1465 call OpcodeSlowPath(_slow_path_mod)1450 callSlowPath(_slow_path_mod) 1466 1451 dispatch(constexpr op_mod_length) 1467 1452 … … 1469 1454 _llint_op_pow: 1470 1455 traceExecution() 1471 call OpcodeSlowPath(_slow_path_pow)1456 callSlowPath(_slow_path_pow) 1472 1457 dispatch(constexpr op_pow_length) 1473 1458 … … 1475 1460 _llint_op_typeof: 1476 1461 traceExecution() 1477 call OpcodeSlowPath(_slow_path_typeof)1462 callSlowPath(_slow_path_typeof) 1478 1463 dispatch(constexpr op_typeof_length) 1479 1464 … … 1481 1466 _llint_op_is_object_or_null: 1482 1467 traceExecution() 1483 call OpcodeSlowPath(_slow_path_is_object_or_null)1468 callSlowPath(_slow_path_is_object_or_null) 1484 1469 dispatch(constexpr op_is_object_or_null_length) 1485 1470 1486 1471 _llint_op_is_function: 1487 1472 traceExecution() 1488 call OpcodeSlowPath(_slow_path_is_function)1473 callSlowPath(_slow_path_is_function) 1489 1474 dispatch(constexpr op_is_function_length) 1490 1475 … … 1492 1477 _llint_op_in: 1493 1478 traceExecution() 1494 call OpcodeSlowPath(_slow_path_in)1479 callSlowPath(_slow_path_in) 1495 1480 dispatch(constexpr op_in_length) 1496 1481 … … 1498 1483 _llint_op_try_get_by_id: 1499 1484 traceExecution() 1500 call OpcodeSlowPath(_llint_slow_path_try_get_by_id)1485 callSlowPath(_llint_slow_path_try_get_by_id) 1501 1486 dispatch(constexpr op_try_get_by_id_length) 1502 1487 … … 1504 1489 _llint_op_del_by_id: 1505 1490 traceExecution() 1506 call OpcodeSlowPath(_llint_slow_path_del_by_id)1491 callSlowPath(_llint_slow_path_del_by_id) 1507 1492 dispatch(constexpr op_del_by_id_length) 1508 1493 … … 1510 1495 _llint_op_del_by_val: 1511 1496 traceExecution() 1512 call OpcodeSlowPath(_llint_slow_path_del_by_val)1497 callSlowPath(_llint_slow_path_del_by_val) 1513 1498 dispatch(constexpr op_del_by_val_length) 1514 1499 … … 1516 1501 _llint_op_put_by_index: 1517 1502 traceExecution() 1518 call OpcodeSlowPath(_llint_slow_path_put_by_index)1503 callSlowPath(_llint_slow_path_put_by_index) 1519 1504 dispatch(constexpr op_put_by_index_length) 1520 1505 … … 1522 1507 _llint_op_put_getter_by_id: 1523 1508 traceExecution() 1524 call OpcodeSlowPath(_llint_slow_path_put_getter_by_id)1509 callSlowPath(_llint_slow_path_put_getter_by_id) 1525 1510 dispatch(constexpr op_put_getter_by_id_length) 1526 1511 … … 1528 1513 _llint_op_put_setter_by_id: 1529 1514 traceExecution() 1530 call OpcodeSlowPath(_llint_slow_path_put_setter_by_id)1515 callSlowPath(_llint_slow_path_put_setter_by_id) 1531 1516 dispatch(constexpr op_put_setter_by_id_length) 1532 1517 … … 1534 1519 _llint_op_put_getter_setter_by_id: 1535 1520 traceExecution() 1536 call OpcodeSlowPath(_llint_slow_path_put_getter_setter_by_id)1521 callSlowPath(_llint_slow_path_put_getter_setter_by_id) 1537 1522 dispatch(constexpr op_put_getter_setter_by_id_length) 1538 1523 … … 1540 1525 _llint_op_put_getter_by_val: 1541 1526 traceExecution() 1542 call OpcodeSlowPath(_llint_slow_path_put_getter_by_val)1527 callSlowPath(_llint_slow_path_put_getter_by_val) 1543 1528 dispatch(constexpr op_put_getter_by_val_length) 1544 1529 … … 1546 1531 _llint_op_put_setter_by_val: 1547 1532 traceExecution() 1548 call OpcodeSlowPath(_llint_slow_path_put_setter_by_val)1533 callSlowPath(_llint_slow_path_put_setter_by_val) 1549 1534 dispatch(constexpr op_put_setter_by_val_length) 1550 1535 … … 1552 1537 _llint_op_define_data_property: 1553 1538 traceExecution() 1554 call OpcodeSlowPath(_slow_path_define_data_property)1539 callSlowPath(_slow_path_define_data_property) 1555 1540 dispatch(constexpr op_define_data_property_length) 1556 1541 … … 1558 1543 _llint_op_define_accessor_property: 1559 1544 traceExecution() 1560 call OpcodeSlowPath(_slow_path_define_accessor_property)1545 callSlowPath(_slow_path_define_accessor_property) 1561 1546 dispatch(constexpr op_define_accessor_property_length) 1562 1547 … … 1692 1677 1693 1678 _llint_op_super_sampler_begin: 1694 call OpcodeSlowPath(_llint_slow_path_super_sampler_begin)1679 callSlowPath(_llint_slow_path_super_sampler_begin) 1695 1680 dispatch(constexpr op_super_sampler_begin_length) 1696 1681 … … 1698 1683 _llint_op_super_sampler_end: 1699 1684 traceExecution() 1700 call OpcodeSlowPath(_llint_slow_path_super_sampler_end)1685 callSlowPath(_llint_slow_path_super_sampler_end) 1701 1686 dispatch(constexpr op_super_sampler_end_length) 1702 1687 … … 1704 1689 _llint_op_switch_string: 1705 1690 traceExecution() 1706 call OpcodeSlowPath(_llint_slow_path_switch_string)1691 callSlowPath(_llint_slow_path_switch_string) 1707 1692 dispatch(0) 1708 1693 … … 1710 1695 _llint_op_new_func_exp: 1711 1696 traceExecution() 1712 call OpcodeSlowPath(_llint_slow_path_new_func_exp)1697 callSlowPath(_llint_slow_path_new_func_exp) 1713 1698 dispatch(constexpr op_new_func_exp_length) 1714 1699 1715 1700 _llint_op_new_generator_func_exp: 1716 1701 traceExecution() 1717 call OpcodeSlowPath(_llint_slow_path_new_generator_func_exp)1702 callSlowPath(_llint_slow_path_new_generator_func_exp) 1718 1703 dispatch(constexpr op_new_generator_func_exp_length) 1719 1704 … … 1726 1711 _llint_op_set_function_name: 1727 1712 traceExecution() 1728 call OpcodeSlowPath(_llint_slow_path_set_function_name)1713 callSlowPath(_llint_slow_path_set_function_name) 1729 1714 dispatch(constexpr op_set_function_name_length) 1730 1715 … … 1745 1730 1746 1731 macro doCallVarargs(frameSlowPath, slowPath, prepareCall) 1747 call OpcodeSlowPath(frameSlowPath)1732 callSlowPath(frameSlowPath) 1748 1733 branchIfException(_llint_throw_from_slow_path_trampoline) 1749 1734 # calleeFrame in r1 … … 1832 1817 _llint_op_strcat: 1833 1818 traceExecution() 1834 call OpcodeSlowPath(_slow_path_strcat)1819 callSlowPath(_slow_path_strcat) 1835 1820 dispatch(constexpr op_strcat_length) 1836 1821 … … 1838 1823 _llint_op_push_with_scope: 1839 1824 traceExecution() 1840 call OpcodeSlowPath(_slow_path_push_with_scope)1825 callSlowPath(_slow_path_push_with_scope) 1841 1826 dispatch(constexpr op_push_with_scope_length) 1842 1827 … … 1849 1834 _llint_op_unreachable: 1850 1835 traceExecution() 1851 call OpcodeSlowPath(_slow_path_unreachable)1836 callSlowPath(_slow_path_unreachable) 1852 1837 dispatch(constexpr op_unreachable_length) 1853 1838 … … 1859 1844 _llint_op_create_lexical_environment: 1860 1845 traceExecution() 1861 call OpcodeSlowPath(_slow_path_create_lexical_environment)1846 callSlowPath(_slow_path_create_lexical_environment) 1862 1847 dispatch(constexpr op_create_lexical_environment_length) 1863 1848 … … 1865 1850 _llint_op_throw: 1866 1851 traceExecution() 1867 call OpcodeSlowPath(_llint_slow_path_throw)1852 callSlowPath(_llint_slow_path_throw) 1868 1853 dispatch(constexpr op_throw_length) 1869 1854 … … 1871 1856 _llint_op_throw_static_error: 1872 1857 traceExecution() 1873 call OpcodeSlowPath(_slow_path_throw_static_error)1858 callSlowPath(_slow_path_throw_static_error) 1874 1859 dispatch(constexpr op_throw_static_error_length) 1875 1860 … … 1880 1865 loadi CodeBlock::m_debuggerRequests[t0], t0 1881 1866 btiz t0, .opDebugDone 1882 call OpcodeSlowPath(_llint_slow_path_debug)1867 callSlowPath(_llint_slow_path_debug) 1883 1868 .opDebugDone: 1884 1869 dispatch(constexpr op_debug_length) … … 1903 1888 _llint_op_get_enumerable_length: 1904 1889 traceExecution() 1905 call OpcodeSlowPath(_slow_path_get_enumerable_length)1890 callSlowPath(_slow_path_get_enumerable_length) 1906 1891 dispatch(constexpr op_get_enumerable_length_length) 1907 1892 1908 1893 _llint_op_has_indexed_property: 1909 1894 traceExecution() 1910 call OpcodeSlowPath(_slow_path_has_indexed_property)1895 callSlowPath(_slow_path_has_indexed_property) 1911 1896 dispatch(constexpr op_has_indexed_property_length) 1912 1897 1913 1898 _llint_op_has_structure_property: 1914 1899 traceExecution() 1915 call OpcodeSlowPath(_slow_path_has_structure_property)1900 callSlowPath(_slow_path_has_structure_property) 1916 1901 dispatch(constexpr op_has_structure_property_length) 1917 1902 1918 1903 _llint_op_has_generic_property: 1919 1904 traceExecution() 1920 call OpcodeSlowPath(_slow_path_has_generic_property)1905 callSlowPath(_slow_path_has_generic_property) 1921 1906 dispatch(constexpr op_has_generic_property_length) 1922 1907 1923 1908 _llint_op_get_direct_pname: 1924 1909 traceExecution() 1925 call OpcodeSlowPath(_slow_path_get_direct_pname)1910 callSlowPath(_slow_path_get_direct_pname) 1926 1911 dispatch(constexpr op_get_direct_pname_length) 1927 1912 1928 1913 _llint_op_get_property_enumerator: 1929 1914 traceExecution() 1930 call OpcodeSlowPath(_slow_path_get_property_enumerator)1915 callSlowPath(_slow_path_get_property_enumerator) 1931 1916 dispatch(constexpr op_get_property_enumerator_length) 1932 1917 1933 1918 _llint_op_enumerator_structure_pname: 1934 1919 traceExecution() 1935 call OpcodeSlowPath(_slow_path_next_structure_enumerator_pname)1920 callSlowPath(_slow_path_next_structure_enumerator_pname) 1936 1921 dispatch(constexpr op_enumerator_structure_pname_length) 1937 1922 1938 1923 _llint_op_enumerator_generic_pname: 1939 1924 traceExecution() 1940 call OpcodeSlowPath(_slow_path_next_generic_enumerator_pname)1925 callSlowPath(_slow_path_next_generic_enumerator_pname) 1941 1926 dispatch(constexpr op_enumerator_generic_pname_length) 1942 1927 1943 1928 _llint_op_to_index_string: 1944 1929 traceExecution() 1945 call OpcodeSlowPath(_slow_path_to_index_string)1930 callSlowPath(_slow_path_to_index_string) 1946 1931 dispatch(constexpr op_to_index_string_length) 1947 1932 1948 1933 _llint_op_create_rest: 1949 1934 traceExecution() 1950 call OpcodeSlowPath(_slow_path_create_rest)1935 callSlowPath(_slow_path_create_rest) 1951 1936 dispatch(constexpr op_create_rest_length) 1952 1937 1953 1938 _llint_op_instanceof: 1954 1939 traceExecution() 1955 call OpcodeSlowPath(_llint_slow_path_instanceof)1940 callSlowPath(_llint_slow_path_instanceof) 1956 1941 dispatch(constexpr op_instanceof_length) 1957 1942 1958 1943 _llint_op_get_by_id_with_this: 1959 1944 traceExecution() 1960 call OpcodeSlowPath(_slow_path_get_by_id_with_this)1945 callSlowPath(_slow_path_get_by_id_with_this) 1961 1946 dispatch(constexpr op_get_by_id_with_this_length) 1962 1947 1963 1948 _llint_op_get_by_val_with_this: 1964 1949 traceExecution() 1965 call OpcodeSlowPath(_slow_path_get_by_val_with_this)1950 callSlowPath(_slow_path_get_by_val_with_this) 1966 1951 dispatch(constexpr op_get_by_val_with_this_length) 1967 1952 1968 1953 _llint_op_put_by_id_with_this: 1969 1954 traceExecution() 1970 call OpcodeSlowPath(_slow_path_put_by_id_with_this)1955 callSlowPath(_slow_path_put_by_id_with_this) 1971 1956 dispatch(constexpr op_put_by_id_with_this_length) 1972 1957 1973 1958 _llint_op_put_by_val_with_this: 1974 1959 traceExecution() 1975 call OpcodeSlowPath(_slow_path_put_by_val_with_this)1960 callSlowPath(_slow_path_put_by_val_with_this) 1976 1961 dispatch(constexpr op_put_by_val_with_this_length) 1977 1962 1978 1963 _llint_op_resolve_scope_for_hoisting_func_decl_in_eval: 1979 1964 traceExecution() 1980 call OpcodeSlowPath(_slow_path_resolve_scope_for_hoisting_func_decl_in_eval)1965 callSlowPath(_slow_path_resolve_scope_for_hoisting_func_decl_in_eval) 1981 1966 dispatch(constexpr op_resolve_scope_for_hoisting_func_decl_in_eval_length) 1982 1967 -
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
r229447 r229478 659 659 btinz t2, .opEnterLoop 660 660 .opEnterDone: 661 call OpcodeSlowPath(_slow_path_enter)661 callSlowPath(_slow_path_enter) 662 662 dispatch(constexpr op_enter_length) 663 663 … … 715 715 716 716 .opToThisSlow: 717 call OpcodeSlowPath(_slow_path_to_this)717 callSlowPath(_slow_path_to_this) 718 718 dispatch(constexpr op_to_this_length) 719 719 … … 724 724 loadConstantOrVariableTag(t0, t1) 725 725 bineq t1, EmptyValueTag, .opNotTDZ 726 call OpcodeSlowPath(_slow_path_throw_tdz_error)726 callSlowPath(_slow_path_throw_tdz_error) 727 727 728 728 .opNotTDZ: … … 752 752 753 753 .opNotSlow: 754 call OpcodeSlowPath(_slow_path_not)754 callSlowPath(_slow_path_not) 755 755 dispatch(constexpr op_not_length) 756 756 … … 772 772 773 773 .opEqSlow: 774 call OpcodeSlowPath(_slow_path_eq)774 callSlowPath(_slow_path_eq) 775 775 dispatch(constexpr op_eq_length) 776 776 … … 819 819 820 820 .opNeqSlow: 821 call OpcodeSlowPath(_slow_path_neq)821 callSlowPath(_slow_path_neq) 822 822 dispatch(constexpr op_neq_length) 823 823 … … 868 868 869 869 .slow: 870 call OpcodeSlowPath(slowPath)870 callSlowPath(slowPath) 871 871 dispatch(4) 872 872 end … … 892 892 893 893 .opIncSlow: 894 call OpcodeSlowPath(_slow_path_inc)894 callSlowPath(_slow_path_inc) 895 895 dispatch(constexpr op_inc_length) 896 896 … … 906 906 907 907 .opDecSlow: 908 call OpcodeSlowPath(_slow_path_dec)908 callSlowPath(_slow_path_dec) 909 909 dispatch(constexpr op_dec_length) 910 910 … … 924 924 925 925 .opToNumberSlow: 926 call OpcodeSlowPath(_slow_path_to_number)926 callSlowPath(_slow_path_to_number) 927 927 dispatch(constexpr op_to_number_length) 928 928 … … 941 941 942 942 .opToStringSlow: 943 call OpcodeSlowPath(_slow_path_to_string)943 callSlowPath(_slow_path_to_string) 944 944 dispatch(constexpr op_to_string_length) 945 945 … … 958 958 959 959 .opToObjectSlow: 960 call OpcodeSlowPath(_slow_path_to_object)960 callSlowPath(_slow_path_to_object) 961 961 dispatch(constexpr op_to_object_length) 962 962 … … 986 986 987 987 .opNegateSlow: 988 call OpcodeSlowPath(_slow_path_negate)988 callSlowPath(_slow_path_negate) 989 989 dispatch(constexpr op_negate_length) 990 990 … … 1040 1040 1041 1041 .slow: 1042 call OpcodeSlowPath(slowPath)1042 callSlowPath(slowPath) 1043 1043 dispatch(5) 1044 1044 end … … 1121 1121 1122 1122 .slow: 1123 call OpcodeSlowPath(slowPath)1123 callSlowPath(slowPath) 1124 1124 dispatch(advance) 1125 1125 end … … 1159 1159 dispatch(constexpr op_unsigned_length) 1160 1160 .opUnsignedSlow: 1161 call OpcodeSlowPath(_slow_path_unsigned)1161 callSlowPath(_slow_path_unsigned) 1162 1162 dispatch(constexpr op_unsigned_length) 1163 1163 … … 1219 1219 _llint_op_instanceof_custom: 1220 1220 traceExecution() 1221 call OpcodeSlowPath(_llint_slow_path_instanceof_custom)1221 callSlowPath(_llint_slow_path_instanceof_custom) 1222 1222 dispatch(constexpr op_instanceof_custom_length) 1223 1223 … … 1368 1368 1369 1369 .opGetByIdSlow: 1370 call OpcodeSlowPath(_llint_slow_path_get_by_id)1370 callSlowPath(_llint_slow_path_get_by_id) 1371 1371 dispatch(constexpr op_get_by_id_length) 1372 1372 … … 1388 1388 1389 1389 .opGetByIdProtoSlow: 1390 call OpcodeSlowPath(_llint_slow_path_get_by_id)1390 callSlowPath(_llint_slow_path_get_by_id) 1391 1391 dispatch(constexpr op_get_by_id_proto_load_length) 1392 1392 … … 1405 1405 1406 1406 .opGetByIdUnsetSlow: 1407 call OpcodeSlowPath(_llint_slow_path_get_by_id)1407 callSlowPath(_llint_slow_path_get_by_id) 1408 1408 dispatch(constexpr op_get_by_id_unset_length) 1409 1409 … … 1428 1428 1429 1429 .opGetArrayLengthSlow: 1430 call OpcodeSlowPath(_llint_slow_path_get_by_id)1430 callSlowPath(_llint_slow_path_get_by_id) 1431 1431 dispatch(constexpr op_get_array_length_length) 1432 1432 … … 1565 1565 1566 1566 .opPutByIdSlow: 1567 call OpcodeSlowPath(_llint_slow_path_put_by_id)1567 callSlowPath(_llint_slow_path_put_by_id) 1568 1568 dispatch(constexpr op_put_by_id_length) 1569 1569 … … 1619 1619 1620 1620 .opGetByValSlow: 1621 call OpcodeSlowPath(_llint_slow_path_get_by_val)1621 callSlowPath(_llint_slow_path_get_by_val) 1622 1622 dispatch(constexpr op_get_by_val_length) 1623 1623 … … 1711 1711 storeb 1, ArrayProfile::m_outOfBounds[t0] 1712 1712 .opPutByValSlow: 1713 call OpcodeSlowPath(slowPath)1713 callSlowPath(slowPath) 1714 1714 dispatch(5) 1715 1715 end … … 1736 1736 1737 1737 .slow: 1738 call OpcodeSlowPath(slow)1738 callSlowPath(slow) 1739 1739 dispatch(0) 1740 1740 end … … 1861 1861 1862 1862 .slow: 1863 call OpcodeSlowPath(slowPath)1863 callSlowPath(slowPath) 1864 1864 dispatch(0) 1865 1865 end … … 1890 1890 1891 1891 .opSwitchImmSlow: 1892 call OpcodeSlowPath(_llint_slow_path_switch_imm)1892 callSlowPath(_llint_slow_path_switch_imm) 1893 1893 dispatch(0) 1894 1894 … … 1927 1927 1928 1928 .opSwitchOnRope: 1929 call OpcodeSlowPath(_llint_slow_path_switch_char)1929 callSlowPath(_llint_slow_path_switch_char) 1930 1930 dispatch(0) 1931 1931 … … 1986 1986 1987 1987 .opToPrimitiveSlowCase: 1988 call OpcodeSlowPath(_slow_path_to_primitive)1988 callSlowPath(_slow_path_to_primitive) 1989 1989 dispatch(constexpr op_to_primitive_length) 1990 1990 … … 2006 2006 loadi VM::targetInterpreterPCForThrow[t3], PC 2007 2007 2008 call OpcodeSlowPath(_llint_slow_path_check_if_exception_is_uncatchable_and_notify_profiler)2008 callSlowPath(_llint_slow_path_check_if_exception_is_uncatchable_and_notify_profiler) 2009 2009 bpeq r1, 0, .isCatchableException 2010 2010 jmp _llint_throw_from_slow_path_trampoline … … 2029 2029 traceExecution() # This needs to be here because we don't want to clobber t0, t1, t2, t3 above. 2030 2030 2031 call OpcodeSlowPath(_llint_slow_path_profile_catch)2031 callSlowPath(_llint_slow_path_profile_catch) 2032 2032 2033 2033 dispatch(constexpr op_catch_length) … … 2273 2273 2274 2274 .rDynamic: 2275 call OpcodeSlowPath(_slow_path_resolve_scope)2275 callSlowPath(_slow_path_resolve_scope) 2276 2276 dispatch(7) 2277 2277 … … 2373 2373 2374 2374 .gDynamic: 2375 call OpcodeSlowPath(_llint_slow_path_get_from_scope)2375 callSlowPath(_llint_slow_path_get_from_scope) 2376 2376 dispatch(8) 2377 2377 … … 2484 2484 .pModuleVar: 2485 2485 bineq t0, ModuleVar, .pDynamic 2486 call OpcodeSlowPath(_slow_path_throw_strict_mode_readonly_property_write_error)2486 callSlowPath(_slow_path_throw_strict_mode_readonly_property_write_error) 2487 2487 dispatch(7) 2488 2488 2489 2489 .pDynamic: 2490 call OpcodeSlowPath(_llint_slow_path_put_to_scope)2490 callSlowPath(_llint_slow_path_put_to_scope) 2491 2491 dispatch(7) 2492 2492 … … 2569 2569 loadp TypeProfilerLog::m_logEndPtr[t1], t1 2570 2570 bpneq t2, t1, .opProfileTypeDone 2571 call OpcodeSlowPath(_slow_path_profile_type_clear_log)2571 callSlowPath(_slow_path_profile_type_clear_log) 2572 2572 2573 2573 .opProfileTypeDone: … … 2616 2616 dispatch(2) 2617 2617 .opLogShadowChickenPrologueSlow: 2618 call OpcodeSlowPath(_llint_slow_path_log_shadow_chicken_prologue)2618 callSlowPath(_llint_slow_path_log_shadow_chicken_prologue) 2619 2619 dispatch(2) 2620 2620 … … 2636 2636 dispatch(3) 2637 2637 .opLogShadowChickenTailSlow: 2638 call OpcodeSlowPath(_llint_slow_path_log_shadow_chicken_tail)2638 callSlowPath(_llint_slow_path_log_shadow_chicken_tail) 2639 2639 dispatch(3) -
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
r229447 r229478 604 604 btqnz t2, .opEnterLoop 605 605 .opEnterDone: 606 call OpcodeSlowPath(_slow_path_enter)606 callSlowPath(_slow_path_enter) 607 607 dispatch(constexpr op_enter_length) 608 608 … … 656 656 657 657 .opToThisSlow: 658 call OpcodeSlowPath(_slow_path_to_this)658 callSlowPath(_slow_path_to_this) 659 659 dispatch(constexpr op_to_this_length) 660 660 … … 665 665 loadConstantOrVariable(t0, t1) 666 666 bqneq t1, ValueEmpty, .opNotTDZ 667 call OpcodeSlowPath(_slow_path_throw_tdz_error)667 callSlowPath(_slow_path_throw_tdz_error) 668 668 669 669 .opNotTDZ: … … 692 692 693 693 .opNotSlow: 694 call OpcodeSlowPath(_slow_path_not)694 callSlowPath(_slow_path_not) 695 695 dispatch(constexpr op_not_length) 696 696 … … 709 709 710 710 .slow: 711 call OpcodeSlowPath(slowPath)711 callSlowPath(slowPath) 712 712 dispatch(4) 713 713 end … … 784 784 785 785 .slow: 786 call OpcodeSlowPath(slowPath)786 callSlowPath(slowPath) 787 787 dispatch(4) 788 788 end … … 811 811 812 812 .slow: 813 call OpcodeSlowPath(slowPath)813 callSlowPath(slowPath) 814 814 dispatch(2) 815 815 end … … 840 840 841 841 .opToNumberSlow: 842 call OpcodeSlowPath(_slow_path_to_number)842 callSlowPath(_slow_path_to_number) 843 843 dispatch(constexpr op_to_number_length) 844 844 … … 856 856 857 857 .opToStringSlow: 858 call OpcodeSlowPath(_slow_path_to_string)858 callSlowPath(_slow_path_to_string) 859 859 dispatch(constexpr op_to_string_length) 860 860 … … 872 872 873 873 .opToObjectSlow: 874 call OpcodeSlowPath(_slow_path_to_object)874 callSlowPath(_slow_path_to_object) 875 875 dispatch(constexpr op_to_object_length) 876 876 … … 899 899 900 900 .opNegateSlow: 901 call OpcodeSlowPath(_slow_path_negate)901 callSlowPath(_slow_path_negate) 902 902 dispatch(constexpr op_negate_length) 903 903 … … 960 960 961 961 .slow: 962 call OpcodeSlowPath(slowPath)962 callSlowPath(slowPath) 963 963 dispatch(5) 964 964 end … … 1032 1032 _slow_path_div) 1033 1033 else 1034 call OpcodeSlowPath(_slow_path_div)1034 callSlowPath(_slow_path_div) 1035 1035 dispatch(constexpr op_div_length) 1036 1036 end … … 1051 1051 1052 1052 .slow: 1053 call OpcodeSlowPath(slowPath)1053 callSlowPath(slowPath) 1054 1054 dispatch(advance) 1055 1055 end … … 1088 1088 dispatch(constexpr op_unsigned_length) 1089 1089 .opUnsignedSlow: 1090 call OpcodeSlowPath(_slow_path_unsigned)1090 callSlowPath(_slow_path_unsigned) 1091 1091 dispatch(constexpr op_unsigned_length) 1092 1092 … … 1141 1141 _llint_op_instanceof_custom: 1142 1142 traceExecution() 1143 call OpcodeSlowPath(_llint_slow_path_instanceof_custom)1143 callSlowPath(_llint_slow_path_instanceof_custom) 1144 1144 dispatch(constexpr op_instanceof_custom_length) 1145 1145 … … 1275 1275 1276 1276 .opGetByIdSlow: 1277 call OpcodeSlowPath(_llint_slow_path_get_by_id)1277 callSlowPath(_llint_slow_path_get_by_id) 1278 1278 dispatch(constexpr op_get_by_id_length) 1279 1279 … … 1295 1295 1296 1296 .opGetByIdProtoSlow: 1297 call OpcodeSlowPath(_llint_slow_path_get_by_id)1297 callSlowPath(_llint_slow_path_get_by_id) 1298 1298 dispatch(constexpr op_get_by_id_proto_load_length) 1299 1299 … … 1312 1312 1313 1313 .opGetByIdUnsetSlow: 1314 call OpcodeSlowPath(_llint_slow_path_get_by_id)1314 callSlowPath(_llint_slow_path_get_by_id) 1315 1315 dispatch(constexpr op_get_by_id_unset_length) 1316 1316 … … 1335 1335 1336 1336 .opGetArrayLengthSlow: 1337 call OpcodeSlowPath(_llint_slow_path_get_by_id)1337 callSlowPath(_llint_slow_path_get_by_id) 1338 1338 dispatch(constexpr op_get_array_length_length) 1339 1339 … … 1478 1478 1479 1479 .opPutByIdSlow: 1480 call OpcodeSlowPath(_llint_slow_path_put_by_id)1480 callSlowPath(_llint_slow_path_put_by_id) 1481 1481 dispatch(constexpr op_put_by_id_length) 1482 1482 … … 1627 1627 1628 1628 .opGetByValSlow: 1629 call OpcodeSlowPath(_llint_slow_path_get_by_val)1629 callSlowPath(_llint_slow_path_get_by_val) 1630 1630 dispatch(constexpr op_get_by_val_length) 1631 1631 … … 1718 1718 storeb 1, ArrayProfile::m_outOfBounds[t0] 1719 1719 .opPutByValSlow: 1720 call OpcodeSlowPath(slowPath)1720 callSlowPath(slowPath) 1721 1721 dispatch(5) 1722 1722 end … … 1746 1746 1747 1747 .slow: 1748 call OpcodeSlowPath(slow)1748 callSlowPath(slow) 1749 1749 dispatch(0) 1750 1750 end … … 1846 1846 1847 1847 .slow: 1848 call OpcodeSlowPath(slowPath)1848 callSlowPath(slowPath) 1849 1849 dispatch(0) 1850 1850 end … … 1902 1902 1903 1903 .opSwitchImmSlow: 1904 call OpcodeSlowPath(_llint_slow_path_switch_imm)1904 callSlowPath(_llint_slow_path_switch_imm) 1905 1905 dispatch(0) 1906 1906 … … 1939 1939 1940 1940 .opSwitchOnRope: 1941 call OpcodeSlowPath(_llint_slow_path_switch_char)1941 callSlowPath(_llint_slow_path_switch_char) 1942 1942 dispatch(0) 1943 1943 … … 2003 2003 2004 2004 .opToPrimitiveSlowCase: 2005 call OpcodeSlowPath(_slow_path_to_primitive)2005 callSlowPath(_slow_path_to_primitive) 2006 2006 dispatch(constexpr op_to_primitive_length) 2007 2007 … … 2028 2028 rshiftp 3, PC 2029 2029 2030 call OpcodeSlowPath(_llint_slow_path_check_if_exception_is_uncatchable_and_notify_profiler)2030 callSlowPath(_llint_slow_path_check_if_exception_is_uncatchable_and_notify_profiler) 2031 2031 bpeq r1, 0, .isCatchableException 2032 2032 jmp _llint_throw_from_slow_path_trampoline … … 2048 2048 traceExecution() 2049 2049 2050 call OpcodeSlowPath(_llint_slow_path_profile_catch)2050 callSlowPath(_llint_slow_path_profile_catch) 2051 2051 2052 2052 dispatch(constexpr op_catch_length) … … 2257 2257 2258 2258 .rDynamic: 2259 call OpcodeSlowPath(_slow_path_resolve_scope)2259 callSlowPath(_slow_path_resolve_scope) 2260 2260 dispatch(constexpr op_resolve_scope_length) 2261 2261 … … 2353 2353 2354 2354 .gDynamic: 2355 call OpcodeSlowPath(_llint_slow_path_get_from_scope)2355 callSlowPath(_llint_slow_path_get_from_scope) 2356 2356 dispatch(constexpr op_get_from_scope_length) 2357 2357 … … 2474 2474 .pModuleVar: 2475 2475 bineq t0, ModuleVar, .pDynamic 2476 call OpcodeSlowPath(_slow_path_throw_strict_mode_readonly_property_write_error)2476 callSlowPath(_slow_path_throw_strict_mode_readonly_property_write_error) 2477 2477 dispatch(constexpr op_put_to_scope_length) 2478 2478 2479 2479 .pDynamic: 2480 call OpcodeSlowPath(_llint_slow_path_put_to_scope)2480 callSlowPath(_llint_slow_path_put_to_scope) 2481 2481 dispatch(constexpr op_put_to_scope_length) 2482 2482 … … 2549 2549 loadp TypeProfilerLog::m_logEndPtr[t1], t1 2550 2550 bpneq t2, t1, .opProfileTypeDone 2551 call OpcodeSlowPath(_slow_path_profile_type_clear_log)2551 callSlowPath(_slow_path_profile_type_clear_log) 2552 2552 2553 2553 .opProfileTypeDone: … … 2590 2590 dispatch(constexpr op_log_shadow_chicken_prologue_length) 2591 2591 .opLogShadowChickenPrologueSlow: 2592 call OpcodeSlowPath(_llint_slow_path_log_shadow_chicken_prologue)2592 callSlowPath(_llint_slow_path_log_shadow_chicken_prologue) 2593 2593 dispatch(constexpr op_log_shadow_chicken_prologue_length) 2594 2594 … … 2608 2608 dispatch(constexpr op_log_shadow_chicken_tail_length) 2609 2609 .opLogShadowChickenTailSlow: 2610 call OpcodeSlowPath(_llint_slow_path_log_shadow_chicken_tail)2610 callSlowPath(_llint_slow_path_log_shadow_chicken_tail) 2611 2611 dispatch(constexpr op_log_shadow_chicken_tail_length) -
trunk/Source/JavaScriptCore/runtime/Options.cpp
r228397 r229478 28 28 29 29 #include "AssemblerCommon.h" 30 #include "LLIntCommon.h"31 #include "LLIntData.h"32 30 #include "MinimumReservedZoneSize.h" 33 31 #include "SigillCrashAnalyzer.h" … … 153 151 154 152 UNUSED_PARAM(id); 155 #if ENABLE(LLINT_STATS)156 if (id == reportLLIntStatsID || id == llintStatsFileID)157 return true;158 #endif159 153 #if !defined(NDEBUG) 160 154 if (id == maxSingleAllocationSizeID) … … 483 477 ASSERT((static_cast<int64_t>(Options::thresholdForOptimizeAfterLongWarmUp()) << Options::reoptimizationRetryCounterMax()) <= static_cast<int64_t>(std::numeric_limits<int32_t>::max())); 484 478 485 #if ENABLE(LLINT_STATS)486 LLInt::Data::loadStats();487 #endif488 479 #if !defined(NDEBUG) 489 480 if (Options::maxSingleAllocationSize()) -
trunk/Source/JavaScriptCore/runtime/Options.h
r229445 r229478 454 454 v(bool, useSuperSampler, false, Normal, nullptr) \ 455 455 \ 456 v(bool, reportLLIntStats, false, Configurable, "Reports LLInt statistics") \457 v(optionString, llintStatsFile, nullptr, Configurable, "File to collect LLInt statistics in") \458 \459 456 v(bool, useSourceProviderCache, true, Normal, "If false, the parser will not use the source provider cache. It's good to verify everything works when this is false. Because the cache is so successful, it can mask bugs.") \ 460 457 v(bool, useCodeCache, true, Normal, "If false, the unlinked byte code cache will not be used.") \ -
trunk/Source/JavaScriptCore/runtime/TestRunnerUtils.cpp
r212778 r229478 1 1 /* 2 * Copyright (C) 2013-201 7Apple Inc. All rights reserved.2 * Copyright (C) 2013-2018 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 160 160 void finalizeStatsAtEndOfTesting() 161 161 { 162 if (Options::reportLLIntStats())163 LLInt::Data::finalizeStats();164 162 } 165 163
Note:
See TracChangeset
for help on using the changeset viewer.