Changeset 260333 in webkit
- Timestamp:
- Apr 18, 2020 8:43:47 PM (4 years ago)
- Location:
- trunk/Source/JavaScriptCore
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r260331 r260333 1 2020-04-18 Keith Miller <keith_miller@apple.com> 2 3 Fix CLoop build for iterator opcodes 4 https://bugs.webkit.org/show_bug.cgi?id=210709 5 6 Reviewed by Robin Morisset. 7 8 We need to add a default paramater for the metadata pointer 9 in the CLoop build. Additionally, the helper declarations need 10 to be in the various slow path header files. Lastly we need 11 opcode labels for our new JS call return points. 12 13 * bytecode/BytecodeList.rb: 14 * llint/LLIntSlowPaths.cpp: 15 * llint/LLIntSlowPaths.h: 16 * runtime/CommonSlowPaths.h: 17 1 18 2020-04-18 Robin Morisset <rmorisset@apple.com> 2 19 -
trunk/Source/JavaScriptCore/bytecode/BytecodeList.rb
r260331 r260333 1314 1314 op :llint_cloop_did_return_from_js_33 1315 1315 op :llint_cloop_did_return_from_js_34 1316 op :llint_cloop_did_return_from_js_35 1317 op :llint_cloop_did_return_from_js_36 1318 op :llint_cloop_did_return_from_js_37 1319 op :llint_cloop_did_return_from_js_38 1320 op :llint_cloop_did_return_from_js_39 1321 op :llint_cloop_did_return_from_js_40 1322 op :llint_cloop_did_return_from_js_41 1323 op :llint_cloop_did_return_from_js_42 1324 op :llint_cloop_did_return_from_js_43 1325 op :llint_cloop_did_return_from_js_44 1326 op :llint_cloop_did_return_from_js_45 1327 op :llint_cloop_did_return_from_js_46 1316 1328 1317 1329 end_section :CLoopHelpers -
trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
r260325 r260333 837 837 } 838 838 839 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_open_get_next);840 839 LLINT_SLOW_PATH_DECL(slow_path_iterator_open_get_next) 841 840 { … … 854 853 } 855 854 856 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_next_get_done);857 855 LLINT_SLOW_PATH_DECL(slow_path_iterator_next_get_done) 858 856 { … … 875 873 } 876 874 877 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_next_get_value);878 875 LLINT_SLOW_PATH_DECL(slow_path_iterator_next_get_value) 879 876 { … … 892 889 LLINT_END(); 893 890 } 894 895 891 896 892 LLINT_SLOW_PATH_DECL(slow_path_put_by_id) … … 1670 1666 } 1671 1667 1672 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_open_call);1673 1668 LLINT_SLOW_PATH_DECL(slow_path_iterator_open_call) 1674 1669 { … … 1679 1674 } 1680 1675 1681 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_next_call);1682 1676 LLINT_SLOW_PATH_DECL(slow_path_iterator_next_call) 1683 1677 { -
trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.h
r254735 r260333 82 82 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_put_getter_by_val); 83 83 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_put_setter_by_val); 84 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_open_get_next); 85 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_next_get_done); 86 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_next_get_value); 84 87 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_jtrue); 85 88 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_jfalse); … … 120 123 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_call_eval_wide16); 121 124 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_call_eval_wide32); 125 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_open_call); 126 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_next_call); 122 127 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_tear_off_arguments); 123 128 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_strcat); -
trunk/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
r260331 r260333 2605 2605 defineOSRExitReturnLabel(op_iterator_open, size) 2606 2606 break 2607 if C_LOOP or C_LOOP_WIN 2608 # Insert superflous call return labels for Cloop. 2609 cloopCallJSFunction a0 # symbolIterator 2610 cloopCallJSFunction a0 # get next 2611 end 2607 2612 end) 2608 2613 … … 2610 2615 defineOSRExitReturnLabel(op_iterator_next, size) 2611 2616 break 2617 if C_LOOP or C_LOOP_WIN 2618 # Insert superflous call return labels for Cloop. 2619 # FIXME: Not sure why two are only needed... 2620 cloopCallJSFunction a0 # next 2621 cloopCallJSFunction a0 # get done 2622 end 2612 2623 end) 2613 2624 -
trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.h
r260323 r260333 286 286 template<OpcodeSize size> 287 287 extern SlowPathReturnType SLOW_PATH iterator_open_try_fast(CallFrame*, const Instruction* pc, void* metadata); 288 extern "C" SlowPathReturnType SLOW_PATH iterator_open_try_fast_narrow(CallFrame*, const Instruction* pc, void* metadata );289 extern "C" SlowPathReturnType SLOW_PATH iterator_open_try_fast_wide16(CallFrame*, const Instruction* pc, void* metadata );290 extern "C" SlowPathReturnType SLOW_PATH iterator_open_try_fast_wide32(CallFrame*, const Instruction* pc, void* metadata );288 extern "C" SlowPathReturnType SLOW_PATH iterator_open_try_fast_narrow(CallFrame*, const Instruction* pc, void* metadata = nullptr); 289 extern "C" SlowPathReturnType SLOW_PATH iterator_open_try_fast_wide16(CallFrame*, const Instruction* pc, void* metadata = nullptr); 290 extern "C" SlowPathReturnType SLOW_PATH iterator_open_try_fast_wide32(CallFrame*, const Instruction* pc, void* metadata = nullptr); 291 291 292 292 template<OpcodeSize size> 293 293 extern SlowPathReturnType SLOW_PATH iterator_next_try_fast(CallFrame*, const Instruction* pc, void* metadata); 294 extern "C" SlowPathReturnType SLOW_PATH iterator_next_try_fast_narrow(CallFrame*, const Instruction* pc, void* metadata );295 extern "C" SlowPathReturnType SLOW_PATH iterator_next_try_fast_wide16(CallFrame*, const Instruction* pc, void* metadata );296 extern "C" SlowPathReturnType SLOW_PATH iterator_next_try_fast_wide32(CallFrame*, const Instruction* pc, void* metadata );294 extern "C" SlowPathReturnType SLOW_PATH iterator_next_try_fast_narrow(CallFrame*, const Instruction* pc, void* metadata = nullptr); 295 extern "C" SlowPathReturnType SLOW_PATH iterator_next_try_fast_wide16(CallFrame*, const Instruction* pc, void* metadata = nullptr); 296 extern "C" SlowPathReturnType SLOW_PATH iterator_next_try_fast_wide32(CallFrame*, const Instruction* pc, void* metadata = nullptr); 297 297 298 298 using SlowPathFunction = SlowPathReturnType(SLOW_PATH *)(CallFrame*, const Instruction*);
Note: See TracChangeset
for help on using the changeset viewer.