1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-06-01 09:08:10 +00:00

LibJS/JIT: Add more equality fast paths

This commit is contained in:
iliadsh 2023-11-13 11:34:01 +00:00 committed by Andreas Kling
parent 671cbf6a5b
commit ad98834b50
2 changed files with 330 additions and 27 deletions

View file

@ -49,10 +49,7 @@ private:
O(Exp, exp) \
O(Mod, mod) \
O(In, in) \
O(InstanceOf, instance_of) \
O(LooselyInequals, loosely_inequals) \
O(StrictlyInequals, strict_inequals) \
O(StrictlyEquals, strict_equals)
O(InstanceOf, instance_of)
# define JS_ENUMERATE_COMPARISON_OPS(O) \
O(LessThan, less_than, SignedLessThan) \
@ -164,6 +161,10 @@ private:
void compile_to_boolean(Assembler::Reg dst, Assembler::Reg src);
void compile_continuation(Optional<Bytecode::Label>, bool is_await);
template<typename Codegen>
void branch_if_same_type_for_equality(Assembler::Reg, Assembler::Reg, Codegen);
void compile_is_strictly_equal(Assembler::Reg, Assembler::Reg, Assembler::Label& slow_case);
void check_exception();
void handle_exception();