diff --git a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp --- a/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp +++ b/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp @@ -1823,8 +1823,8 @@ AMDGPUOperand::Ptr defaultCBSZ() const; AMDGPUOperand::Ptr defaultABID() const; - OperandMatchResultTy parseEndpgmOp(OperandVector &Operands); - AMDGPUOperand::Ptr defaultEndpgmImmOperands() const; + OperandMatchResultTy parseEndpgm(OperandVector &Operands); + AMDGPUOperand::Ptr defaultEndpgm() const; AMDGPUOperand::Ptr defaultWaitVDST() const; AMDGPUOperand::Ptr defaultWaitEXP() const; @@ -8713,7 +8713,7 @@ return AMDGPUOperand::CreateImm(this, 0xf, SMLoc(), AMDGPUOperand::ImmTyDppRowMask); } -AMDGPUOperand::Ptr AMDGPUAsmParser::defaultEndpgmImmOperands() const { +AMDGPUOperand::Ptr AMDGPUAsmParser::defaultEndpgm() const { return AMDGPUOperand::CreateImm(this, 0, SMLoc(), AMDGPUOperand::ImmTyEndpgm); } @@ -9196,7 +9196,7 @@ // endpgm //===----------------------------------------------------------------------===// -OperandMatchResultTy AMDGPUAsmParser::parseEndpgmOp(OperandVector &Operands) { +OperandMatchResultTy AMDGPUAsmParser::parseEndpgm(OperandVector &Operands) { SMLoc S = getLoc(); int64_t Imm = 0; diff --git a/llvm/lib/Target/AMDGPU/SIInstrInfo.td b/llvm/lib/Target/AMDGPU/SIInstrInfo.td --- a/llvm/lib/Target/AMDGPU/SIInstrInfo.td +++ b/llvm/lib/Target/AMDGPU/SIInstrInfo.td @@ -980,14 +980,6 @@ let IsOptional = 1; } -def EndpgmMatchClass : AsmOperandClass { - let Name = "EndpgmImm"; - let PredicateMethod = "isEndpgm"; - let ParserMethod = "parseEndpgmOp"; - let RenderMethod = "addImmOperands"; - let IsOptional = 1; -} - def SWaitMatchClass : AsmOperandClass { let Name = "SWaitCnt"; let RenderMethod = "addImmOperands"; @@ -1022,10 +1014,7 @@ let ParserMatchClass = SwizzleMatchClass; } -def EndpgmImm : Operand { - let PrintMethod = "printEndpgm"; - let ParserMatchClass = EndpgmMatchClass; -} +def Endpgm : CustomOperand; def WAIT_FLAG : Operand { let ParserMatchClass = SWaitMatchClass; diff --git a/llvm/lib/Target/AMDGPU/SOPInstructions.td b/llvm/lib/Target/AMDGPU/SOPInstructions.td --- a/llvm/lib/Target/AMDGPU/SOPInstructions.td +++ b/llvm/lib/Target/AMDGPU/SOPInstructions.td @@ -1175,7 +1175,7 @@ def S_NOP : SOPP_Pseudo<"s_nop" , (ins i16imm:$simm16), "$simm16">; let isTerminator = 1 in { -def S_ENDPGM : SOPP_Pseudo<"s_endpgm", (ins EndpgmImm:$simm16), "$simm16", [], ""> { +def S_ENDPGM : SOPP_Pseudo<"s_endpgm", (ins Endpgm:$simm16), "$simm16", [], ""> { let isBarrier = 1; let isReturn = 1; let hasSideEffects = 1;