• Shiyou Yin's avatar
    avutil/mips: refactor msa load and store macros. · 153c6075
    Shiyou Yin authored
    Replace STnxm_UB and LDnxm_SH with new macros ST_{H/W/D}{1/2/4/8}.
    The old macros are difficult to use because they don't follow the same parameter passing rules.
    Changing details as following:
    1. remove LD4x4_SH.
    2. replace ST2x4_UB with ST_H4.
    3. replace ST4x2_UB with ST_W2.
    4. replace ST4x4_UB with ST_W4.
    5. replace ST4x8_UB with ST_W8.
    6. replace ST6x4_UB with ST_W2 and ST_H2.
    7. replace ST8x1_UB with ST_D1.
    8. replace ST8x2_UB with ST_D2.
    9. replace ST8x4_UB with ST_D4.
    10. replace ST8x8_UB with ST_D8.
    11. replace ST12x4_UB with ST_D4 and ST_W4.
    
    Examples of new macro: ST_H4(in, idx0, idx1, idx2, idx3, pdst, stride)
    ST_H4 store four half-word elements in vector 'in' to pdst with stride.
    About the macro name:
    1) 'ST' means store operation.
    2) 'H/W/D' means type of vector element is 'half-word/word/double-word'.
    3) Number '1/2/4/8' means how many elements will be stored.
    About the macro parameter:
    1) 'in0, in1...' 128-bits vector.
    2) 'idx0, idx1...' elements index.
    3) 'pdst' destination pointer to store to
    4) 'stride' stride of each store operation.
    Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
    153c6075