Skip to content
  • Henrik Gramner's avatar
    x86inc: Add REPX macro to repeat instructions/operations · 6d10612a
    Henrik Gramner authored
    When operating on large blocks of data it's common to repeatedly use
    an instruction on multiple registers. Using the REPX macro makes it
    easy to quickly write dense code to achieve this without having to
    explicitly duplicate the same instruction over and over.
    
    For example,
    
        REPX {paddw x, m4}, m0, m1, m2, m3
        REPX {mova [r0+16*x], m5}, 0, 1, 2, 3
    
    will expand to
    
        paddw       m0, m4
        paddw       m1, m4
        paddw       m2, m4
        paddw       m3, m4
        mova [r0+16*0], m5
        mova [r0+16*1], m5
        mova [r0+16*2], m5
        mova [r0+16*3], m5
    6d10612a