• Clemens Hammacher's avatar
    Allow move semantics on Labels · eeb32224
    Clemens Hammacher authored
    The Label class currently allows to be copied on all platforms except
    for arm64, where it can not be copied or moved.
    This allows too much though:
    Copying a label even on another platform than arm64 might fail if the
    label was linked already, because only one of the copies will be bound
    later, and the other will fire a DCHECK error in its destructor.
    
    This CL changes the restriction to never allow to copy construct or
    assign a Label, but allow move construction and move assignment on all
    platforms except arm64.
    This will allow to place Labels in containers, as will be done in
    Liftoff (except for arm64, where it still needs to be allocated on the
    heap).
    
    R=mstarzinger@chromium.org
    
    Bug: v8:6600
    Change-Id: Ic1234c2d233317eed6a3d537c13faed2c701fe13
    Reviewed-on: https://chromium-review.googlesource.com/783190
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#49570}
    eeb32224
assembler-ia32.cc 74.8 KB