Index: lib/Target/Mips/AsmParser/MipsAsmParser.cpp =================================================================== --- lib/Target/Mips/AsmParser/MipsAsmParser.cpp +++ lib/Target/Mips/AsmParser/MipsAsmParser.cpp @@ -1073,10 +1073,6 @@ isShiftedInt(getConstantMemOff()) && getMemBase()->isGPRAsmReg(); } - template bool isMemWithSimmOffsetGPR() const { - return isMem() && isConstantMemOff() && isInt(getConstantMemOff()) && - getMemBase()->isGPRAsmReg(); - } bool isMemWithGRPMM16Base() const { return isMem() && getMemBase()->isMM16AsmReg(); } @@ -3822,9 +3818,6 @@ case Match_MemSImm9: return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), "expected memory with 9-bit signed offset"); - case Match_MemGPSImm9: - return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), - "expected memory with $gp and 9-bit signed offset"); case Match_MemSImm10: return Error(RefineErrorLoc(IDLoc, Operands, ErrorInfo), "expected memory with 10-bit signed offset"); Index: lib/Target/Mips/MicroMips32r6InstrInfo.td =================================================================== --- lib/Target/Mips/MicroMips32r6InstrInfo.td +++ lib/Target/Mips/MicroMips32r6InstrInfo.td @@ -896,7 +896,7 @@ class STORE_EVA_MMR6_DESC_BASE : MMR6Arch, MipsR6Inst { dag OutOperandList = (outs); - dag InOperandList = (ins RO:$rt, mem_mm_9:$addr); + dag InOperandList = (ins RO:$rt, mem_simm9:$addr); string AsmString = !strconcat(instr_asm, "\t$rt, $addr"); string DecoderMethod = "DecodeStoreEvaOpMM"; bit mayStore = 1; @@ -908,7 +908,7 @@ class LOAD_WORD_EVA_MMR6_DESC_BASE : MMR6Arch, MipsR6Inst { dag OutOperandList = (outs RO:$rt); - dag InOperandList = (ins mem_mm_12:$addr); + dag InOperandList = (ins mem_simm9:$addr); string AsmString = !strconcat(instr_asm, "\t$rt, $addr"); string DecoderMethod = "DecodeMemMMImm9"; bit mayLoad = 1; Index: lib/Target/Mips/MicroMipsInstrInfo.td =================================================================== --- lib/Target/Mips/MicroMipsInstrInfo.td +++ lib/Target/Mips/MicroMipsInstrInfo.td @@ -251,7 +251,7 @@ } class LLEBaseMM : - InstSE<(outs RO:$rt), (ins mem_mm_12:$addr), + InstSE<(outs RO:$rt), (ins mem_simm9:$addr), !strconcat(opstr, "\t$rt, $addr"), [], NoItinerary, FrmI> { let DecoderMethod = "DecodeMemMMImm9"; let mayLoad = 1; @@ -266,7 +266,7 @@ } class SCEBaseMM : - InstSE<(outs RO:$dst), (ins RO:$rt, mem_mm_12:$addr), + InstSE<(outs RO:$dst), (ins RO:$rt, mem_simm9:$addr), !strconcat(opstr, "\t$rt, $addr"), [], NoItinerary, FrmI> { let DecoderMethod = "DecodeMemMMImm9"; let mayStore = 1; @@ -738,10 +738,13 @@ def LBuE_MM : Load<"lbue", GPR32Opnd>, POOL32C_LHUE_FM_MM<0x18, 0x6, 0x0>; def LHE_MM : Load<"lhe", GPR32Opnd>, POOL32C_LHUE_FM_MM<0x18, 0x6, 0x5>; def LHuE_MM : Load<"lhue", GPR32Opnd>, POOL32C_LHUE_FM_MM<0x18, 0x6, 0x1>; - def LWE_MM : Load<"lwe", GPR32Opnd>, POOL32C_LHUE_FM_MM<0x18, 0x6, 0x7>; - def SBE_MM : Store<"sbe", GPR32Opnd>, POOL32C_LHUE_FM_MM<0x18, 0xa, 0x4>; - def SHE_MM : Store<"she", GPR32Opnd>, POOL32C_LHUE_FM_MM<0x18, 0xa, 0x5>; - def SWE_MM : StoreMemory<"swe", GPR32Opnd, mem_simm9gpr>, + def LWE_MM : LoadMemory<"lwe", GPR32Opnd, mem_simm9>, + POOL32C_LHUE_FM_MM<0x18, 0x6, 0x7>; + def SBE_MM : StoreMemory<"sbe", GPR32Opnd, mem_simm9>, + POOL32C_LHUE_FM_MM<0x18, 0xa, 0x4>; + def SHE_MM : StoreMemory<"she", GPR32Opnd, mem_simm9>, + POOL32C_LHUE_FM_MM<0x18, 0xa, 0x5>; + def SWE_MM : StoreMemory<"swe", GPR32Opnd, mem_simm9>, POOL32C_LHUE_FM_MM<0x18, 0xa, 0x7>; } Index: lib/Target/Mips/MipsInstrInfo.td =================================================================== --- lib/Target/Mips/MipsInstrInfo.td +++ lib/Target/Mips/MipsInstrInfo.td @@ -881,15 +881,6 @@ let DiagnosticType = "MemSImm10Lsl" # I; } -def MipsMemSimm9GPRAsmOperand : AsmOperandClass { - let Name = "MemOffsetSimm9GPR"; - let SuperClasses = [MipsMemAsmOperand]; - let RenderMethod = "addMemOperands"; - let ParserMethod = "parseMemOperand"; - let PredicateMethod = "isMemWithSimmOffsetGPR<9>"; - let DiagnosticType = "MemGPSImm9"; -} - def MipsMemSimm11AsmOperand : AsmOperandClass { let Name = "MemOffsetSimm11"; let SuperClasses = [MipsMemAsmOperand]; @@ -959,12 +950,6 @@ !cast("MipsMemSimm10Lsl" # I # "AsmOperand"); } -def mem_simm9gpr : mem_generic { - let MIOperandInfo = (ops ptr_rc, simm9); - let EncoderMethod = "getMemEncoding"; - let ParserMatchClass = MipsMemSimm9GPRAsmOperand; -} - def mem_simm11 : mem_generic { let MIOperandInfo = (ops ptr_rc, simm11); let EncoderMethod = "getMemEncoding"; @@ -1151,15 +1136,21 @@ } // Memory Load/Store -class Load : - InstSE<(outs RO:$rt), (ins mem:$addr), !strconcat(opstr, "\t$rt, $addr"), +class LoadMemory : + InstSE<(outs RO:$rt), (ins MO:$addr), !strconcat(opstr, "\t$rt, $addr"), [(set RO:$rt, (OpNode Addr:$addr))], Itin, FrmI, opstr> { let DecoderMethod = "DecodeMem"; let canFoldAsLoad = 1; let mayLoad = 1; } +class Load : + LoadMemory; + class StoreMemory : Index: test/MC/Mips/eva/invalid-noeva-wrong-error.s =================================================================== --- test/MC/Mips/eva/invalid-noeva-wrong-error.s +++ test/MC/Mips/eva/invalid-noeva-wrong-error.s @@ -58,9 +58,9 @@ she $14,255($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset she $14,-256($15) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset she $9,235($11) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset - swe $ra,255($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with $gp and 9-bit signed offset - swe $ra,-256($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with $gp and 9-bit signed offset - swe $ra,-53($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with $gp and 9-bit signed offset + swe $ra,255($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset + swe $ra,-256($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset + swe $ra,-53($sp) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset swle $9,255($s1) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset swle $10,-256($s3) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset swle $8,131($s5) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset Index: test/MC/Mips/eva/invalid.s =================================================================== --- test/MC/Mips/eva/invalid.s +++ test/MC/Mips/eva/invalid.s @@ -9,3 +9,27 @@ cachee 32, 255($7) # CHECK: :[[@LINE]]:12: error: expected 5-bit unsigned immediate prefe -1, 255($7) # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate prefe 32, 255($7) # CHECK: :[[@LINE]]:11: error: expected 5-bit unsigned immediate + lle $33, 8($5) # CHECK: :[[@LINE]]:9: error: invalid operand for instruction + lle $4, 8($33) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + lle $4, 512($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + lle $4, -513($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + lwe $33, 8($5) # CHECK: :[[@LINE]]:9: error: invalid operand for instruction + lwe $4, 8($33) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + lwe $4, 512($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + lwe $4, -513($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + sbe $33, 8($5) # CHECK: :[[@LINE]]:9: error: invalid operand for instruction + sbe $4, 8($33) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + sbe $4, 512($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + sbe $4, -513($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + sce $33, 8($5) # CHECK: :[[@LINE]]:9: error: invalid operand for instruction + sce $4, 8($33) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + sce $4, 512($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + sce $4, -513($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + she $33, 8($5) # CHECK: :[[@LINE]]:9: error: invalid operand for instruction + she $4, 8($33) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + she $4, 512($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + she $4, -513($5) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + swe $33, 8($4) # CHECK: :[[@LINE]]:9: error: invalid operand for instruction + swe $5, 8($34) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + swe $5, 512($4) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset + swe $5, -513($4) # CHECK: :[[@LINE]]:13: error: expected memory with 9-bit signed offset Index: test/MC/Mips/eva/invalid_R6.s =================================================================== --- test/MC/Mips/eva/invalid_R6.s +++ test/MC/Mips/eva/invalid_R6.s @@ -18,3 +18,27 @@ swre $s4,255($13) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset swre $s4,-256($13) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset swre $s2,86($14) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: expected memory with 9-bit signed offset + lle $33, 8($5) # CHECK: :[[@LINE]]:19: error: invalid operand for instruction + lle $4, 8($33) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + lle $4, 512($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + lle $4, -513($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + lwe $33, 8($5) # CHECK: :[[@LINE]]:19: error: invalid operand for instruction + lwe $4, 8($33) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + lwe $4, 512($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + lwe $4, -513($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + sbe $33, 8($5) # CHECK: :[[@LINE]]:19: error: invalid operand for instruction + sbe $4, 8($33) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + sbe $4, 512($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + sbe $4, -513($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + sce $33, 8($5) # CHECK: :[[@LINE]]:19: error: invalid operand for instruction + sce $4, 8($33) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + sce $4, 512($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + sce $4, -513($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + she $33, 8($5) # CHECK: :[[@LINE]]:19: error: invalid operand for instruction + she $4, 8($33) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + she $4, 512($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + she $4, -513($5) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + swe $33, 8($4) # CHECK: :[[@LINE]]:19: error: invalid operand for instruction + swe $5, 8($34) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + swe $5, 512($4) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset + swe $5, -513($4) # CHECK: :[[@LINE]]:23: error: expected memory with 9-bit signed offset Index: test/MC/Mips/micromips/invalid.s =================================================================== --- test/MC/Mips/micromips/invalid.s +++ test/MC/Mips/micromips/invalid.s @@ -48,5 +48,27 @@ sra $2, $3, 32 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate srl $2, $3, -1 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate srl $2, $3, 32 # CHECK: :[[@LINE]]:15: error: expected 5-bit unsigned immediate - swe $2, -513($gp) # CHECK: :[[@LINE]]:11: error: expected memory with $gp and 9-bit signed offset - swe $2, 512($gp) # CHECK: :[[@LINE]]:11: error: expected memory with $gp and 9-bit signed offset + swe $2, -513($gp) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + swe $2, 512($gp) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + swe $33, 8($gp) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + swe $2, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + lle $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + lle $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + lle $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + lle $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + lwe $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + lwe $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + lwe $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + lwe $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sbe $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + sbe $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sbe $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sbe $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sce $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + sce $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sce $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sce $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + she $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + she $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + she $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + she $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset Index: test/MC/Mips/micromips32r6/invalid.s =================================================================== --- test/MC/Mips/micromips32r6/invalid.s +++ test/MC/Mips/micromips32r6/invalid.s @@ -36,8 +36,8 @@ ei $32 # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction swe $33, 8($4) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction # FIXME: This ought to point at the $34 but memory is treated as one operand. - swe $5, 8($34) # CHECK: :[[@LINE]]:11: error: expected memory with $gp and 9-bit signed offset - swe $5, 512($4) # CHECK: :[[@LINE]]:11: error: expected memory with $gp and 9-bit signed offset + swe $5, 8($34) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + swe $5, 512($4) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset lbu16 $9, 8($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: invalid operand for instruction lbu16 $3, -2($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range lbu16 $3, -2($16) # CHECK: :[[@LINE]]:{{[0-9]+}}: error: immediate operand value out of range @@ -119,3 +119,24 @@ mfc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate mfhc0 $4, $3, -1 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate mfhc0 $4, $3, 8 # CHECK: :[[@LINE]]:17: error: expected 3-bit unsigned immediate + lle $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + lle $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + lle $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + lle $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + lwe $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + lwe $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + lwe $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + lwe $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sbe $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + sbe $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sbe $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sbe $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sce $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + sce $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sce $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sce $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + she $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + she $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + she $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + she $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + swe $5, -513($4) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset Index: test/MC/Mips/micromips64r6/invalid.s =================================================================== --- test/MC/Mips/micromips64r6/invalid.s +++ test/MC/Mips/micromips64r6/invalid.s @@ -146,3 +146,27 @@ dmtc0 $4, $3, 8 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate dmfc0 $4, $3, -1 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate dmfc0 $4, $3, 8 # CHECK: :[[@LINE]]:18: error: expected 3-bit unsigned immediate + lle $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + lle $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + lle $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + lle $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + lwe $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + lwe $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + lwe $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + lwe $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sbe $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + sbe $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sbe $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sbe $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sce $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + sce $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sce $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + sce $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + she $33, 8($5) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + she $4, 8($33) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + she $4, 512($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + she $4, -513($5) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + swe $33, 8($4) # CHECK: :[[@LINE]]:7: error: invalid operand for instruction + swe $5, 8($34) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + swe $5, 512($4) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset + swe $5, -513($4) # CHECK: :[[@LINE]]:11: error: expected memory with 9-bit signed offset