diff --git a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp index 818837d05b010..ea80d899c1277 100644 --- a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp +++ b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp @@ -58,7 +58,7 @@ extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeRISCVDisassembler() { createRISCVDisassembler); } -static DecodeStatus DecodeGPRRegisterClass(MCInst &Inst, uint64_t RegNo, +static DecodeStatus DecodeGPRRegisterClass(MCInst &Inst, uint32_t RegNo, uint64_t Address, const MCDisassembler *Decoder) { const FeatureBitset &FeatureBits = @@ -73,7 +73,7 @@ static DecodeStatus DecodeGPRRegisterClass(MCInst &Inst, uint64_t RegNo, return MCDisassembler::Success; } -static DecodeStatus DecodeFPR16RegisterClass(MCInst &Inst, uint64_t RegNo, +static DecodeStatus DecodeFPR16RegisterClass(MCInst &Inst, uint32_t RegNo, uint64_t Address, const MCDisassembler *Decoder) { if (RegNo >= 32) @@ -84,7 +84,7 @@ static DecodeStatus DecodeFPR16RegisterClass(MCInst &Inst, uint64_t RegNo, return MCDisassembler::Success; } -static DecodeStatus DecodeFPR32RegisterClass(MCInst &Inst, uint64_t RegNo, +static DecodeStatus DecodeFPR32RegisterClass(MCInst &Inst, uint32_t RegNo, uint64_t Address, const MCDisassembler *Decoder) { if (RegNo >= 32) @@ -95,7 +95,7 @@ static DecodeStatus DecodeFPR32RegisterClass(MCInst &Inst, uint64_t RegNo, return MCDisassembler::Success; } -static DecodeStatus DecodeFPR32CRegisterClass(MCInst &Inst, uint64_t RegNo, +static DecodeStatus DecodeFPR32CRegisterClass(MCInst &Inst, uint32_t RegNo, uint64_t Address, const MCDisassembler *Decoder) { if (RegNo >= 8) { @@ -106,7 +106,7 @@ static DecodeStatus DecodeFPR32CRegisterClass(MCInst &Inst, uint64_t RegNo, return MCDisassembler::Success; } -static DecodeStatus DecodeFPR64RegisterClass(MCInst &Inst, uint64_t RegNo, +static DecodeStatus DecodeFPR64RegisterClass(MCInst &Inst, uint32_t RegNo, uint64_t Address, const MCDisassembler *Decoder) { if (RegNo >= 32) @@ -117,7 +117,7 @@ static DecodeStatus DecodeFPR64RegisterClass(MCInst &Inst, uint64_t RegNo, return MCDisassembler::Success; } -static DecodeStatus DecodeFPR64CRegisterClass(MCInst &Inst, uint64_t RegNo, +static DecodeStatus DecodeFPR64CRegisterClass(MCInst &Inst, uint32_t RegNo, uint64_t Address, const MCDisassembler *Decoder) { if (RegNo >= 8) { @@ -128,7 +128,7 @@ static DecodeStatus DecodeFPR64CRegisterClass(MCInst &Inst, uint64_t RegNo, return MCDisassembler::Success; } -static DecodeStatus DecodeGPRNoX0RegisterClass(MCInst &Inst, uint64_t RegNo, +static DecodeStatus DecodeGPRNoX0RegisterClass(MCInst &Inst, uint32_t RegNo, uint64_t Address, const MCDisassembler *Decoder) { if (RegNo == 0) { @@ -139,7 +139,7 @@ static DecodeStatus DecodeGPRNoX0RegisterClass(MCInst &Inst, uint64_t RegNo, } static DecodeStatus -DecodeGPRNoX0X2RegisterClass(MCInst &Inst, uint64_t RegNo, uint64_t Address, +DecodeGPRNoX0X2RegisterClass(MCInst &Inst, uint64_t RegNo, uint32_t Address, const MCDisassembler *Decoder) { if (RegNo == 2) { return MCDisassembler::Fail; @@ -148,7 +148,7 @@ DecodeGPRNoX0X2RegisterClass(MCInst &Inst, uint64_t RegNo, uint64_t Address, return DecodeGPRNoX0RegisterClass(Inst, RegNo, Address, Decoder); } -static DecodeStatus DecodeGPRCRegisterClass(MCInst &Inst, uint64_t RegNo, +static DecodeStatus DecodeGPRCRegisterClass(MCInst &Inst, uint32_t RegNo, uint64_t Address, const MCDisassembler *Decoder) { if (RegNo >= 8) @@ -159,7 +159,7 @@ static DecodeStatus DecodeGPRCRegisterClass(MCInst &Inst, uint64_t RegNo, return MCDisassembler::Success; } -static DecodeStatus DecodeGPRPF64RegisterClass(MCInst &Inst, uint64_t RegNo, +static DecodeStatus DecodeGPRPF64RegisterClass(MCInst &Inst, uint32_t RegNo, uint64_t Address, const MCDisassembler *Decoder) { if (RegNo >= 32 || RegNo & 1) @@ -170,7 +170,7 @@ static DecodeStatus DecodeGPRPF64RegisterClass(MCInst &Inst, uint64_t RegNo, return MCDisassembler::Success; } -static DecodeStatus DecodeVRRegisterClass(MCInst &Inst, uint64_t RegNo, +static DecodeStatus DecodeVRRegisterClass(MCInst &Inst, uint32_t RegNo, uint64_t Address, const MCDisassembler *Decoder) { if (RegNo >= 32) @@ -181,7 +181,7 @@ static DecodeStatus DecodeVRRegisterClass(MCInst &Inst, uint64_t RegNo, return MCDisassembler::Success; } -static DecodeStatus DecodeVRM2RegisterClass(MCInst &Inst, uint64_t RegNo, +static DecodeStatus DecodeVRM2RegisterClass(MCInst &Inst, uint32_t RegNo, uint64_t Address, const MCDisassembler *Decoder) { if (RegNo >= 32) @@ -201,7 +201,7 @@ static DecodeStatus DecodeVRM2RegisterClass(MCInst &Inst, uint64_t RegNo, return MCDisassembler::Success; } -static DecodeStatus DecodeVRM4RegisterClass(MCInst &Inst, uint64_t RegNo, +static DecodeStatus DecodeVRM4RegisterClass(MCInst &Inst, uint32_t RegNo, uint64_t Address, const MCDisassembler *Decoder) { if (RegNo >= 32) @@ -221,7 +221,7 @@ static DecodeStatus DecodeVRM4RegisterClass(MCInst &Inst, uint64_t RegNo, return MCDisassembler::Success; } -static DecodeStatus DecodeVRM8RegisterClass(MCInst &Inst, uint64_t RegNo, +static DecodeStatus DecodeVRM8RegisterClass(MCInst &Inst, uint32_t RegNo, uint64_t Address, const MCDisassembler *Decoder) { if (RegNo >= 32) @@ -278,7 +278,7 @@ static void addImplySP(MCInst &Inst, int64_t Address, } template -static DecodeStatus decodeUImmOperand(MCInst &Inst, uint64_t Imm, +static DecodeStatus decodeUImmOperand(MCInst &Inst, uint32_t Imm, int64_t Address, const MCDisassembler *Decoder) { assert(isUInt(Imm) && "Invalid immediate"); @@ -288,7 +288,7 @@ static DecodeStatus decodeUImmOperand(MCInst &Inst, uint64_t Imm, } template -static DecodeStatus decodeUImmNonZeroOperand(MCInst &Inst, uint64_t Imm, +static DecodeStatus decodeUImmNonZeroOperand(MCInst &Inst, uint32_t Imm, int64_t Address, const MCDisassembler *Decoder) { if (Imm == 0) @@ -297,7 +297,7 @@ static DecodeStatus decodeUImmNonZeroOperand(MCInst &Inst, uint64_t Imm, } template -static DecodeStatus decodeSImmOperand(MCInst &Inst, uint64_t Imm, +static DecodeStatus decodeSImmOperand(MCInst &Inst, uint32_t Imm, int64_t Address, const MCDisassembler *Decoder) { assert(isUInt(Imm) && "Invalid immediate"); @@ -308,7 +308,7 @@ static DecodeStatus decodeSImmOperand(MCInst &Inst, uint64_t Imm, } template -static DecodeStatus decodeSImmNonZeroOperand(MCInst &Inst, uint64_t Imm, +static DecodeStatus decodeSImmNonZeroOperand(MCInst &Inst, uint32_t Imm, int64_t Address, const MCDisassembler *Decoder) { if (Imm == 0) @@ -317,7 +317,7 @@ static DecodeStatus decodeSImmNonZeroOperand(MCInst &Inst, uint64_t Imm, } template -static DecodeStatus decodeSImmOperandAndLsl1(MCInst &Inst, uint64_t Imm, +static DecodeStatus decodeSImmOperandAndLsl1(MCInst &Inst, uint32_t Imm, int64_t Address, const MCDisassembler *Decoder) { assert(isUInt(Imm) && "Invalid immediate"); @@ -328,7 +328,7 @@ static DecodeStatus decodeSImmOperandAndLsl1(MCInst &Inst, uint64_t Imm, return MCDisassembler::Success; } -static DecodeStatus decodeCLUIImmOperand(MCInst &Inst, uint64_t Imm, +static DecodeStatus decodeCLUIImmOperand(MCInst &Inst, uint32_t Imm, int64_t Address, const MCDisassembler *Decoder) { assert(isUInt<6>(Imm) && "Invalid immediate"); @@ -339,7 +339,7 @@ static DecodeStatus decodeCLUIImmOperand(MCInst &Inst, uint64_t Imm, return MCDisassembler::Success; } -static DecodeStatus decodeFRMArg(MCInst &Inst, uint64_t Imm, int64_t Address, +static DecodeStatus decodeFRMArg(MCInst &Inst, uint32_t Imm, int64_t Address, const MCDisassembler *Decoder) { assert(isUInt<3>(Imm) && "Invalid immediate"); if (!llvm::RISCVFPRndMode::isValidRoundingMode(Imm)) @@ -349,36 +349,36 @@ static DecodeStatus decodeFRMArg(MCInst &Inst, uint64_t Imm, int64_t Address, return MCDisassembler::Success; } -static DecodeStatus decodeRVCInstrRdRs1ImmZero(MCInst &Inst, unsigned Insn, +static DecodeStatus decodeRVCInstrRdRs1ImmZero(MCInst &Inst, uint32_t Insn, uint64_t Address, const MCDisassembler *Decoder); -static DecodeStatus decodeRVCInstrSImm(MCInst &Inst, unsigned Insn, +static DecodeStatus decodeRVCInstrSImm(MCInst &Inst, uint32_t Insn, uint64_t Address, const MCDisassembler *Decoder); -static DecodeStatus decodeRVCInstrRdSImm(MCInst &Inst, unsigned Insn, +static DecodeStatus decodeRVCInstrRdSImm(MCInst &Inst, uint32_t Insn, uint64_t Address, const MCDisassembler *Decoder); -static DecodeStatus decodeRVCInstrRdRs1UImm(MCInst &Inst, unsigned Insn, +static DecodeStatus decodeRVCInstrRdRs1UImm(MCInst &Inst, uint32_t Insn, uint64_t Address, const MCDisassembler *Decoder); -static DecodeStatus decodeRVCInstrRdRs2(MCInst &Inst, unsigned Insn, +static DecodeStatus decodeRVCInstrRdRs2(MCInst &Inst, uint32_t Insn, uint64_t Address, const MCDisassembler *Decoder); -static DecodeStatus decodeRVCInstrRdRs1Rs2(MCInst &Inst, unsigned Insn, +static DecodeStatus decodeRVCInstrRdRs1Rs2(MCInst &Inst, uint32_t Insn, uint64_t Address, const MCDisassembler *Decoder); #include "RISCVGenDisassemblerTables.inc" -static DecodeStatus decodeRVCInstrRdRs1ImmZero(MCInst &Inst, unsigned Insn, +static DecodeStatus decodeRVCInstrRdRs1ImmZero(MCInst &Inst, uint32_t Insn, uint64_t Address, const MCDisassembler *Decoder) { - unsigned Rd = fieldFromInstruction(Insn, 7, 5); + uint32_t Rd = fieldFromInstruction(Insn, 7, 5); DecodeStatus Result = DecodeGPRNoX0RegisterClass(Inst, Rd, Address, Decoder); (void)Result; assert(Result == MCDisassembler::Success && "Invalid register"); @@ -387,10 +387,10 @@ static DecodeStatus decodeRVCInstrRdRs1ImmZero(MCInst &Inst, unsigned Insn, return MCDisassembler::Success; } -static DecodeStatus decodeRVCInstrSImm(MCInst &Inst, unsigned Insn, +static DecodeStatus decodeRVCInstrSImm(MCInst &Inst, uint32_t Insn, uint64_t Address, const MCDisassembler *Decoder) { - uint64_t SImm6 = + uint32_t SImm6 = fieldFromInstruction(Insn, 12, 1) << 5 | fieldFromInstruction(Insn, 2, 5); DecodeStatus Result = decodeSImmOperand<6>(Inst, SImm6, Address, Decoder); (void)Result; @@ -398,11 +398,11 @@ static DecodeStatus decodeRVCInstrSImm(MCInst &Inst, unsigned Insn, return MCDisassembler::Success; } -static DecodeStatus decodeRVCInstrRdSImm(MCInst &Inst, unsigned Insn, +static DecodeStatus decodeRVCInstrRdSImm(MCInst &Inst, uint32_t Insn, uint64_t Address, const MCDisassembler *Decoder) { Inst.addOperand(MCOperand::createReg(RISCV::X0)); - uint64_t SImm6 = + uint32_t SImm6 = fieldFromInstruction(Insn, 12, 1) << 5 | fieldFromInstruction(Insn, 2, 5); DecodeStatus Result = decodeSImmOperand<6>(Inst, SImm6, Address, Decoder); (void)Result; @@ -410,12 +410,12 @@ static DecodeStatus decodeRVCInstrRdSImm(MCInst &Inst, unsigned Insn, return MCDisassembler::Success; } -static DecodeStatus decodeRVCInstrRdRs1UImm(MCInst &Inst, unsigned Insn, +static DecodeStatus decodeRVCInstrRdRs1UImm(MCInst &Inst, uint32_t Insn, uint64_t Address, const MCDisassembler *Decoder) { Inst.addOperand(MCOperand::createReg(RISCV::X0)); Inst.addOperand(Inst.getOperand(0)); - uint64_t UImm6 = + uint32_t UImm6 = fieldFromInstruction(Insn, 12, 1) << 5 | fieldFromInstruction(Insn, 2, 5); DecodeStatus Result = decodeUImmOperand<6>(Inst, UImm6, Address, Decoder); (void)Result; @@ -423,21 +423,21 @@ static DecodeStatus decodeRVCInstrRdRs1UImm(MCInst &Inst, unsigned Insn, return MCDisassembler::Success; } -static DecodeStatus decodeRVCInstrRdRs2(MCInst &Inst, unsigned Insn, +static DecodeStatus decodeRVCInstrRdRs2(MCInst &Inst, uint32_t Insn, uint64_t Address, const MCDisassembler *Decoder) { - unsigned Rd = fieldFromInstruction(Insn, 7, 5); - unsigned Rs2 = fieldFromInstruction(Insn, 2, 5); + uint32_t Rd = fieldFromInstruction(Insn, 7, 5); + uint32_t Rs2 = fieldFromInstruction(Insn, 2, 5); DecodeGPRRegisterClass(Inst, Rd, Address, Decoder); DecodeGPRRegisterClass(Inst, Rs2, Address, Decoder); return MCDisassembler::Success; } -static DecodeStatus decodeRVCInstrRdRs1Rs2(MCInst &Inst, unsigned Insn, +static DecodeStatus decodeRVCInstrRdRs1Rs2(MCInst &Inst, uint32_t Insn, uint64_t Address, const MCDisassembler *Decoder) { - unsigned Rd = fieldFromInstruction(Insn, 7, 5); - unsigned Rs2 = fieldFromInstruction(Insn, 2, 5); + uint32_t Rd = fieldFromInstruction(Insn, 7, 5); + uint32_t Rs2 = fieldFromInstruction(Insn, 2, 5); DecodeGPRRegisterClass(Inst, Rd, Address, Decoder); Inst.addOperand(Inst.getOperand(0)); DecodeGPRRegisterClass(Inst, Rs2, Address, Decoder);