LOAD_GP_FM_MM16<0x19>, ISA_MICROMIPS;
def LWSP_MM : LoadSPMM16<"lw", GPR32Opnd, II_LW, mem_mm_sp_imm5_lsl2>,
LOAD_STORE_SP_FM_MM16<0x12>, ISA_MICROMIPS;
-def SWSP_MM : StoreSPMM16<"sw", GPR32Opnd, II_SW, mem_mm_sp_imm5_lsl2>,
+def SWSP_MM : StoreSPMM16<"swsp", GPR32Opnd, II_SW, mem_mm_sp_imm5_lsl2>,
LOAD_STORE_SP_FM_MM16<0x32>, ISA_MICROMIPS32_NOT_MIPS32R6;
def ADDIUR1SP_MM : AddImmUR1SP<"addiur1sp", GPRMM16Opnd>, ADDIUR1SP_FM_MM16,
ISA_MICROMIPS;
def : MipsInstAlias<"mthgc0 $rt, $rs",
(MTHGC0_MM COP0Opnd:$rs, GPR32Opnd:$rt, 0), 0>,
ISA_MICROMIPS32R5, ASE_VIRT;
+def : MipsInstAlias<"sw $rt, $offset",
+ (SWSP_MM GPR32Opnd:$rt, mem_mm_sp_imm5_lsl2:$offset), 1>,
+ ISA_MICROMIPS;
-# RUN: llvm-mc -triple mips-mti-linux-gnu -show-encoding %s | FileCheck \
-# RUN: --check-prefixes=ALL,32 %s
+# RUN: llvm-mc -triple mips-mti-linux-gnu -mcpu=mips32r2 \
+# RUN: -show-encoding %s | FileCheck --check-prefixes=ALL,32 %s
+# RUN: llvm-mc -triple mips-mti-linux-gnu -mcpu=mips32r2 -mattr=+micromips \
+# RUN: -show-encoding %s | FileCheck --check-prefixes=ALL,MM2 %s
+# RUN: llvm-mc -triple mips-mti-linux-gnu -mcpu=mips32r6 -mattr=+micromips \
+# RUN: -show-encoding %s | FileCheck --check-prefixes=ALL,MM6 %s
# RUN: llvm-mc -triple mips64-mti-linux-gnu -show-encoding %s -target-abi n64 \
# RUN: | FileCheck --check-prefixes=ALL,64 %s
# RUN: llvm-mc -triple mips64-mti-linux-gnu -show-encoding %s -target-abi n32 \
ld $8, 0($5)
# 32: lw $8, 0($5) # encoding: [0x8c,0xa8,0x00,0x00]
# 32: lw $9, 4($5) # encoding: [0x8c,0xa9,0x00,0x04]
+# MM2: lw $8, 0($5) # encoding: [0xfd,0x05,0x00,0x00]
+# MM2: lw $9, 4($5) # encoding: [0xfd,0x25,0x00,0x04]
+# MM6: lw $8, 0($5) # encoding: [0xfd,0x05,0x00,0x00]
+# MM6: lw $9, 4($5) # encoding: [0xfd,0x25,0x00,0x04]
# 64: ld $8, 0($5) # encoding: [0xdc,0xa8,0x00,0x00]
sd $8, 0($5)
# 32: sw $8, 0($5) # encoding: [0xac,0xa8,0x00,0x00]
# 32: sw $9, 4($5) # encoding: [0xac,0xa9,0x00,0x04]
+# MM2: sw $8, 0($5) # encoding: [0xf9,0x05,0x00,0x00]
+# MM2: sw $9, 4($5) # encoding: [0xf9,0x25,0x00,0x04]
+# MM6: sw $8, 0($5) # encoding: [0xf9,0x05,0x00,0x00]
+# MM6: sw $9, 4($5) # encoding: [0xf9,0x25,0x00,0x04]
# 64: sd $8, 0($5) # encoding: [0xfc,0xa8,0x00,0x00]
ld $8, 0($8)
# 32: lw $9, 4($8) # encoding: [0x8d,0x09,0x00,0x04]
# 32: lw $8, 0($8) # encoding: [0x8d,0x08,0x00,0x00]
+# MM2: lw $9, 4($8) # encoding: [0xfd,0x28,0x00,0x04]
+# MM2: lw $8, 0($8) # encoding: [0xfd,0x08,0x00,0x00]
+# MM6: lw $9, 4($8) # encoding: [0xfd,0x28,0x00,0x04]
+# MM6: lw $8, 0($8) # encoding: [0xfd,0x08,0x00,0x00]
# 64: ld $8, 0($8) # encoding: [0xdd,0x08,0x00,0x00]
sd $8, 0($8)
# 32: sw $8, 0($8) # encoding: [0xad,0x08,0x00,0x00]
# 32: sw $9, 4($8) # encoding: [0xad,0x09,0x00,0x04]
+# MM2: sw $8, 0($8) # encoding: [0xf9,0x08,0x00,0x00]
+# MM2: sw $9, 4($8) # encoding: [0xf9,0x28,0x00,0x04]
+# MM6: sw $8, 0($8) # encoding: [0xf9,0x08,0x00,0x00]
+# MM6: sw $9, 4($8) # encoding: [0xf9,0x28,0x00,0x04]
# 64: sd $8, 0($8) # encoding: [0xfd,0x08,0x00,0x00]