ladybird/Libraries/LibJS/Bytecode
Andreas Kling cdcbbcf48b LibJS: Allocate callee execution contexts in call instruction handler
By handling call instructions in an inline (C++) function, we were
breaking the alloca() optimization and adding stack overhead. We fix
this by using a macro instead. It looks awful but it works.

1.07x speedup on MicroBench/call-00-args.js
2025-10-30 08:54:45 +01:00
..
ASTCodegen.cpp LibJS: Split PutBy* instructions into specialized per-kind variants 2025-10-11 20:08:58 +02:00
BasicBlock.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
BasicBlock.h Everywhere: Slap some [[clang::lifetimebound]] where appropriate 2025-09-01 11:11:38 +02:00
Builtins.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Builtins.h LibJS: Avoid function call if @@hasInstance is default implementation 2025-10-13 17:15:44 +02:00
CodeGenerationError.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
CodeGenerationError.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
Executable.cpp LibJS: Let bytecode instructions know whether they are in strict mode 2025-10-29 21:20:10 +01:00
Executable.h LibJS: Let bytecode instructions know whether they are in strict mode 2025-10-29 21:20:10 +01:00
Generator.cpp LibJS: Let bytecode instructions know whether they are in strict mode 2025-10-29 21:20:10 +01:00
Generator.h LibJS: Let bytecode instructions know whether they are in strict mode 2025-10-29 21:20:10 +01:00
IdentifierTable.cpp LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
IdentifierTable.h LibJS: Give Interpreter a direct pointer to the identifier table 2025-10-07 23:50:51 +02:00
Instruction.cpp LibJS: Remove unused InstructionStreamIterator::source_code getter 2025-04-16 10:41:44 -06:00
Instruction.h LibJS: Let bytecode instructions know whether they are in strict mode 2025-10-29 21:20:10 +01:00
Interpreter.cpp LibJS: Allocate callee execution contexts in call instruction handler 2025-10-30 08:54:45 +01:00
Interpreter.h LibJS: Pass ExecutionContext to Interpreter::run_executable() 2025-10-29 21:20:10 +01:00
Label.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Label.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
Op.h LibJS: Generate bytecode for the BlockDeclarationInstantiation AO 2025-10-27 21:14:33 +01:00
Operand.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
PropertyAccess.h LibJS: Track current shape dictionary generation in PropertyLookupCache 2025-10-24 15:35:04 +02:00
PutKind.h LibJS: Rename Bytecode::Op::PropertyKind => Bytecode::PutKind 2025-10-11 20:08:58 +02:00
RegexTable.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
RegexTable.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
Register.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
ScopedOperand.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
ScopedOperand.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
StringTable.cpp LibJS+LibWeb: Port interned bytecode strings to UTF-16 2025-08-14 10:27:08 +02:00
StringTable.h LibJS+LibWeb: Port interned bytecode strings to UTF-16 2025-08-14 10:27:08 +02:00