• Zhi An Ng's avatar
    [wasm-simd] Fix loading fp pair registers · 8c698702
    Zhi An Ng authored
    We were incorrectly clearing the high reg from the list of regs to load.
    The intention was to prevent double (and incorrect) loading - loading
    128 bits from the low fp and the loading 128 bits from the high fp.
    But this violates the assumption that the two regs in a pair would be
    set or unset at the same time.
    
    The fix here is to introduce a new enum for register loads, a nop, which
    does nothing. The high fp of the fp pair will be tied to this nop, so as
    we iterate down the reglist, we load 128 bits using the low fp, then
    don't load anything for the high fp.
    
    Bug: chromium:1161654
    Change-Id: If2ea79132b78623e5990237c60cf0883d9a8223f
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2617380Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Commit-Queue: Zhi An Ng <zhin@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#71976}
    8c698702
liftoff-assembler.cc 43.3 KB