[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.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@223823 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/JavaScriptCore/ChangeLog b/Source/JavaScriptCore/ChangeLog
index 9b22fe8..321c0f2 100644
--- a/Source/JavaScriptCore/ChangeLog
+++ b/Source/JavaScriptCore/ChangeLog
@@ -1,3 +1,57 @@
+2017-10-22 Yusuke Suzuki <utatane.tea@gmail.com>
+
+ [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.
+
2017-10-21 Joseph Pecoraro <pecoraro@apple.com>
Web Inspector: Remove unused Console.setMonitoringXHREnabled
diff --git a/Source/JavaScriptCore/jit/JIT.cpp b/Source/JavaScriptCore/jit/JIT.cpp
index ae117a0..b8f1ab6 100644
--- a/Source/JavaScriptCore/jit/JIT.cpp
+++ b/Source/JavaScriptCore/jit/JIT.cpp
@@ -249,6 +249,7 @@
unsigned bytecodeOffset = m_bytecodeOffset;
switch (opcodeID) {
+ DEFINE_SLOW_OP(assert)
DEFINE_SLOW_OP(in)
DEFINE_SLOW_OP(less)
DEFINE_SLOW_OP(lesseq)
@@ -257,6 +258,28 @@
DEFINE_SLOW_OP(is_function)
DEFINE_SLOW_OP(is_object_or_null)
DEFINE_SLOW_OP(typeof)
+ DEFINE_SLOW_OP(strcat)
+ DEFINE_SLOW_OP(push_with_scope)
+ DEFINE_SLOW_OP(create_lexical_environment)
+ DEFINE_SLOW_OP(get_by_val_with_this)
+ DEFINE_SLOW_OP(put_by_id_with_this)
+ DEFINE_SLOW_OP(put_by_val_with_this)
+ DEFINE_SLOW_OP(resolve_scope_for_hoisting_func_decl_in_eval)
+ DEFINE_SLOW_OP(define_data_property)
+ DEFINE_SLOW_OP(define_accessor_property)
+ DEFINE_SLOW_OP(unreachable)
+ DEFINE_SLOW_OP(throw_static_error)
+ DEFINE_SLOW_OP(new_array_with_spread)
+ DEFINE_SLOW_OP(spread)
+ DEFINE_SLOW_OP(get_enumerable_length)
+ DEFINE_SLOW_OP(has_generic_property)
+ DEFINE_SLOW_OP(get_property_enumerator)
+ DEFINE_SLOW_OP(to_index_string)
+ DEFINE_SLOW_OP(create_direct_arguments)
+ DEFINE_SLOW_OP(create_scoped_arguments)
+ DEFINE_SLOW_OP(create_cloned_arguments)
+ DEFINE_SLOW_OP(create_rest)
+ DEFINE_SLOW_OP(pow)
DEFINE_OP(op_add)
DEFINE_OP(op_bitand)
@@ -273,17 +296,11 @@
DEFINE_OP(op_construct)
DEFINE_OP(op_create_this)
DEFINE_OP(op_to_this)
- DEFINE_OP(op_create_direct_arguments)
- DEFINE_OP(op_create_scoped_arguments)
- DEFINE_OP(op_create_cloned_arguments)
DEFINE_OP(op_get_argument)
DEFINE_OP(op_argument_count)
- DEFINE_OP(op_create_rest)
DEFINE_OP(op_get_rest_length)
DEFINE_OP(op_check_tdz)
- DEFINE_OP(op_assert)
DEFINE_OP(op_identity_with_profile)
- DEFINE_OP(op_unreachable)
DEFINE_OP(op_debug)
DEFINE_OP(op_del_by_id)
DEFINE_OP(op_del_by_val)
@@ -302,7 +319,6 @@
DEFINE_OP(op_get_by_id)
DEFINE_OP(op_get_by_id_with_this)
DEFINE_OP(op_get_by_val)
- DEFINE_OP(op_get_by_val_with_this)
DEFINE_OP(op_overrides_has_instance)
DEFINE_OP(op_instanceof)
DEFINE_OP(op_instanceof_custom)
@@ -341,8 +357,6 @@
DEFINE_OP(op_new_array)
DEFINE_OP(op_new_array_with_size)
DEFINE_OP(op_new_array_buffer)
- DEFINE_OP(op_new_array_with_spread)
- DEFINE_OP(op_spread)
DEFINE_OP(op_new_func)
DEFINE_OP(op_new_func_exp)
DEFINE_OP(op_new_generator_func)
@@ -357,59 +371,45 @@
DEFINE_OP(op_nstricteq)
DEFINE_OP(op_dec)
DEFINE_OP(op_inc)
- DEFINE_OP(op_pow)
DEFINE_OP(op_profile_type)
DEFINE_OP(op_profile_control_flow)
- DEFINE_OP(op_push_with_scope)
- DEFINE_OP(op_create_lexical_environment)
DEFINE_OP(op_get_parent_scope)
DEFINE_OP(op_put_by_id)
- DEFINE_OP(op_put_by_id_with_this)
DEFINE_OP(op_put_by_index)
case op_put_by_val_direct:
DEFINE_OP(op_put_by_val)
- DEFINE_OP(op_put_by_val_with_this)
DEFINE_OP(op_put_getter_by_id)
DEFINE_OP(op_put_setter_by_id)
DEFINE_OP(op_put_getter_setter_by_id)
DEFINE_OP(op_put_getter_by_val)
DEFINE_OP(op_put_setter_by_val)
- DEFINE_OP(op_define_data_property)
- DEFINE_OP(op_define_accessor_property)
DEFINE_OP(op_ret)
DEFINE_OP(op_rshift)
DEFINE_OP(op_unsigned)
DEFINE_OP(op_urshift)
DEFINE_OP(op_set_function_name)
- DEFINE_OP(op_strcat)
DEFINE_OP(op_stricteq)
DEFINE_OP(op_sub)
DEFINE_OP(op_switch_char)
DEFINE_OP(op_switch_imm)
DEFINE_OP(op_switch_string)
DEFINE_OP(op_throw)
- DEFINE_OP(op_throw_static_error)
DEFINE_OP(op_to_number)
DEFINE_OP(op_to_string)
DEFINE_OP(op_to_primitive)
DEFINE_OP(op_resolve_scope)
- DEFINE_OP(op_resolve_scope_for_hoisting_func_decl_in_eval)
DEFINE_OP(op_get_from_scope)
DEFINE_OP(op_put_to_scope)
DEFINE_OP(op_get_from_arguments)
DEFINE_OP(op_put_to_arguments)
- DEFINE_OP(op_get_enumerable_length)
- DEFINE_OP(op_has_generic_property)
DEFINE_OP(op_has_structure_property)
DEFINE_OP(op_has_indexed_property)
DEFINE_OP(op_get_direct_pname)
- DEFINE_OP(op_get_property_enumerator)
DEFINE_OP(op_enumerator_structure_pname)
DEFINE_OP(op_enumerator_generic_pname)
- DEFINE_OP(op_to_index_string)
DEFINE_OP(op_log_shadow_chicken_prologue)
DEFINE_OP(op_log_shadow_chicken_tail)
diff --git a/Source/JavaScriptCore/jit/JIT.h b/Source/JavaScriptCore/jit/JIT.h
index dd9e6c5..0cedc2d 100644
--- a/Source/JavaScriptCore/jit/JIT.h
+++ b/Source/JavaScriptCore/jit/JIT.h
@@ -477,17 +477,11 @@
void emit_op_construct(Instruction*);
void emit_op_create_this(Instruction*);
void emit_op_to_this(Instruction*);
- void emit_op_create_direct_arguments(Instruction*);
- void emit_op_create_scoped_arguments(Instruction*);
- void emit_op_create_cloned_arguments(Instruction*);
void emit_op_get_argument(Instruction*);
void emit_op_argument_count(Instruction*);
- void emit_op_create_rest(Instruction*);
void emit_op_get_rest_length(Instruction*);
void emit_op_check_tdz(Instruction*);
- void emit_op_assert(Instruction*);
void emit_op_identity_with_profile(Instruction*);
- void emit_op_unreachable(Instruction*);
void emit_op_debug(Instruction*);
void emit_op_del_by_id(Instruction*);
void emit_op_del_by_val(Instruction*);
@@ -502,7 +496,6 @@
void emit_op_try_get_by_id(Instruction*);
void emit_op_get_by_id(Instruction*);
void emit_op_get_by_id_with_this(Instruction*);
- void emit_op_get_by_val_with_this(Instruction*);
void emit_op_get_arguments_length(Instruction*);
void emit_op_get_by_val(Instruction*);
void emit_op_get_argument_by_val(Instruction*);
@@ -545,8 +538,6 @@
void emit_op_new_array(Instruction*);
void emit_op_new_array_with_size(Instruction*);
void emit_op_new_array_buffer(Instruction*);
- void emit_op_new_array_with_spread(Instruction*);
- void emit_op_spread(Instruction*);
void emit_op_new_func(Instruction*);
void emit_op_new_func_exp(Instruction*);
void emit_op_new_generator_func(Instruction*);
@@ -561,28 +552,20 @@
void emit_op_nstricteq(Instruction*);
void emit_op_dec(Instruction*);
void emit_op_inc(Instruction*);
- void emit_op_pow(Instruction*);
void emit_op_profile_type(Instruction*);
void emit_op_profile_control_flow(Instruction*);
- void emit_op_push_with_scope(Instruction*);
- void emit_op_create_lexical_environment(Instruction*);
void emit_op_get_parent_scope(Instruction*);
void emit_op_put_by_id(Instruction*);
- void emit_op_put_by_id_with_this(Instruction*);
void emit_op_put_by_index(Instruction*);
void emit_op_put_by_val(Instruction*);
- void emit_op_put_by_val_with_this(Instruction*);
void emit_op_put_getter_by_id(Instruction*);
void emit_op_put_setter_by_id(Instruction*);
void emit_op_put_getter_setter_by_id(Instruction*);
void emit_op_put_getter_by_val(Instruction*);
void emit_op_put_setter_by_val(Instruction*);
- void emit_op_define_data_property(Instruction*);
- void emit_op_define_accessor_property(Instruction*);
void emit_op_ret(Instruction*);
void emit_op_rshift(Instruction*);
void emit_op_set_function_name(Instruction*);
- void emit_op_strcat(Instruction*);
void emit_op_stricteq(Instruction*);
void emit_op_sub(Instruction*);
void emit_op_switch_char(Instruction*);
@@ -590,22 +573,17 @@
void emit_op_switch_string(Instruction*);
void emit_op_tear_off_arguments(Instruction*);
void emit_op_throw(Instruction*);
- void emit_op_throw_static_error(Instruction*);
void emit_op_to_number(Instruction*);
void emit_op_to_string(Instruction*);
void emit_op_to_primitive(Instruction*);
void emit_op_unexpected_load(Instruction*);
void emit_op_unsigned(Instruction*);
void emit_op_urshift(Instruction*);
- void emit_op_get_enumerable_length(Instruction*);
- void emit_op_has_generic_property(Instruction*);
void emit_op_has_structure_property(Instruction*);
void emit_op_has_indexed_property(Instruction*);
void emit_op_get_direct_pname(Instruction*);
- void emit_op_get_property_enumerator(Instruction*);
void emit_op_enumerator_structure_pname(Instruction*);
void emit_op_enumerator_generic_pname(Instruction*);
- void emit_op_to_index_string(Instruction*);
void emit_op_log_shadow_chicken_prologue(Instruction*);
void emit_op_log_shadow_chicken_tail(Instruction*);
@@ -671,7 +649,6 @@
void emitSlow_op_get_direct_pname(Instruction*, Vector<SlowCaseEntry>::iterator&);
void emit_op_resolve_scope(Instruction*);
- void emit_op_resolve_scope_for_hoisting_func_decl_in_eval(Instruction*);
void emit_op_get_from_scope(Instruction*);
void emit_op_put_to_scope(Instruction*);
void emit_op_get_from_arguments(Instruction*);
diff --git a/Source/JavaScriptCore/jit/JITArithmetic.cpp b/Source/JavaScriptCore/jit/JITArithmetic.cpp
index c1ca275..1dc4093 100644
--- a/Source/JavaScriptCore/jit/JITArithmetic.cpp
+++ b/Source/JavaScriptCore/jit/JITArithmetic.cpp
@@ -472,7 +472,7 @@
/* ------------------------------ BEGIN: OP_MOD ------------------------------ */
-#if CPU(X86) || CPU(X86_64)
+#if CPU(X86_64)
void JIT::emit_op_mod(Instruction* currentInstruction)
{
@@ -516,7 +516,7 @@
slowPathCall.call();
}
-#else // CPU(X86) || CPU(X86_64)
+#else // CPU(X86_64)
void JIT::emit_op_mod(Instruction* currentInstruction)
{
@@ -529,7 +529,7 @@
UNREACHABLE_FOR_PLATFORM();
}
-#endif // CPU(X86) || CPU(X86_64)
+#endif // CPU(X86_64)
/* ------------------------------ END: OP_MOD ------------------------------ */
@@ -1085,12 +1085,6 @@
emitMathICSlow(subIC, currentInstruction, operationValueSubProfiledOptimize, operationValueSubProfiled, operationValueSubOptimize);
}
-void JIT::emit_op_pow(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_pow);
- slowPathCall.call();
-}
-
/* ------------------------------ END: OP_ADD, OP_SUB, OP_MUL, OP_POW ------------------------------ */
} // namespace JSC
diff --git a/Source/JavaScriptCore/jit/JITArithmetic32_64.cpp b/Source/JavaScriptCore/jit/JITArithmetic32_64.cpp
index 0e187c8..cd922ee 100644
--- a/Source/JavaScriptCore/jit/JITArithmetic32_64.cpp
+++ b/Source/JavaScriptCore/jit/JITArithmetic32_64.cpp
@@ -379,7 +379,7 @@
void JIT::emitSlow_op_mod(Instruction* currentInstruction, Vector<SlowCaseEntry>::iterator& iter)
{
-#if CPU(X86) || CPU(X86_64)
+#if CPU(X86)
linkSlowCase(iter);
linkSlowCase(iter);
linkSlowCase(iter);
diff --git a/Source/JavaScriptCore/jit/JITOpcodes.cpp b/Source/JavaScriptCore/jit/JITOpcodes.cpp
index 16d50c7..d3894f0 100644
--- a/Source/JavaScriptCore/jit/JITOpcodes.cpp
+++ b/Source/JavaScriptCore/jit/JITOpcodes.cpp
@@ -324,12 +324,6 @@
callOperation(operationSetFunctionName, regT0, regT1);
}
-void JIT::emit_op_strcat(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_strcat);
- slowPathCall.call();
-}
-
void JIT::emit_op_not(Instruction* currentInstruction)
{
emitGetVirtualRegister(currentInstruction[2].u.operand, regT0);
@@ -460,12 +454,6 @@
jumpToExceptionHandler(*vm());
}
-void JIT::emit_op_push_with_scope(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_push_with_scope);
- slowPathCall.call();
-}
-
void JIT::compileOpStrictEq(Instruction* currentInstruction, CompileOpStrictEqType type)
{
int dst = currentInstruction[1].u.operand;
@@ -578,23 +566,11 @@
#endif // ENABLE(DFG_JIT)
}
-void JIT::emit_op_assert(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_assert);
- slowPathCall.call();
-}
-
void JIT::emit_op_identity_with_profile(Instruction*)
{
// We don't need to do anything here...
}
-void JIT::emit_op_create_lexical_environment(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_create_lexical_environment);
- slowPathCall.call();
-}
-
void JIT::emit_op_get_parent_scope(Instruction* currentInstruction)
{
int currentScope = currentInstruction[2].u.operand;
@@ -970,12 +946,6 @@
#endif
}
-void JIT::emit_op_throw_static_error(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_throw_static_error);
- slowPathCall.call();
-}
-
void JIT::emit_op_check_traps(Instruction*)
{
addSlowCase(branchTest8(NonZero, AbsoluteAddress(m_vm->needTrapHandlingAddress())));
@@ -1128,18 +1098,6 @@
callOperation(operationNewArrayBufferWithProfile, dst, currentInstruction[4].u.arrayAllocationProfile, values, size);
}
-void JIT::emit_op_new_array_with_spread(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_new_array_with_spread);
- slowPathCall.call();
-}
-
-void JIT::emit_op_spread(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_spread);
- slowPathCall.call();
-}
-
#if USE(JSVALUE64)
void JIT::emit_op_has_structure_property(Instruction* currentInstruction)
{
@@ -1438,12 +1396,6 @@
#endif // USE(JSVALUE64)
-void JIT::emit_op_get_enumerable_length(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_get_enumerable_length);
- slowPathCall.call();
-}
-
void JIT::emitSlow_op_has_structure_property(Instruction* currentInstruction, Vector<SlowCaseEntry>::iterator& iter)
{
linkSlowCase(iter);
@@ -1453,24 +1405,6 @@
slowPathCall.call();
}
-void JIT::emit_op_has_generic_property(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_has_generic_property);
- slowPathCall.call();
-}
-
-void JIT::emit_op_get_property_enumerator(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_get_property_enumerator);
- slowPathCall.call();
-}
-
-void JIT::emit_op_to_index_string(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_to_index_string);
- slowPathCall.call();
-}
-
void JIT::emit_op_profile_control_flow(Instruction* currentInstruction)
{
BasicBlockLocation* basicBlockLocation = currentInstruction[1].u.basicBlockLocation;
@@ -1481,24 +1415,6 @@
#endif
}
-void JIT::emit_op_create_direct_arguments(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_create_direct_arguments);
- slowPathCall.call();
-}
-
-void JIT::emit_op_create_scoped_arguments(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_create_scoped_arguments);
- slowPathCall.call();
-}
-
-void JIT::emit_op_create_cloned_arguments(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_create_cloned_arguments);
- slowPathCall.call();
-}
-
void JIT::emit_op_argument_count(Instruction* currentInstruction)
{
int dst = currentInstruction[1].u.operand;
@@ -1509,12 +1425,6 @@
emitPutVirtualRegister(dst, result);
}
-void JIT::emit_op_create_rest(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_create_rest);
- slowPathCall.call();
-}
-
void JIT::emit_op_get_rest_length(Instruction* currentInstruction)
{
int dst = currentInstruction[1].u.operand;
@@ -1567,12 +1477,6 @@
emitPutVirtualRegister(dst, resultRegs);
}
-void JIT::emit_op_unreachable(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_unreachable);
- slowPathCall.call();
-}
-
} // namespace JSC
#endif // ENABLE(JIT)
diff --git a/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp b/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp
index 2a58848..db6a848 100644
--- a/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp
+++ b/Source/JavaScriptCore/jit/JITOpcodes32_64.cpp
@@ -348,12 +348,6 @@
callOperation(operationSetFunctionName, regT1, regT3, regT2);
}
-void JIT::emit_op_strcat(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_strcat);
- slowPathCall.call();
-}
-
void JIT::emit_op_not(Instruction* currentInstruction)
{
int dst = currentInstruction[1].u.operand;
@@ -690,12 +684,6 @@
jumpToExceptionHandler(*vm());
}
-void JIT::emit_op_push_with_scope(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_push_with_scope);
- slowPathCall.call();
-}
-
void JIT::emit_op_to_number(Instruction* currentInstruction)
{
int dst = currentInstruction[1].u.operand;
@@ -800,23 +788,11 @@
#endif // ENABLE(DFG_JIT)
}
-void JIT::emit_op_assert(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_assert);
- slowPathCall.call();
-}
-
void JIT::emit_op_identity_with_profile(Instruction*)
{
// We don't need to do anything here...
}
-void JIT::emit_op_create_lexical_environment(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_create_lexical_environment);
- slowPathCall.call();
-}
-
void JIT::emit_op_get_parent_scope(Instruction* currentInstruction)
{
int currentScope = currentInstruction[2].u.operand;
diff --git a/Source/JavaScriptCore/jit/JITPropertyAccess.cpp b/Source/JavaScriptCore/jit/JITPropertyAccess.cpp
index f2e8444..f40e0d0 100644
--- a/Source/JavaScriptCore/jit/JITPropertyAccess.cpp
+++ b/Source/JavaScriptCore/jit/JITPropertyAccess.cpp
@@ -335,12 +335,6 @@
m_byValCompilationInfo.append(ByValCompilationInfo(byValInfo, m_bytecodeOffset, notIndex, badType, mode, profile, done, done));
}
-void JIT::emit_op_put_by_val_with_this(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_put_by_val_with_this);
- slowPathCall.call();
-}
-
JIT::JumpList JIT::emitGenericContiguousPutByVal(Instruction* currentInstruction, PatchableJump& badType, IndexingType indexingShape)
{
int value = currentInstruction[3].u.operand;
@@ -658,12 +652,6 @@
emitPutVirtualRegister(resultVReg);
}
-void JIT::emit_op_get_by_val_with_this(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_get_by_val_with_this);
- slowPathCall.call();
-}
-
void JIT::emitSlow_op_get_by_id(Instruction* currentInstruction, Vector<SlowCaseEntry>::iterator& iter)
{
int resultVReg = currentInstruction[1].u.operand;
@@ -729,12 +717,6 @@
m_putByIds.append(gen);
}
-void JIT::emit_op_put_by_id_with_this(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_put_by_id_with_this);
- slowPathCall.call();
-}
-
void JIT::emitSlow_op_put_by_id(Instruction* currentInstruction, Vector<SlowCaseEntry>::iterator& iter)
{
int baseVReg = currentInstruction[1].u.operand;
@@ -769,12 +751,6 @@
emitPutVirtualRegister(dst);
}
-void JIT::emit_op_resolve_scope_for_hoisting_func_decl_in_eval(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_resolve_scope_for_hoisting_func_decl_in_eval);
- slowPathCall.call();
-}
-
void JIT::emit_op_resolve_scope(Instruction* currentInstruction)
{
int dst = currentInstruction[1].u.operand;
@@ -1835,18 +1811,6 @@
return slowCases;
}
-void JIT::emit_op_define_data_property(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_define_data_property);
- slowPathCall.call();
-}
-
-void JIT::emit_op_define_accessor_property(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_define_accessor_property);
- slowPathCall.call();
-}
-
} // namespace JSC
#endif // ENABLE(JIT)
diff --git a/Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp b/Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp
index 11e6a68..f81398c 100644
--- a/Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp
+++ b/Source/JavaScriptCore/jit/JITPropertyAccess32_64.cpp
@@ -771,12 +771,6 @@
emitStore(dst, regT1, regT0);
}
-void JIT::emit_op_resolve_scope_for_hoisting_func_decl_in_eval(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_resolve_scope_for_hoisting_func_decl_in_eval);
- slowPathCall.call();
-}
-
void JIT::emit_op_resolve_scope(Instruction* currentInstruction)
{
int dst = currentInstruction[1].u.operand;
@@ -1215,24 +1209,6 @@
store32(regT2, Address(regT0, DirectArguments::storageOffset() + index * sizeof(WriteBarrier<Unknown>) + PayloadOffset));
}
-void JIT::emit_op_get_by_val_with_this(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_get_by_val_with_this);
- slowPathCall.call();
-}
-
-void JIT::emit_op_put_by_id_with_this(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_put_by_id_with_this);
- slowPathCall.call();
-}
-
-void JIT::emit_op_put_by_val_with_this(Instruction* currentInstruction)
-{
- JITSlowPathCall slowPathCall(this, currentInstruction, slow_path_put_by_val_with_this);
- slowPathCall.call();
-}
-
} // namespace JSC
#endif // USE(JSVALUE32_64)