[llvm] [Mips] Decode the operand of JrcRx16 (PR #157357)

via llvm-commits llvm-commits at lists.llvm.org
Sun Sep 7 11:25:47 PDT 2025


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-mips

Author: Sergei Barannikov (s-barannikov)

<details>
<summary>Changes</summary>

This change will allow to remove `-ignore-non-decodable-operands` TableGen option.

The J(AL)R(C) instructions still have incorrect encodings, but it seems there is only one mips16 test that only tests `nop`.


---
Full diff: https://github.com/llvm/llvm-project/pull/157357.diff


1 Files Affected:

- (modified) llvm/lib/Target/Mips/Mips16InstrInfo.td (+2-3) 


``````````diff
diff --git a/llvm/lib/Target/Mips/Mips16InstrInfo.td b/llvm/lib/Target/Mips/Mips16InstrInfo.td
index fb2a83dc90ea9..ab473c133b8e3 100644
--- a/llvm/lib/Target/Mips/Mips16InstrInfo.td
+++ b/llvm/lib/Target/Mips/Mips16InstrInfo.td
@@ -374,8 +374,8 @@ class FRR16_JALRC_RA_only_ins<bits<1> nd_, bits<1> l_,
 
 class FRR16_JALRC_ins<bits<1> nd, bits<1> l, bits<1> ra,
                       string asmstr, InstrItinClass itin>:
-  FRR16_JALRC<nd, l, ra, (outs), (ins CPU16Regs:$rs),
-              !strconcat(asmstr, "\t$rs"), [], itin> ;
+  FRR16_JALRC<nd, l, ra, (outs), (ins CPU16Regs:$rx),
+              !strconcat(asmstr, "\t$rx"), [], itin> ;
 
 class FRR_SF16_ins
   <bits<5> _funct, bits<3> _subfunc,
@@ -776,7 +776,6 @@ def JrcRa16: FRR16_JALRC_RA_only_ins<1, 1, "jrc", IIM16Alu> {
 }
 
 def JrcRx16: FRR16_JALRC_ins<1, 1, 0, "jrc", IIM16Alu> {
-  let rx = 0b000;
   let isBranch = 1;
   let isIndirectBranch = 1;
   let isTerminator=1;

``````````

</details>


https://github.com/llvm/llvm-project/pull/157357


More information about the llvm-commits mailing list