• Andreas Haas's avatar
    Reland "[wasm] Do memory.copy bounds check in C++ code" · 126f1ee1
    Andreas Haas authored
    The return value of {memory_copy_wrapper} was defined as {bool} in
    the original CL. When compiled with clang, the full return register is
    written when {true} or {false} is returned. With msvc, however, the
    return value is written as a single byte, without zero-extension. In
    generated code, the full return register is used and therefore stale
    bytes in the return register caused problems.
    
    With this CL the return value is changed to {uint32_t}. This enforces
    zero-extension of the return value and thereby fixes the issue.
    
    R=clemensb@chromium.org
    
    Bug: v8:10281
    Change-Id: I628d01cfd7193fa960a7ccdf0d9fd896f510cd3e
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2096626
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#66666}
    126f1ee1
external-reference.cc 34.3 KB