1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-09 09:34:57 +09:00
ladybird/Libraries
Andreas Kling 36bb2824a6 LibJS: Add StackFrame to avoid indirection in VM register access
This is a simple trick to generate better native code for access to
registers, locals, and constants. Before this change, each access had
to first dereference the member pointer in Interpreter, and then get to
the values. Now we always have a pointer directly to the values on hand.

Here's how it looks:

    class StackFrame {
    public:
        Value get(Operand) const;
        void set(Operand, Value);

    private:
        Value m_values[];
    };

And we just place one of these as a window on top of the execution
context's array of values (registers, locals, and constants).
2025-04-29 14:23:03 +02:00
..
LibCompress LibCompress: Refactor deflate de/compressor using zlib 2025-03-19 13:46:50 +01:00
LibCore LibCore: Remove URL validity check for parsing URL's 2025-04-19 07:18:43 -04:00
LibCrypto LibCrypto: Remove unused big numbers modular functions 2025-04-28 12:05:26 +02:00
LibDevTools LibDevTools+LibWebView+WebContent: Report exceptions to DevTools 2025-03-27 14:14:02 +00:00
LibDiff Everywhere: Remove sv suffix from format string literals 2025-04-08 20:00:18 -04:00
LibDNS LibCore: Don't discard subsequent results in Socket::resolve_host 2025-02-28 15:14:35 +01:00
LibFileSystem LibCore: Add S_ISDIR, S_ISREG to System.h on Windows 2025-02-12 18:42:05 -07:00
LibGC LibGC: Allow move-assigning RootVector instances 2025-04-19 02:03:43 +02:00
LibGfx LibWeb+LibGfx: Support alpha in CanvasRenderingContext2D 2025-04-29 13:51:23 +02:00
LibHTTP LibURL: Rename 'cannot have a base URL' to 'has an opaque path' 2025-04-06 08:24:54 -04:00
LibIDL LibIDL+LibWeb: Begin support for async iterator in IDL 2025-04-14 17:43:11 -04:00
LibImageDecoderClient Everywhere: Make TransportSocket non-movable 2025-04-09 15:27:52 +02:00
LibIPC LibIPC: Use AllocatingMemoryStream in TransportSocket send queue 2025-04-15 18:48:53 +02:00
LibJS LibJS: Add StackFrame to avoid indirection in VM register access 2025-04-29 14:23:03 +02:00
LibLine LibLine: Use AK::Time instead of gettimeofday for history entries 2025-02-12 19:13:49 -07:00
LibMain
LibMedia Everywhere: Remove unused private fields 2025-04-04 12:40:07 +02:00
LibRegex LibRegex: Use the right offset when patching jumps through fork-trees 2025-04-27 12:16:15 +02:00
LibRequests LibRequests+RequestServer: Add an error code for bad content encoding 2025-04-20 16:50:37 +02:00
LibRIFF
LibSyntax
LibTest LibJS+LibWeb: Do not return error from VM::create 2025-04-25 14:07:51 +02:00
LibTextCodec AK+LibTextCodec: Stop using Utf16View endianness override 2025-04-16 10:04:50 +02:00
LibThreading LibThreading: Clean up pthread mutex attributes and mutex itself 2025-02-20 15:04:50 -07:00
LibTLS LibTLS: Call close() when we receive SSL_ERROR_ZERO_RETURN 2025-04-14 21:07:42 +02:00
LibUnicode LibUnicode: Avoid rejecting end-of-text position as a valid boundary 2025-04-11 15:30:17 -04:00
LibURL LibURL: Remove URL's valid state 2025-04-19 07:18:43 -04:00
LibWasm LibWasm: Make traps hold on to externally-managed data 2025-04-22 08:43:46 -06:00
LibWeb LibWeb+LibGfx: Support alpha in CanvasRenderingContext2D 2025-04-29 13:51:23 +02:00
LibWebSocket LibWebSocket: Remove meaningless const&& Message constructor 2025-03-09 11:14:20 -04:00
LibWebView LibWeb+LibWebView+Services: Add IPC for starting WebWorker of a type 2025-04-25 14:07:51 +02:00
LibXML LibXml: Notify listener when doctype is parsed 2025-01-20 14:48:19 +01:00