• Bruce Dawson's avatar
    Add 8B to all allocations when Win x86 binary is run on ARM64 · c5440762
    Bruce Dawson authored
    This change (based on crrev.com/c/2576881) is a temporary workaround for
    a bug in the x86 emulator on ARM64 Windows. The bug is that movvdup
    reads sixteen bytes instead of eight and this makes Chrome unusably
    crashy. The fix is to add eight bytes to allocations so that the
    over-reads aren't fatal.
    
    This change will make x86 Chrome on ARM64 Windows use slightly more
    memory. On normal x86 builds the only difference should be an extra add
    in the allocation path.
    
    The emulator bug has been reported and fixed. This change will be
    reverted some time after the fix has shipped. See the bug for details.
    
    This has been manually tested on ARM64 hardware to confirm that the
    crash is avoided with this change. This has been more extensively tested
    with a modified version of this change (crrev.com/c/2590684) which
    always adds the eight bytes.
    
    This change will be reverted when the emulator fix has shipped.
    
    Bug: 1151455
    Change-Id: I2fcd9fb5169239b9957e9e8838f441f5780e2610
    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2577893
    Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
    Reviewed-by: default avatarGreg Thompson <grt@chromium.org>
    Reviewed-by: default avatarWill Harris <wfh@chromium.org>
    Reviewed-by: default avatarBartek Nowierski <bartekn@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#837901}
    c5440762
allocator_shim.h 7.64 KB