• Andreas Haas's avatar
    [turbofan][cleanup] Fix LinkageLocation equality · 37d2c940
    Andreas Haas authored
    The LinkageLocation currently consists of two fields, a bit_field and a
    machine_type. The existing equality check only checked the equality of
    the bit_field, which meant that a FP register location and a GP register
    location could alias. I added a static {IsSameLocation} function which
    checks that not just the bit_field but also if one of the two locations
    at least has a subtype of the other. Note that we do not check for
    type-equality because {CanTailCall} checks, which are the main user of
    the LinkageLocation equality check, should pass even if the result types
    are in a sub-typing relationship.
    
    R=mstarzinger@chromium.org
    
    Bug: v8:9396
    Change-Id: Iaa2d11311d0c18e8ffc1dd934e369106ab2456a6
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1763533
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#63319}
    37d2c940
linkage.cc 21.5 KB