Skip to content
  • tibbe's avatar
    Re-add more primops for atomic ops on byte arrays · 4ee4ab01
    tibbe authored
    This is the second attempt to add this functionality. The first
    attempt was reverted in 950fcae4, due
    to register allocator failure on x86. Given how the register
    allocator currently works, we don't have enough registers on x86 to
    support cmpxchg using complicated addressing modes. Instead we fall
    back to a simpler addressing mode on x86.
    
    Adds the following primops:
    
     * atomicReadIntArray#
     * atomicWriteIntArray#
     * fetchSubIntArray#
     * fetchOrIntArray#
     * fetchXorIntArray#
     * fetchAndIntArray#
    
    Makes these pre-existing out-of-line primops inline:
    
     * fetchAddIntArray#
     * casIntArray#
    4ee4ab01