• Clemens Backes's avatar
    [wasm] Implement bulk memory operations on memory64 · 18469ec4
    Clemens Backes authored
    This makes the bulk memory operations respect the memory type, i.e.
    using i64 values for memory offsets if memory64 is enabled.
    
    The called C functions now expect memory offsets to be passed as
    {uintptr_t}, such that we can address any memory on all systems. For
    64-bit memories on 32-bit systems, the upper half of the 64-bit value is
    checked in compiled code before passing the lower half to the C
    function.
    
    Liftoff support turned out to be a bit harder than expected, because we
    cannot hold three 64-bit values in registers on ia32 (not enough
    registers...). Thus implement that in a follow-up CL.
    
    R=thibaudm@chromium.org
    
    Bug: v8:10949, chromium:1281995
    Change-Id: Ie77636145f94cc579d479c4e7c346ba3c682679d
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3427206Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#78918}
    18469ec4
memory64.js 8.24 KB