• Paul Burton's avatar
    MIPS: wrap cfcmsa & ctcmsa accesses for toolchains with MSA support · e1bebbab
    Paul Burton authored
    Uses of the cfcmsa & ctcmsa instructions were not being wrapped by a
    macro in the case where the toolchain supports MSA, since the arguments
    exactly match a typical use of the instructions. However using current
    toolchains this leads to errors such as:
    
      arch/mips/kernel/genex.S:437: Error: opcode not supported on this processor: mips32r2 (mips32r2) `cfcmsa $5,1'
    
    Thus uses of the instructions must be in the context of a ".set msa"
    directive, however doing that from the users of the instructions would
    be messy due to the possibility that the toolchain does not support
    MSA. Fix this by renaming the macros (prepending an underscore) in order
    to avoid recursion when attempting to emit the instructions, and provide
    implementations for the TOOLCHAIN_SUPPORTS_MSA case which ".set msa" as
    appropriate.
    Signed-off-by: default avatarPaul Burton <paul.burton@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/9163/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
    e1bebbab
asmmacro.h 10.9 KB