• Clemens Backes's avatar
    [wasm][memory64] Fix types used for bounds checks · 618a2888
    Clemens Backes authored
    The memory offset is read as a u64 in the memory64 proposal, independent
    of the actual type of the memory. The actual memory size of a module (at
    runtime) can only be within intptr_t/uintptr_t range though. This
    assumption was already used when constructing the TurboFan graph, but
    the C++ types did not reflect it yet.
    
    This CL fixes that:
    
    1) Use uint64_t type for bounds checks (only within the method for now,
       callers still pass a uint32_t).
    2) Use uintptr_t for storing the minimum and maximum possible memory
       size at runtime (in CompilationEnv); clamp memory sizes to values
       that can actually happen at runtime.
    
    R=manoskouk@chromium.org
    
    Bug: v8:10949
    Change-Id: I6559f9a3abc2aa338eba4618479456f6efb5e772
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2426405Reviewed-by: 's avatarManos Koukoutos <manoskouk@chromium.org>
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#70121}
    618a2888
compilation-environment.h 5.22 KB