• Andreas Haas's avatar
    [wasm][liftoff][arm] Implement CompareExchange · 90fa771d
    Andreas Haas authored
    This CL implements all variants of CompareExchange on arm.
    
    Implementing 64-bit CompareExchange on arm requires a lot of registers,
    with the additional constraint that the low-word register of new_value
    and result have to have an even register code, and that the corresponding
    high-word registers have a register code that is by one higher than the
    register code of the low-word register.
    
    This register allocation is achieved by assigning fixed registers to
    all values.
    
    R=clemensb@chromium.org, v8-arm-ports@googlegroups.com
    
    Bug: v8:10108
    Change-Id: I2edfde15e80db0d45621a461793018d88e997431
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2172791
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#67592}
    90fa771d
test-run-wasm-atomics64.cc 31.4 KB