Changeset 223823 in webkit


Ignore:
Timestamp:
Oct 22, 2017 9:47:01 AM (7 years ago)
Author:
Yusuke Suzuki
Message:

[JSC] Clean up baseline slow path
https://bugs.webkit.org/show_bug.cgi?id=178646

Reviewed by Saam Barati.

If the given op is just calling a slow path function, we should use DEFINE_SLOW_OP instead.
It is good since (1) we can reduce the manual emitting code and (2) it can clarify which
function is implemented as a slow path call. This patch is an attempt to reduce 32bit specific
code in baseline JIT.

  • jit/JIT.cpp:

(JSC::JIT::privateCompileMainPass):

  • jit/JIT.h:
  • jit/JITArithmetic.cpp:

(JSC::JIT::emit_op_pow): Deleted.

  • jit/JITArithmetic32_64.cpp:

(JSC::JIT::emitSlow_op_mod):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_strcat): Deleted.
(JSC::JIT::emit_op_push_with_scope): Deleted.
(JSC::JIT::emit_op_assert): Deleted.
(JSC::JIT::emit_op_create_lexical_environment): Deleted.
(JSC::JIT::emit_op_throw_static_error): Deleted.
(JSC::JIT::emit_op_new_array_with_spread): Deleted.
(JSC::JIT::emit_op_spread): Deleted.
(JSC::JIT::emit_op_get_enumerable_length): Deleted.
(JSC::JIT::emit_op_has_generic_property): Deleted.
(JSC::JIT::emit_op_get_property_enumerator): Deleted.
(JSC::JIT::emit_op_to_index_string): Deleted.
(JSC::JIT::emit_op_create_direct_arguments): Deleted.
(JSC::JIT::emit_op_create_scoped_arguments): Deleted.
(JSC::JIT::emit_op_create_cloned_arguments): Deleted.
(JSC::JIT::emit_op_create_rest): Deleted.
(JSC::JIT::emit_op_unreachable): Deleted.

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_strcat): Deleted.
(JSC::JIT::emit_op_push_with_scope): Deleted.
(JSC::JIT::emit_op_assert): Deleted.
(JSC::JIT::emit_op_create_lexical_environment): Deleted.

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::emit_op_put_by_val_with_this): Deleted.
(JSC::JIT::emit_op_get_by_val_with_this): Deleted.
(JSC::JIT::emit_op_put_by_id_with_this): Deleted.
(JSC::JIT::emit_op_resolve_scope_for_hoisting_func_decl_in_eval): Deleted.
(JSC::JIT::emit_op_define_data_property): Deleted.
(JSC::JIT::emit_op_define_accessor_property): Deleted.

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::emit_op_resolve_scope_for_hoisting_func_decl_in_eval): Deleted.
(JSC::JIT::emit_op_get_by_val_with_this): Deleted.
(JSC::JIT::emit_op_put_by_id_with_this): Deleted.
(JSC::JIT::emit_op_put_by_val_with_this): Deleted.

Location:
trunk/Source/JavaScriptCore
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r223820 r223823  
     12017-10-22  Yusuke Suzuki  <utatane.tea@gmail.com>
     2
     3        [JSC] Clean up baseline slow path
     4        https://bugs.webkit.org/show_bug.cgi?id=178646
     5
     6        Reviewed by Saam Barati.
     7
     8        If the given op is just calling a slow path function, we should use DEFINE_SLOW_OP instead.
     9        It is good since (1) we can reduce the manual emitting code and (2) it can clarify which
     10        function is implemented as a slow path call. This patch is an attempt to reduce 32bit specific
     11        code in baseline JIT.
     12
     13        * jit/JIT.cpp:
     14        (JSC::JIT::privateCompileMainPass):
     15        * jit/JIT.h:
     16        * jit/JITArithmetic.cpp:
     17        (JSC::JIT::emit_op_pow): Deleted.
     18        * jit/JITArithmetic32_64.cpp:
     19        (JSC::JIT::emitSlow_op_mod):
     20        * jit/JITOpcodes.cpp:
     21        (JSC::JIT::emit_op_strcat): Deleted.
     22        (JSC::JIT::emit_op_push_with_scope): Deleted.
     23        (JSC::JIT::emit_op_assert): Deleted.
     24        (JSC::JIT::emit_op_create_lexical_environment): Deleted.
     25        (JSC::JIT::emit_op_throw_static_error): Deleted.
     26        (JSC::JIT::emit_op_new_array_with_spread): Deleted.
     27        (JSC::JIT::emit_op_spread): Deleted.
     28        (JSC::JIT::emit_op_get_enumerable_length): Deleted.
     29        (JSC::JIT::emit_op_has_generic_property): Deleted.
     30        (JSC::JIT::emit_op_get_property_enumerator): Deleted.
     31        (JSC::JIT::emit_op_to_index_string): Deleted.
     32        (JSC::JIT::emit_op_create_direct_arguments): Deleted.
     33        (JSC::JIT::emit_op_create_scoped_arguments): Deleted.
     34        (JSC::JIT::emit_op_create_cloned_arguments): Deleted.
     35        (JSC::JIT::emit_op_create_rest): Deleted.
     36        (JSC::JIT::emit_op_unreachable): Deleted.
     37        * jit/JITOpcodes32_64.cpp:
     38        (JSC::JIT::emit_op_strcat): Deleted.
     39        (JSC::JIT::emit_op_push_with_scope): Deleted.
     40        (JSC::JIT::emit_op_assert): Deleted.
     41        (JSC::JIT::emit_op_create_lexical_environment): Deleted.
     42        * jit/JITPropertyAccess.cpp:
     43        (JSC::JIT::emit_op_put_by_val_with_this): Deleted.
     44        (JSC::JIT::emit_op_get_by_val_with_this): Deleted.
     45        (JSC::JIT::emit_op_put_by_id_with_this): Deleted.
     46        (JSC::JIT::emit_op_resolve_scope_for_hoisting_func_decl_in_eval): Deleted.
     47        (JSC::JIT::emit_op_define_data_property): Deleted.
     48        (JSC::JIT::emit_op_define_accessor_property): Deleted.
     49        * jit/JITPropertyAccess32_64.cpp:
     50        (JSC::JIT::emit_op_resolve_scope_for_hoisting_func_decl_in_eval): Deleted.
     51        (JSC::JIT::emit_op_get_by_val_with_this): Deleted.
     52        (JSC::JIT::emit_op_put_by_id_with_this): Deleted.
     53        (JSC::JIT::emit_op_put_by_val_with_this): Deleted.
     54
    1552017-10-21  Joseph Pecoraro  <pecoraro@apple.com>
    256
  • trunk/Source/JavaScriptCore/jit/JIT.cpp

    r223813 r223823  
    250250
    251251        switch (opcodeID) {
     252        DEFINE_SLOW_OP(assert)
    252253        DEFINE_SLOW_OP(in)
    253254        DEFINE_SLOW_OP(less)
     
    258259        DEFINE_SLOW_OP(is_object_or_null)
    259260        DEFINE_SLOW_OP(typeof)
     261        DEFINE_SLOW_OP(strcat)
     262        DEFINE_SLOW_OP(push_with_scope)
     263        DEFINE_SLOW_OP(create_lexical_environment)
     264        DEFINE_SLOW_OP(get_by_val_with_this)
     265        DEFINE_SLOW_OP(put_by_id_with_this)
     266        DEFINE_SLOW_OP(put_by_val_with_this)
     267        DEFINE_SLOW_OP(resolve_scope_for_hoisting_func_decl_in_eval)
     268        DEFINE_SLOW_OP(define_data_property)
     269        DEFINE_SLOW_OP(define_accessor_property)
     270        DEFINE_SLOW_OP(unreachable)
     271        DEFINE_SLOW_OP(throw_static_error)
     272        DEFINE_SLOW_OP(new_array_with_spread)
     273        DEFINE_SLOW_OP(spread)
     274        DEFINE_SLOW_OP(get_enumerable_length)
     275        DEFINE_SLOW_OP(has_generic_property)
     276        DEFINE_SLOW_OP(get_property_enumerator)
     277        DEFINE_SLOW_OP(to_index_string)
     278        DEFINE_SLOW_OP(create_direct_arguments)
     279        DEFINE_SLOW_OP(create_scoped_arguments)
     280        DEFINE_SLOW_OP(create_cloned_arguments)
     281        DEFINE_SLOW_OP(create_rest)
     282        DEFINE_SLOW_OP(pow)
    260283
    261284        DEFINE_OP(op_add)
     
    274297        DEFINE_OP(op_create_this)
    275298        DEFINE_OP(op_to_this)
    276         DEFINE_OP(op_create_direct_arguments)
    277         DEFINE_OP(op_create_scoped_arguments)
    278         DEFINE_OP(op_create_cloned_arguments)
    279299        DEFINE_OP(op_get_argument)
    280300        DEFINE_OP(op_argument_count)
    281         DEFINE_OP(op_create_rest)
    282301        DEFINE_OP(op_get_rest_length)
    283302        DEFINE_OP(op_check_tdz)
    284         DEFINE_OP(op_assert)
    285303        DEFINE_OP(op_identity_with_profile)
    286         DEFINE_OP(op_unreachable)
    287304        DEFINE_OP(op_debug)
    288305        DEFINE_OP(op_del_by_id)
     
    303320        DEFINE_OP(op_get_by_id_with_this)
    304321        DEFINE_OP(op_get_by_val)
    305         DEFINE_OP(op_get_by_val_with_this)
    306322        DEFINE_OP(op_overrides_has_instance)
    307323        DEFINE_OP(op_instanceof)
     
    342358        DEFINE_OP(op_new_array_with_size)
    343359        DEFINE_OP(op_new_array_buffer)
    344         DEFINE_OP(op_new_array_with_spread)
    345         DEFINE_OP(op_spread)
    346360        DEFINE_OP(op_new_func)
    347361        DEFINE_OP(op_new_func_exp)
     
    358372        DEFINE_OP(op_dec)
    359373        DEFINE_OP(op_inc)
    360         DEFINE_OP(op_pow)
    361374        DEFINE_OP(op_profile_type)
    362375        DEFINE_OP(op_profile_control_flow)
    363         DEFINE_OP(op_push_with_scope)
    364         DEFINE_OP(op_create_lexical_environment)
    365376        DEFINE_OP(op_get_parent_scope)
    366377        DEFINE_OP(op_put_by_id)
    367         DEFINE_OP(op_put_by_id_with_this)
    368378        DEFINE_OP(op_put_by_index)
    369379        case op_put_by_val_direct:
    370380        DEFINE_OP(op_put_by_val)
    371         DEFINE_OP(op_put_by_val_with_this)
    372381        DEFINE_OP(op_put_getter_by_id)
    373382        DEFINE_OP(op_put_setter_by_id)
     
    375384        DEFINE_OP(op_put_getter_by_val)
    376385        DEFINE_OP(op_put_setter_by_val)
    377         DEFINE_OP(op_define_data_property)
    378         DEFINE_OP(op_define_accessor_property)
    379386
    380387        DEFINE_OP(op_ret)
     
    383390        DEFINE_OP(op_urshift)
    384391        DEFINE_OP(op_set_function_name)
    385         DEFINE_OP(op_strcat)
    386392        DEFINE_OP(op_stricteq)
    387393        DEFINE_OP(op_sub)
     
    390396        DEFINE_OP(op_switch_string)
    391397        DEFINE_OP(op_throw)
    392         DEFINE_OP(op_throw_static_error)
    393398        DEFINE_OP(op_to_number)
    394399        DEFINE_OP(op_to_string)
     
    396401
    397402        DEFINE_OP(op_resolve_scope)
    398         DEFINE_OP(op_resolve_scope_for_hoisting_func_decl_in_eval)
    399403        DEFINE_OP(op_get_from_scope)
    400404        DEFINE_OP(op_put_to_scope)
     
    402406        DEFINE_OP(op_put_to_arguments)
    403407
    404         DEFINE_OP(op_get_enumerable_length)
    405         DEFINE_OP(op_has_generic_property)
    406408        DEFINE_OP(op_has_structure_property)
    407409        DEFINE_OP(op_has_indexed_property)
    408410        DEFINE_OP(op_get_direct_pname)
    409         DEFINE_OP(op_get_property_enumerator)
    410411        DEFINE_OP(op_enumerator_structure_pname)
    411412        DEFINE_OP(op_enumerator_generic_pname)
    412         DEFINE_OP(op_to_index_string)
    413413           
    414414        DEFINE_OP(op_log_shadow_chicken_prologue)
  • trunk/Source/JavaScriptCore/jit/JIT.h

    r223813 r223823  
    478478        void emit_op_create_this(Instruction*);
    479479        void emit_op_to_this(Instruction*);
    480         void emit_op_create_direct_arguments(Instruction*);
    481         void emit_op_create_scoped_arguments(Instruction*);
    482         void emit_op_create_cloned_arguments(Instruction*);
    483480        void emit_op_get_argument(Instruction*);
    484481        void emit_op_argument_count(Instruction*);
    485         void emit_op_create_rest(Instruction*);
    486482        void emit_op_get_rest_length(Instruction*);
    487483        void emit_op_check_tdz(Instruction*);
    488         void emit_op_assert(Instruction*);
    489484        void emit_op_identity_with_profile(Instruction*);
    490         void emit_op_unreachable(Instruction*);
    491485        void emit_op_debug(Instruction*);
    492486        void emit_op_del_by_id(Instruction*);
     
    503497        void emit_op_get_by_id(Instruction*);
    504498        void emit_op_get_by_id_with_this(Instruction*);
    505         void emit_op_get_by_val_with_this(Instruction*);
    506499        void emit_op_get_arguments_length(Instruction*);
    507500        void emit_op_get_by_val(Instruction*);
     
    546539        void emit_op_new_array_with_size(Instruction*);
    547540        void emit_op_new_array_buffer(Instruction*);
    548         void emit_op_new_array_with_spread(Instruction*);
    549         void emit_op_spread(Instruction*);
    550541        void emit_op_new_func(Instruction*);
    551542        void emit_op_new_func_exp(Instruction*);
     
    562553        void emit_op_dec(Instruction*);
    563554        void emit_op_inc(Instruction*);
    564         void emit_op_pow(Instruction*);
    565555        void emit_op_profile_type(Instruction*);
    566556        void emit_op_profile_control_flow(Instruction*);
    567         void emit_op_push_with_scope(Instruction*);
    568         void emit_op_create_lexical_environment(Instruction*);
    569557        void emit_op_get_parent_scope(Instruction*);
    570558        void emit_op_put_by_id(Instruction*);
    571         void emit_op_put_by_id_with_this(Instruction*);
    572559        void emit_op_put_by_index(Instruction*);
    573560        void emit_op_put_by_val(Instruction*);
    574         void emit_op_put_by_val_with_this(Instruction*);
    575561        void emit_op_put_getter_by_id(Instruction*);
    576562        void emit_op_put_setter_by_id(Instruction*);
     
    578564        void emit_op_put_getter_by_val(Instruction*);
    579565        void emit_op_put_setter_by_val(Instruction*);
    580         void emit_op_define_data_property(Instruction*);
    581         void emit_op_define_accessor_property(Instruction*);
    582566        void emit_op_ret(Instruction*);
    583567        void emit_op_rshift(Instruction*);
    584568        void emit_op_set_function_name(Instruction*);
    585         void emit_op_strcat(Instruction*);
    586569        void emit_op_stricteq(Instruction*);
    587570        void emit_op_sub(Instruction*);
     
    591574        void emit_op_tear_off_arguments(Instruction*);
    592575        void emit_op_throw(Instruction*);
    593         void emit_op_throw_static_error(Instruction*);
    594576        void emit_op_to_number(Instruction*);
    595577        void emit_op_to_string(Instruction*);
     
    598580        void emit_op_unsigned(Instruction*);
    599581        void emit_op_urshift(Instruction*);
    600         void emit_op_get_enumerable_length(Instruction*);
    601         void emit_op_has_generic_property(Instruction*);
    602582        void emit_op_has_structure_property(Instruction*);
    603583        void emit_op_has_indexed_property(Instruction*);
    604584        void emit_op_get_direct_pname(Instruction*);
    605         void emit_op_get_property_enumerator(Instruction*);
    606585        void emit_op_enumerator_structure_pname(Instruction*);
    607586        void emit_op_enumerator_generic_pname(Instruction*);
    608         void emit_op_to_index_string(Instruction*);
    609587        void emit_op_log_shadow_chicken_prologue(Instruction*);
    610588        void emit_op_log_shadow_chicken_tail(Instruction*);
     
    672650
    673651        void emit_op_resolve_scope(Instruction*);
    674         void emit_op_resolve_scope_for_hoisting_func_decl_in_eval(Instruction*);
    675652        void emit_op_get_from_scope(Instruction*);
    676653        void emit_op_put_to_scope(Instruction*);
  • trunk/Source/JavaScriptCore/jit/JITArithmetic.cpp

    r223318 r223823  
    473473/* ------------------------------ BEGIN: OP_MOD ------------------------------ */
    474474
    475 #if CPU(X86) || CPU(X86_64)
     475#if CPU(X86_64)
    476476
    477477void JIT::emit_op_mod(Instruction* currentInstruction)
     
    517517}
    518518
    519 #else // CPU(X86) || CPU(X86_64)
     519#else // CPU(X86_64)
    520520
    521521void JIT::emit_op_mod(Instruction* currentInstruction)
     
    530530}
    531531
    532 #endif // CPU(X86) || CPU(X86_64)
     532#endif // CPU(X86_64)
    533533
    534534/* ------------------------------ END: OP_MOD ------------------------------ */
     
    10861086}
    10871087
    1088 void JIT::emit_op_pow(Instruction* currentInstruction)
    1089 {
    1090     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_pow);
    1091     slowPathCall.call();
    1092 }
    1093 
    10941088/* ------------------------------ END: OP_ADD, OP_SUB, OP_MUL, OP_POW ------------------------------ */
    10951089
  • trunk/Source/JavaScriptCore/jit/JITArithmetic32_64.cpp

    r223318 r223823  
    380380void JIT::emitSlow_op_mod(Instruction* currentInstruction, Vector<SlowCaseEntry>::iterator& iter)
    381381{
    382 #if CPU(X86) || CPU(X86_64)
     382#if CPU(X86)
    383383    linkSlowCase(iter);
    384384    linkSlowCase(iter);
  • trunk/Source/JavaScriptCore/jit/JITOpcodes.cpp

    r223813 r223823  
    325325}
    326326
    327 void JIT::emit_op_strcat(Instruction* currentInstruction)
    328 {
    329     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_strcat);
    330     slowPathCall.call();
    331 }
    332 
    333327void JIT::emit_op_not(Instruction* currentInstruction)
    334328{
     
    459453    callOperationNoExceptionCheck(operationThrow, regT0);
    460454    jumpToExceptionHandler(*vm());
    461 }
    462 
    463 void JIT::emit_op_push_with_scope(Instruction* currentInstruction)
    464 {
    465     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_push_with_scope);
    466     slowPathCall.call();
    467455}
    468456
     
    579567}
    580568
    581 void JIT::emit_op_assert(Instruction* currentInstruction)
    582 {
    583     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_assert);
    584     slowPathCall.call();
    585 }
    586 
    587569void JIT::emit_op_identity_with_profile(Instruction*)
    588570{
    589571    // We don't need to do anything here...
    590 }
    591 
    592 void JIT::emit_op_create_lexical_environment(Instruction* currentInstruction)
    593 {
    594     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_create_lexical_environment);
    595     slowPathCall.call();
    596572}
    597573
     
    969945    UNUSED_PARAM(iter);
    970946#endif
    971 }
    972 
    973 void JIT::emit_op_throw_static_error(Instruction* currentInstruction)
    974 {
    975     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_throw_static_error);
    976     slowPathCall.call();
    977947}
    978948
     
    11271097    const JSValue* values = codeBlock()->constantBuffer(valuesIndex);
    11281098    callOperation(operationNewArrayBufferWithProfile, dst, currentInstruction[4].u.arrayAllocationProfile, values, size);
    1129 }
    1130 
    1131 void JIT::emit_op_new_array_with_spread(Instruction* currentInstruction)
    1132 {
    1133     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_new_array_with_spread);
    1134     slowPathCall.call();
    1135 }
    1136 
    1137 void JIT::emit_op_spread(Instruction* currentInstruction)
    1138 {
    1139     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_spread);
    1140     slowPathCall.call();
    11411099}
    11421100
     
    14391397#endif // USE(JSVALUE64)
    14401398
    1441 void JIT::emit_op_get_enumerable_length(Instruction* currentInstruction)
    1442 {
    1443     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_get_enumerable_length);
    1444     slowPathCall.call();
    1445 }
    1446 
    14471399void JIT::emitSlow_op_has_structure_property(Instruction* currentInstruction, Vector<SlowCaseEntry>::iterator& iter)
    14481400{
     
    14511403
    14521404    JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_has_structure_property);
    1453     slowPathCall.call();
    1454 }
    1455 
    1456 void JIT::emit_op_has_generic_property(Instruction* currentInstruction)
    1457 {
    1458     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_has_generic_property);
    1459     slowPathCall.call();
    1460 }
    1461 
    1462 void JIT::emit_op_get_property_enumerator(Instruction* currentInstruction)
    1463 {
    1464     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_get_property_enumerator);
    1465     slowPathCall.call();
    1466 }
    1467 
    1468 void JIT::emit_op_to_index_string(Instruction* currentInstruction)
    1469 {
    1470     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_to_index_string);
    14711405    slowPathCall.call();
    14721406}
     
    14821416}
    14831417
    1484 void JIT::emit_op_create_direct_arguments(Instruction* currentInstruction)
    1485 {
    1486     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_create_direct_arguments);
    1487     slowPathCall.call();
    1488 }
    1489 
    1490 void JIT::emit_op_create_scoped_arguments(Instruction* currentInstruction)
    1491 {
    1492     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_create_scoped_arguments);
    1493     slowPathCall.call();
    1494 }
    1495 
    1496 void JIT::emit_op_create_cloned_arguments(Instruction* currentInstruction)
    1497 {
    1498     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_create_cloned_arguments);
    1499     slowPathCall.call();
    1500 }
    1501 
    15021418void JIT::emit_op_argument_count(Instruction* currentInstruction)
    15031419{
     
    15081424    boxInt32(regT0, result);
    15091425    emitPutVirtualRegister(dst, result);
    1510 }
    1511 
    1512 void JIT::emit_op_create_rest(Instruction* currentInstruction)
    1513 {
    1514     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_create_rest);
    1515     slowPathCall.call();
    15161426}
    15171427
     
    15681478}
    15691479
    1570 void JIT::emit_op_unreachable(Instruction* currentInstruction)
    1571 {
    1572     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_unreachable);
    1573     slowPathCall.call();
    1574 }
    1575 
    15761480} // namespace JSC
    15771481
  • trunk/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp

    r223813 r223823  
    349349}
    350350
    351 void JIT::emit_op_strcat(Instruction* currentInstruction)
    352 {
    353     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_strcat);
    354     slowPathCall.call();
    355 }
    356 
    357351void JIT::emit_op_not(Instruction* currentInstruction)
    358352{
     
    689683    callOperationNoExceptionCheck(operationThrow, regT1, regT0);
    690684    jumpToExceptionHandler(*vm());
    691 }
    692 
    693 void JIT::emit_op_push_with_scope(Instruction* currentInstruction)
    694 {
    695     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_push_with_scope);
    696     slowPathCall.call();
    697685}
    698686
     
    801789}
    802790
    803 void JIT::emit_op_assert(Instruction* currentInstruction)
    804 {
    805     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_assert);
    806     slowPathCall.call();
    807 }
    808 
    809791void JIT::emit_op_identity_with_profile(Instruction*)
    810792{
    811793    // We don't need to do anything here...
    812 }
    813 
    814 void JIT::emit_op_create_lexical_environment(Instruction* currentInstruction)
    815 {
    816     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_create_lexical_environment);
    817     slowPathCall.call();
    818794}
    819795
  • trunk/Source/JavaScriptCore/jit/JITPropertyAccess.cpp

    r222136 r223823  
    336336}
    337337
    338 void JIT::emit_op_put_by_val_with_this(Instruction* currentInstruction)
    339 {
    340     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_put_by_val_with_this);
    341     slowPathCall.call();
    342 }
    343 
    344338JIT::JumpList JIT::emitGenericContiguousPutByVal(Instruction* currentInstruction, PatchableJump& badType, IndexingType indexingShape)
    345339{
     
    659653}
    660654
    661 void JIT::emit_op_get_by_val_with_this(Instruction* currentInstruction)
    662 {
    663     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_get_by_val_with_this);
    664     slowPathCall.call();
    665 }
    666 
    667655void JIT::emitSlow_op_get_by_id(Instruction* currentInstruction, Vector<SlowCaseEntry>::iterator& iter)
    668656{
     
    728716
    729717    m_putByIds.append(gen);
    730 }
    731 
    732 void JIT::emit_op_put_by_id_with_this(Instruction* currentInstruction)
    733 {
    734     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_put_by_id_with_this);
    735     slowPathCall.call();
    736718}
    737719
     
    768750        loadPtr(Address(regT0, JSScope::offsetOfNext()), regT0);
    769751    emitPutVirtualRegister(dst);
    770 }
    771 
    772 void JIT::emit_op_resolve_scope_for_hoisting_func_decl_in_eval(Instruction* currentInstruction)
    773 {
    774     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_resolve_scope_for_hoisting_func_decl_in_eval);
    775     slowPathCall.call();
    776752}
    777753
     
    18361812}
    18371813
    1838 void JIT::emit_op_define_data_property(Instruction* currentInstruction)
    1839 {
    1840     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_define_data_property);
    1841     slowPathCall.call();
    1842 }
    1843 
    1844 void JIT::emit_op_define_accessor_property(Instruction* currentInstruction)
    1845 {
    1846     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_define_accessor_property);
    1847     slowPathCall.call();
    1848 }
    1849 
    18501814} // namespace JSC
    18511815
  • trunk/Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp

    r222136 r223823  
    772772}
    773773
    774 void JIT::emit_op_resolve_scope_for_hoisting_func_decl_in_eval(Instruction* currentInstruction)
    775 {
    776     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_resolve_scope_for_hoisting_func_decl_in_eval);
    777     slowPathCall.call();
    778 }
    779    
    780774void JIT::emit_op_resolve_scope(Instruction* currentInstruction)
    781775{
     
    12161210}
    12171211
    1218 void JIT::emit_op_get_by_val_with_this(Instruction* currentInstruction)
    1219 {
    1220     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_get_by_val_with_this);
    1221     slowPathCall.call();
    1222 }
    1223 
    1224 void JIT::emit_op_put_by_id_with_this(Instruction* currentInstruction)
    1225 {
    1226     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_put_by_id_with_this);
    1227     slowPathCall.call();
    1228 }
    1229 
    1230 void JIT::emit_op_put_by_val_with_this(Instruction* currentInstruction)
    1231 {
    1232     JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_put_by_val_with_this);
    1233     slowPathCall.call();
    1234 }
    1235 
    12361212} // namespace JSC
    12371213
Note: See TracChangeset for help on using the changeset viewer.