I’ve added 72-bit registers to the backend of the Xtensa experimental build. However, while building the compiler, I’m facing issues with the MCCodeEmitter. It seems the error is related to how the MCCodeEmitter only returns uint_64 datatypes in the .inc file and is unable to handle 72 bit instruction words.
/auto/worka/irohit/test_bld/lib/Target/Xtensa/XtensaGenMCCodeEmitter.inc:9:6: error: no declaration matches ‘void {anonymous}::XtensaMCCodeEmitter::getBinaryCodeForInstr(const llvm::MCInst&, llvm::SmallVectorImpl<llvm::MCFixup>&, llvm::APInt&, llvm::APInt&, const llvm::MCSubtargetInfo&) const’
9 | void XtensaMCCodeEmitter::getBinaryCodeForInstr(const MCInst &MI,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:52:9: note: candidate is: ‘llvm::APInt {anonymous}::XtensaMCCodeEmitter::getBinaryCodeForInstr(const llvm::MCInst&, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’
52 | APInt getBinaryCodeForInstr(const MCInst &MI,
| ^~~~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:34:7: note: ‘class {anonymous}::XtensaMCCodeEmitter’ defined here
34 | class XtensaMCCodeEmitter : public MCCodeEmitter {
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:52:9: warning: ‘llvm::APInt {anonymous}::XtensaMCCodeEmitter::getBinaryCodeForInstr(const llvm::MCInst&, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ used but never defined
52 | APInt getBinaryCodeForInstr(const MCInst &MI,
| ^~~~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:781:1: warning: ‘int16_t {anonymous}::XtensaMCCodeEmitter::getOffset_64_16OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
781 | XtensaMCCodeEmitter::getOffset_64_16OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:769:1: warning: ‘uint8_t {anonymous}::XtensaMCCodeEmitter::getOffset_128_1OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
769 | XtensaMCCodeEmitter::getOffset_128_1OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:756:1: warning: ‘uint8_t {anonymous}::XtensaMCCodeEmitter::getOffset_128_2OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
756 | XtensaMCCodeEmitter::getOffset_128_2OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:743:1: warning: ‘int16_t {anonymous}::XtensaMCCodeEmitter::getOffset_256_4OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
743 | XtensaMCCodeEmitter::getOffset_256_4OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:730:1: warning: ‘int16_t {anonymous}::XtensaMCCodeEmitter::getOffset_256_16OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
730 | XtensaMCCodeEmitter::getOffset_256_16OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:717:1: warning: ‘int16_t {anonymous}::XtensaMCCodeEmitter::getOffset_256_8OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
717 | XtensaMCCodeEmitter::getOffset_256_8OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:704:1: warning: ‘int8_t {anonymous}::XtensaMCCodeEmitter::getOffset_16_16OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
704 | XtensaMCCodeEmitter::getOffset_16_16OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:692:1: warning: ‘uint8_t {anonymous}::XtensaMCCodeEmitter::getSelect_256OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
692 | XtensaMCCodeEmitter::getSelect_256OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:680:1: warning: ‘uint8_t {anonymous}::XtensaMCCodeEmitter::getSelect_16OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
680 | XtensaMCCodeEmitter::getSelect_16OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:668:1: warning: ‘uint8_t {anonymous}::XtensaMCCodeEmitter::getSelect_8OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
668 | XtensaMCCodeEmitter::getSelect_8OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:656:1: warning: ‘uint8_t {anonymous}::XtensaMCCodeEmitter::getSelect_4OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
656 | XtensaMCCodeEmitter::getSelect_4OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:644:1: warning: ‘uint8_t {anonymous}::XtensaMCCodeEmitter::getSelect_2OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
644 | XtensaMCCodeEmitter::getSelect_2OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:631:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getSeimm7_22OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
631 | XtensaMCCodeEmitter::getSeimm7_22OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:581:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getB4constuOpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
581 | XtensaMCCodeEmitter::getB4constuOpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:533:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getB4constOpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
533 | XtensaMCCodeEmitter::getB4constOpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:521:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getEntry_Imm12OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
521 | XtensaMCCodeEmitter::getEntry_Imm12OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:508:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getImm64n_4nOpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
508 | XtensaMCCodeEmitter::getImm64n_4nOpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:493:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getImm8n_7OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
493 | XtensaMCCodeEmitter::getImm8n_7OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:481:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getImm32n_95OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
481 | XtensaMCCodeEmitter::getImm32n_95OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:465:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getImm1n_15OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
465 | XtensaMCCodeEmitter::getImm1n_15OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:453:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getImm1_16OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
453 | XtensaMCCodeEmitter::getImm1_16OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:441:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getShimm1_31OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
441 | XtensaMCCodeEmitter::getShimm1_31OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:429:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getUimm5OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
429 | XtensaMCCodeEmitter::getUimm5OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:417:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getUimm4OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
417 | XtensaMCCodeEmitter::getUimm4OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:405:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getImm12OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
405 | XtensaMCCodeEmitter::getImm12OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:392:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getImm8_sh8OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
392 | XtensaMCCodeEmitter::getImm8_sh8OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:380:10: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getImm8OpValue(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
380 | uint32_t XtensaMCCodeEmitter::getImm8OpValue(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:332:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getMemRegEncoding(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
332 | XtensaMCCodeEmitter::getMemRegEncoding(const MCInst &MI, unsigned OpNo,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:312:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getL32RTargetEncoding(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
312 | XtensaMCCodeEmitter::getL32RTargetEncoding(const MCInst &MI, unsigned OpNum,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:291:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getCallEncoding(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
291 | XtensaMCCodeEmitter::getCallEncoding(const MCInst &MI, unsigned int OpNum,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:274:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getLoopTargetEncoding(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
274 | XtensaMCCodeEmitter::getLoopTargetEncoding(const MCInst &MI, unsigned int OpNum,
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:250:10: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getBranchTargetEncoding(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
250 | uint32_t XtensaMCCodeEmitter::getBranchTargetEncoding(
| ^~~~~~~~~~~~~~~~~~~
/auto/worka/irohit/llvm-project/llvm/lib/Target/Xtensa/MCTargetDesc/XtensaMCCodeEmitter.cpp:236:1: warning: ‘uint32_t {anonymous}::XtensaMCCodeEmitter::getJumpTargetEncoding(const llvm::MCInst&, unsigned int, llvm::SmallVectorImpl<llvm::MCFixup>&, const llvm::MCSubtargetInfo&) const’ defined but not used [-Wunused-function]
236 | XtensaMCCodeEmitter::getJumpTargetEncoding(const MCInst &MI, unsigned int OpNum,
| ^~~~~~~~~~~~~~~~~~~