• Ng Zhi An's avatar
    [x64][ia32] Move more AVX_OP into SharedTurboAssembler · a9cd53c7
    Ng Zhi An authored
    We add one more member function template to AvxHelper to allow one new
    way of calling:
    
    - Andps(x, y, z) -> vandps(x, y, z), andps(x, z) && x == y
    
    Clean up a bunch of places where we need to pass an int literal as a
    byte.
    
    Unfortunately we cannot define Movq using AVX_OP. Because of the way
    movq is defined in the assembler, using function templates, there are
    versions of movq with 1 argument defined. That is not a valid
    instruction (but is valid for `dec`). We end up selecting
    vmovq(XMMRegister, Register) and movq(XMMRegister), which is not valid.
    
    Bug: v8:11589
    Change-Id: I45e3bc213d93ece7f65da8eb1e3fa185aec4c573
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2815560
    Commit-Queue: Zhi An Ng <zhin@chromium.org>
    Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Reviewed-by: 's avatarBill Budge <bbudge@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#73944}
    a9cd53c7
macro-assembler-x64.cc 109 KB