Changeset 260333 in webkit


Ignore:
Timestamp:
Apr 18, 2020 8:43:47 PM (4 years ago)
Author:
keith_miller@apple.com
Message:

Fix CLoop build for iterator opcodes
https://bugs.webkit.org/show_bug.cgi?id=210709

Reviewed by Robin Morisset.

We need to add a default paramater for the metadata pointer
in the CLoop build. Additionally, the helper declarations need
to be in the various slow path header files. Lastly we need
opcode labels for our new JS call return points.

  • bytecode/BytecodeList.rb:
  • llint/LLIntSlowPaths.cpp:
  • llint/LLIntSlowPaths.h:
  • runtime/CommonSlowPaths.h:
Location:
trunk/Source/JavaScriptCore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r260331 r260333  
     12020-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
    1182020-04-18  Robin Morisset  <rmorisset@apple.com>
    219
  • trunk/Source/JavaScriptCore/bytecode/BytecodeList.rb

    r260331 r260333  
    13141314op :llint_cloop_did_return_from_js_33
    13151315op :llint_cloop_did_return_from_js_34
     1316op :llint_cloop_did_return_from_js_35
     1317op :llint_cloop_did_return_from_js_36
     1318op :llint_cloop_did_return_from_js_37
     1319op :llint_cloop_did_return_from_js_38
     1320op :llint_cloop_did_return_from_js_39
     1321op :llint_cloop_did_return_from_js_40
     1322op :llint_cloop_did_return_from_js_41
     1323op :llint_cloop_did_return_from_js_42
     1324op :llint_cloop_did_return_from_js_43
     1325op :llint_cloop_did_return_from_js_44
     1326op :llint_cloop_did_return_from_js_45
     1327op :llint_cloop_did_return_from_js_46
    13161328
    13171329end_section :CLoopHelpers
  • trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp

    r260325 r260333  
    837837}
    838838
    839 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_open_get_next);
    840839LLINT_SLOW_PATH_DECL(slow_path_iterator_open_get_next)
    841840{
     
    854853}
    855854
    856 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_next_get_done);
    857855LLINT_SLOW_PATH_DECL(slow_path_iterator_next_get_done)
    858856{
     
    875873}
    876874
    877 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_next_get_value);
    878875LLINT_SLOW_PATH_DECL(slow_path_iterator_next_get_value)
    879876{
     
    892889    LLINT_END();
    893890}
    894 
    895891
    896892LLINT_SLOW_PATH_DECL(slow_path_put_by_id)
     
    16701666}
    16711667
    1672 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_open_call);
    16731668LLINT_SLOW_PATH_DECL(slow_path_iterator_open_call)
    16741669{
     
    16791674}
    16801675
    1681 LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_next_call);
    16821676LLINT_SLOW_PATH_DECL(slow_path_iterator_next_call)
    16831677{
  • trunk/Source/JavaScriptCore/llint/LLIntSlowPaths.h

    r254735 r260333  
    8282LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_put_getter_by_val);
    8383LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_put_setter_by_val);
     84LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_open_get_next);
     85LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_next_get_done);
     86LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_next_get_value);
    8487LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_jtrue);
    8588LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_jfalse);
     
    120123LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_call_eval_wide16);
    121124LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_call_eval_wide32);
     125LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_open_call);
     126LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_iterator_next_call);
    122127LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_tear_off_arguments);
    123128LLINT_SLOW_PATH_HIDDEN_DECL(slow_path_strcat);
  • trunk/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm

    r260331 r260333  
    26052605    defineOSRExitReturnLabel(op_iterator_open, size)
    26062606    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
    26072612end)
    26082613
     
    26102615    defineOSRExitReturnLabel(op_iterator_next, size)
    26112616    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
    26122623end)
    26132624
  • trunk/Source/JavaScriptCore/runtime/CommonSlowPaths.h

    r260323 r260333  
    286286template<OpcodeSize size>
    287287extern 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);
     288extern "C" SlowPathReturnType SLOW_PATH iterator_open_try_fast_narrow(CallFrame*, const Instruction* pc, void* metadata = nullptr);
     289extern "C" SlowPathReturnType SLOW_PATH iterator_open_try_fast_wide16(CallFrame*, const Instruction* pc, void* metadata = nullptr);
     290extern "C" SlowPathReturnType SLOW_PATH iterator_open_try_fast_wide32(CallFrame*, const Instruction* pc, void* metadata = nullptr);
    291291
    292292template<OpcodeSize size>
    293293extern 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);
     294extern "C" SlowPathReturnType SLOW_PATH iterator_next_try_fast_narrow(CallFrame*, const Instruction* pc, void* metadata = nullptr);
     295extern "C" SlowPathReturnType SLOW_PATH iterator_next_try_fast_wide16(CallFrame*, const Instruction* pc, void* metadata = nullptr);
     296extern "C" SlowPathReturnType SLOW_PATH iterator_next_try_fast_wide32(CallFrame*, const Instruction* pc, void* metadata = nullptr);
    297297
    298298using SlowPathFunction = SlowPathReturnType(SLOW_PATH *)(CallFrame*, const Instruction*);
Note: See TracChangeset for help on using the changeset viewer.