ladybird/Libraries/LibJS/Bytecode
Aliaksandr Kalenik ac0e0833e7 LibJS: Enable AsmInterpreter on Windows
Enable the asm interpreter on Windows for both x86_64 and ARM64. The
x86_64 backend now emits COFF assembly using the Win64 ABI. It handles
argument registers, non-volatile register saves, shadow space, SEH
unwind directives, and raw-native sret lowering. Its epilogue is left
as normal x64 instructions instead of ARM64-style SEH epilogue
directives, which older ClangCL assemblers reject.

The AArch64 backend now emits Windows ARM64 COFF assembly as well,
including COFF relocations, .rdata dispatch tables, SEH unwind metadata,
frame sizing, handler alignment rules, and raw-native sret lowering.
CMake selects COFF for Windows asmint output and enables generation for
both Windows architectures.

AsmIntGen coverage checks the Windows x64 epilogue output and the ARM64
COFF unwind output. test-js and test262 have no regressions with asmint
enabled compared with the C++ interpreter.
2026-06-14 05:01:27 +02:00
..
AsmInterpreter LibJS: Enable AsmInterpreter on Windows 2026-06-14 05:01:27 +02:00
BasicBlock.cpp LibJS: Stop worrying about Instruction destructors 2025-11-21 09:46:03 +01:00
BasicBlock.h LibJS: Drop source ranges from bytecode source maps 2026-05-14 09:41:03 +02:00
BuiltinAbstractOperationsEnabled.h LibJS: Introduce NativeJavaScriptBackedFunction 2025-11-30 11:54:54 +01:00
Builtins.h LibJS: Add a String.fromCharCode builtin opcode 2026-04-12 19:15:50 +02:00
Bytecode.def LibJS: Preserve resolved assignment bindings 2026-05-22 01:56:57 +02:00
ClassBlueprint.h LibJS+LibWeb: Keep cached script source text lazy 2026-05-18 09:18:35 +02:00
Debug.h LibJS: Move bytecode interpreter state to VM 2026-04-13 18:29:43 +02:00
Executable.cpp Meta: Enable exit-time destructor warnings for libraries 2026-06-04 19:20:49 +02:00
Executable.h LibJS: Preserve runtime caches across executable swaps 2026-05-22 10:54:44 +02:00
FormatOperand.h LibJS: Stop persisting basic_block_start_offsets on Executable 2026-05-14 12:08:12 +02:00
IdentifierTable.cpp LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
IdentifierTable.h LibJS: Pre-size bytecode materialization tables 2026-05-19 11:32:50 +02:00
Instruction.cpp LibJS: Flatten Operand to 32-bit index in bytecode instruction stream 2025-12-09 21:44:13 -06:00
Instruction.h LibJS: Infer computed property function names 2026-05-22 01:56:57 +02:00
Interpreter.cpp LibJS: Stop scanning the shape once an enumerable string key is found 2026-06-09 16:56:54 +02: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
Operand.h AK: Add SentinelOptional 2026-03-20 12:03:36 +01:00
PropertyAccess.h LibJS: Fix destructured primitive string const loops 2026-05-22 01:56:57 +02:00
PropertyKeyTable.cpp LibJS: Cache fully-formed PropertyKeys in Executable 2025-12-11 14:34:45 -06:00
PropertyKeyTable.h LibJS: Pre-size bytecode materialization tables 2026-05-19 11:32:50 +02:00
PropertyNameIterator.cpp LibJS: Account runtime storage as external memory 2026-05-07 10:03:09 +02:00
PropertyNameIterator.h LibJS: Account runtime storage as external memory 2026-05-07 10:03:09 +02:00
PutKind.h LibJS: Consolidate Put bytecode instructions and reduce code bloat 2026-03-04 18:53:12 +01:00
RegexTable.cpp LibRegex: Add ECMAScriptRegex and migrate callers 2026-03-27 17:32:19 +01:00
RegexTable.h LibJS: Account executable storage as external memory 2026-05-07 10:03:09 +02:00
Register.h LibJS: Replace implicit environment stack with explicit registers 2026-02-09 16:35:39 +01:00
StringTable.cpp LibJS+LibWeb: Port interned bytecode strings to UTF-16 2025-08-14 10:27:08 +02:00
StringTable.h LibJS: Pre-size bytecode materialization tables 2026-05-19 11:32:50 +02:00
Validator.cpp LibJS: Infer computed property function names 2026-05-22 01:56:57 +02:00
Validator.h LibJS: Store bytecode cache indexes instead of pointers 2026-05-18 20:35:14 +02:00