Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[RISCV] Use decodeCLUIImmOperand when disassembling C_LUI_HINT. #133789

Merged
merged 3 commits into from
Apr 1, 2025

Conversation

topperc
Copy link
Collaborator

@topperc topperc commented Mar 31, 2025

This correctly rejects imm==0 and prints 1048575 instead of -1.

I've modified the test to only have each hex pattern once with different check lines before it. This ensures we don't have more invalid messages printed than we're checking for.

This correctly rejects imm==0 and prints 1048575 instead of -1.

I've modified the test to only have each hex pattern once with
different check lines before it. This ensures we don't miscount
the number of invalid patterns.
@topperc topperc requested review from asb, lenary and wangpc-pp March 31, 2025 20:16
@llvmbot llvmbot added backend:RISC-V mc Machine (object) code labels Mar 31, 2025
@llvmbot
Copy link
Member

llvmbot commented Mar 31, 2025

@llvm/pr-subscribers-mc

@llvm/pr-subscribers-backend-risc-v

Author: Craig Topper (topperc)

Changes

This correctly rejects imm==0 and prints 1048575 instead of -1.

I've modified the test to only have each hex pattern once with different check lines before it. This ensures we don't have more invalid messages printed than we're checking for.


Patch is 150.46 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/133789.diff

3 Files Affected:

  • (modified) llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp (+19-6)
  • (modified) llvm/lib/Target/RISCV/RISCVInstrInfoC.td (+2-2)
  • (modified) llvm/test/MC/Disassembler/RISCV/c_lui_disasm.txt (+6024-2056)
diff --git a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
index b22a4a7246c23..a329109a2fc1f 100644
--- a/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
+++ b/llvm/lib/Target/RISCV/Disassembler/RISCVDisassembler.cpp
@@ -484,10 +484,14 @@ static DecodeStatus decodeRVCInstrRdRs1ImmZero(MCInst &Inst, uint32_t Insn,
                                                uint64_t Address,
                                                const MCDisassembler *Decoder);
 
-static DecodeStatus decodeRVCInstrRdSImm(MCInst &Inst, uint32_t Insn,
+static DecodeStatus decodeRVCInstrRdSImm6(MCInst &Inst, uint32_t Insn,
                                          uint64_t Address,
                                          const MCDisassembler *Decoder);
 
+static DecodeStatus decodeRVCInstrRdCLUIImm(MCInst &Inst, uint32_t Insn,
+                                            uint64_t Address,
+                                            const MCDisassembler *Decoder);
+
 static DecodeStatus decodeRVCInstrRdRs1UImm(MCInst &Inst, uint32_t Insn,
                                             uint64_t Address,
                                             const MCDisassembler *Decoder);
@@ -541,18 +545,27 @@ static DecodeStatus decodeCSSPushPopchk(MCInst &Inst, uint32_t Insn,
   return MCDisassembler::Success;
 }
 
-static DecodeStatus decodeRVCInstrRdSImm(MCInst &Inst, uint32_t Insn,
-                                         uint64_t Address,
-                                         const MCDisassembler *Decoder) {
+static DecodeStatus decodeRVCInstrRdSImm6(MCInst &Inst, uint32_t Insn,
+                                          uint64_t Address,
+                                          const MCDisassembler *Decoder) {
   Inst.addOperand(MCOperand::createReg(RISCV::X0));
-  uint32_t SImm6 =
+  uint32_t Imm =
       fieldFromInstruction(Insn, 12, 1) << 5 | fieldFromInstruction(Insn, 2, 5);
   [[maybe_unused]] DecodeStatus Result =
-      decodeSImmOperand<6>(Inst, SImm6, Address, Decoder);
+      decodeSImmOperand<6>(Inst, Imm, Address, Decoder);
   assert(Result == MCDisassembler::Success && "Invalid immediate");
   return MCDisassembler::Success;
 }
 
+static DecodeStatus decodeRVCInstrRdCLUIImm(MCInst &Inst, uint32_t Insn,
+                                            uint64_t Address,
+                                            const MCDisassembler *Decoder) {
+  Inst.addOperand(MCOperand::createReg(RISCV::X0));
+  uint32_t Imm =
+      fieldFromInstruction(Insn, 12, 1) << 5 | fieldFromInstruction(Insn, 2, 5);
+  return decodeCLUIImmOperand(Inst, Imm, Address, Decoder);
+}
+
 static DecodeStatus decodeRVCInstrRdRs1UImm(MCInst &Inst, uint32_t Insn,
                                             uint64_t Address,
                                             const MCDisassembler *Decoder) {
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfoC.td b/llvm/lib/Target/RISCV/RISCVInstrInfoC.td
index 199d056986dc2..d583d4fc0d40b 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfoC.td
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfoC.td
@@ -629,7 +629,7 @@ def C_LI_HINT : RVInst16CI<0b010, 0b01, (outs GPRX0:$rd), (ins simm6:$imm),
                            "c.li", "$rd, $imm">,
                 Sched<[WriteIALU]> {
   let Inst{11-7} = 0;
-  let DecoderMethod = "decodeRVCInstrRdSImm";
+  let DecoderMethod = "decodeRVCInstrRdSImm6";
 }
 
 def C_LUI_HINT : RVInst16CI<0b011, 0b01, (outs GPRX0:$rd),
@@ -637,7 +637,7 @@ def C_LUI_HINT : RVInst16CI<0b011, 0b01, (outs GPRX0:$rd),
                             "c.lui", "$rd, $imm">,
                  Sched<[WriteIALU]> {
   let Inst{11-7} = 0;
-  let DecoderMethod = "decodeRVCInstrRdSImm";
+  let DecoderMethod = "decodeRVCInstrRdCLUIImm";
 }
 
 def C_MV_HINT : RVInst16CR<0b1000, 0b10, (outs GPRX0:$rs1), (ins GPRNoX0:$rs2),
diff --git a/llvm/test/MC/Disassembler/RISCV/c_lui_disasm.txt b/llvm/test/MC/Disassembler/RISCV/c_lui_disasm.txt
index e0002acd5ac6f..17889c15cbf95 100644
--- a/llvm/test/MC/Disassembler/RISCV/c_lui_disasm.txt
+++ b/llvm/test/MC/Disassembler/RISCV/c_lui_disasm.txt
@@ -15,2059 +15,6027 @@
 # RUN:     -M no-aliases --show-encoding < %s 2>&1 | \
 # RUN:   FileCheck --check-prefix=NOHINTS %s
 
-0x01 0x60 # BAD: invalid instruction encoding
-0x01 0x60 # NOHINTS: invalid instruction encoding
-0x05 0x60 # GOOD: c.lui zero, 1
-0x05 0x60 # NOHINTS: invalid instruction encoding
-0x09 0x60 # GOOD: c.lui zero, 2
-0x09 0x60 # NOHINTS: invalid instruction encoding
-0x0D 0x60 # GOOD: c.lui zero, 3
-0x0D 0x60 # NOHINTS: invalid instruction encoding
-0x11 0x60 # GOOD: c.lui zero, 4
-0x11 0x60 # NOHINTS: invalid instruction encoding
-0x15 0x60 # GOOD: c.lui zero, 5
-0x15 0x60 # NOHINTS: invalid instruction encoding
-0x19 0x60 # GOOD: c.lui zero, 6
-0x19 0x60 # NOHINTS: invalid instruction encoding
-0x1D 0x60 # GOOD: c.lui zero, 7
-0x1D 0x60 # NOHINTS: invalid instruction encoding
-0x21 0x60 # GOOD: c.lui zero, 8
-0x21 0x60 # NOHINTS: invalid instruction encoding
-0x25 0x60 # GOOD: c.lui zero, 9
-0x25 0x60 # NOHINTS: invalid instruction encoding
-0x29 0x60 # GOOD: c.lui zero, 10
-0x29 0x60 # NOHINTS: invalid instruction encoding
-0x2D 0x60 # GOOD: c.lui zero, 11
-0x2D 0x60 # NOHINTS: invalid instruction encoding
-0x31 0x60 # GOOD: c.lui zero, 12
-0x31 0x60 # NOHINTS: invalid instruction encoding
-0x35 0x60 # GOOD: c.lui zero, 13
-0x35 0x60 # NOHINTS: invalid instruction encoding
-0x39 0x60 # GOOD: c.lui zero, 14
-0x39 0x60 # NOHINTS: invalid instruction encoding
-0x3D 0x60 # GOOD: c.lui zero, 15
-0x3D 0x60 # NOHINTS: invalid instruction encoding
-0x41 0x60 # GOOD: c.lui zero, 16
-0x41 0x60 # NOHINTS: invalid instruction encoding
-0x45 0x60 # GOOD: c.lui zero, 17
-0x45 0x60 # NOHINTS: invalid instruction encoding
-0x49 0x60 # GOOD: c.lui zero, 18
-0x49 0x60 # NOHINTS: invalid instruction encoding
-0x4D 0x60 # GOOD: c.lui zero, 19
-0x4D 0x60 # NOHINTS: invalid instruction encoding
-0x51 0x60 # GOOD: c.lui zero, 20
-0x51 0x60 # NOHINTS: invalid instruction encoding
-0x55 0x60 # GOOD: c.lui zero, 21
-0x55 0x60 # NOHINTS: invalid instruction encoding
-0x59 0x60 # GOOD: c.lui zero, 22
-0x59 0x60 # NOHINTS: invalid instruction encoding
-0x5D 0x60 # GOOD: c.lui zero, 23
-0x5D 0x60 # NOHINTS: invalid instruction encoding
-0x61 0x60 # GOOD: c.lui zero, 24
-0x61 0x60 # NOHINTS: invalid instruction encoding
-0x65 0x60 # GOOD: c.lui zero, 25
-0x65 0x60 # NOHINTS: invalid instruction encoding
-0x69 0x60 # GOOD: c.lui zero, 26
-0x69 0x60 # NOHINTS: invalid instruction encoding
-0x6D 0x60 # GOOD: c.lui zero, 27
-0x6D 0x60 # NOHINTS: invalid instruction encoding
-0x71 0x60 # GOOD: c.lui zero, 28
-0x71 0x60 # NOHINTS: invalid instruction encoding
-0x75 0x60 # GOOD: c.lui zero, 29
-0x75 0x60 # NOHINTS: invalid instruction encoding
-0x79 0x60 # GOOD: c.lui zero, 30
-0x79 0x60 # NOHINTS: invalid instruction encoding
-0x7D 0x60 # GOOD: c.lui zero, 31
-0x7D 0x60 # NOHINTS: invalid instruction encoding
-0x01 0x70 # GOOD: c.lui zero, -32
-0x01 0x70 # NOHINTS: invalid instruction encoding
-0x05 0x70 # GOOD: c.lui zero, -31
-0x05 0x70 # NOHINTS: invalid instruction encoding
-0x09 0x70 # GOOD: c.lui zero, -30
-0x09 0x70 # NOHINTS: invalid instruction encoding
-0x0D 0x70 # GOOD: c.lui zero, -29
-0x0D 0x70 # NOHINTS: invalid instruction encoding
-0x11 0x70 # GOOD: c.lui zero, -28
-0x11 0x70 # NOHINTS: invalid instruction encoding
-0x15 0x70 # GOOD: c.lui zero, -27
-0x15 0x70 # NOHINTS: invalid instruction encoding
-0x19 0x70 # GOOD: c.lui zero, -26
-0x19 0x70 # NOHINTS: invalid instruction encoding
-0x1D 0x70 # GOOD: c.lui zero, -25
-0x1D 0x70 # NOHINTS: invalid instruction encoding
-0x21 0x70 # GOOD: c.lui zero, -24
-0x21 0x70 # NOHINTS: invalid instruction encoding
-0x25 0x70 # GOOD: c.lui zero, -23
-0x25 0x70 # NOHINTS: invalid instruction encoding
-0x29 0x70 # GOOD: c.lui zero, -22
-0x29 0x70 # NOHINTS: invalid instruction encoding
-0x2D 0x70 # GOOD: c.lui zero, -21
-0x2D 0x70 # NOHINTS: invalid instruction encoding
-0x31 0x70 # GOOD: c.lui zero, -20
-0x31 0x70 # NOHINTS: invalid instruction encoding
-0x35 0x70 # GOOD: c.lui zero, -19
-0x35 0x70 # NOHINTS: invalid instruction encoding
-0x39 0x70 # GOOD: c.lui zero, -18
-0x39 0x70 # NOHINTS: invalid instruction encoding
-0x3D 0x70 # GOOD: c.lui zero, -17
-0x3D 0x70 # NOHINTS: invalid instruction encoding
-0x41 0x70 # GOOD: c.lui zero, -16
-0x41 0x70 # NOHINTS: invalid instruction encoding
-0x45 0x70 # GOOD: c.lui zero, -15
-0x45 0x70 # NOHINTS: invalid instruction encoding
-0x49 0x70 # GOOD: c.lui zero, -14
-0x49 0x70 # NOHINTS: invalid instruction encoding
-0x4D 0x70 # GOOD: c.lui zero, -13
-0x4D 0x70 # NOHINTS: invalid instruction encoding
-0x51 0x70 # GOOD: c.lui zero, -12
-0x51 0x70 # NOHINTS: invalid instruction encoding
-0x55 0x70 # GOOD: c.lui zero, -11
-0x55 0x70 # NOHINTS: invalid instruction encoding
-0x59 0x70 # GOOD: c.lui zero, -10
-0x59 0x70 # NOHINTS: invalid instruction encoding
-0x5D 0x70 # GOOD: c.lui zero, -9
-0x5D 0x70 # NOHINTS: invalid instruction encoding
-0x61 0x70 # GOOD: c.lui zero, -8
-0x61 0x70 # NOHINTS: invalid instruction encoding
-0x65 0x70 # GOOD: c.lui zero, -7
-0x65 0x70 # NOHINTS: invalid instruction encoding
-0x69 0x70 # GOOD: c.lui zero, -6
-0x69 0x70 # NOHINTS: invalid instruction encoding
-0x6D 0x70 # GOOD: c.lui zero, -5
-0x6D 0x70 # NOHINTS: invalid instruction encoding
-0x71 0x70 # GOOD: c.lui zero, -4
-0x71 0x70 # NOHINTS: invalid instruction encoding
-0x75 0x70 # GOOD: c.lui zero, -3
-0x75 0x70 # NOHINTS: invalid instruction encoding
-0x79 0x70 # GOOD: c.lui zero, -2
-0x79 0x70 # NOHINTS: invalid instruction encoding
-0x7D 0x70 # GOOD: c.lui zero, -1
-0x7D 0x70 # NOHINTS: invalid instruction encoding
-0x81 0x60 # BAD: invalid instruction encoding
-0x81 0x60 # MOP: c.mop.1
-0x85 0x60 # GOOD: c.lui ra, 1
-0x89 0x60 # GOOD: c.lui ra, 2
-0x8D 0x60 # GOOD: c.lui ra, 3
-0x91 0x60 # GOOD: c.lui ra, 4
-0x95 0x60 # GOOD: c.lui ra, 5
-0x99 0x60 # GOOD: c.lui ra, 6
-0x9D 0x60 # GOOD: c.lui ra, 7
-0xA1 0x60 # GOOD: c.lui ra, 8
-0xA5 0x60 # GOOD: c.lui ra, 9
-0xA9 0x60 # GOOD: c.lui ra, 10
-0xAD 0x60 # GOOD: c.lui ra, 11
-0xB1 0x60 # GOOD: c.lui ra, 12
-0xB5 0x60 # GOOD: c.lui ra, 13
-0xB9 0x60 # GOOD: c.lui ra, 14
-0xBD 0x60 # GOOD: c.lui ra, 15
-0xC1 0x60 # GOOD: c.lui ra, 16
-0xC5 0x60 # GOOD: c.lui ra, 17
-0xC9 0x60 # GOOD: c.lui ra, 18
-0xCD 0x60 # GOOD: c.lui ra, 19
-0xD1 0x60 # GOOD: c.lui ra, 20
-0xD5 0x60 # GOOD: c.lui ra, 21
-0xD9 0x60 # GOOD: c.lui ra, 22
-0xDD 0x60 # GOOD: c.lui ra, 23
-0xE1 0x60 # GOOD: c.lui ra, 24
-0xE5 0x60 # GOOD: c.lui ra, 25
-0xE9 0x60 # GOOD: c.lui ra, 26
-0xED 0x60 # GOOD: c.lui ra, 27
-0xF1 0x60 # GOOD: c.lui ra, 28
-0xF5 0x60 # GOOD: c.lui ra, 29
-0xF9 0x60 # GOOD: c.lui ra, 30
-0xFD 0x60 # GOOD: c.lui ra, 31
-0x81 0x70 # GOOD: c.lui ra, 1048544
-0x85 0x70 # GOOD: c.lui ra, 1048545
-0x89 0x70 # GOOD: c.lui ra, 1048546
-0x8D 0x70 # GOOD: c.lui ra, 1048547
-0x91 0x70 # GOOD: c.lui ra, 1048548
-0x95 0x70 # GOOD: c.lui ra, 1048549
-0x99 0x70 # GOOD: c.lui ra, 1048550
-0x9D 0x70 # GOOD: c.lui ra, 1048551
-0xA1 0x70 # GOOD: c.lui ra, 1048552
-0xA5 0x70 # GOOD: c.lui ra, 1048553
-0xA9 0x70 # GOOD: c.lui ra, 1048554
-0xAD 0x70 # GOOD: c.lui ra, 1048555
-0xB1 0x70 # GOOD: c.lui ra, 1048556
-0xB5 0x70 # GOOD: c.lui ra, 1048557
-0xB9 0x70 # GOOD: c.lui ra, 1048558
-0xBD 0x70 # GOOD: c.lui ra, 1048559
-0xC1 0x70 # GOOD: c.lui ra, 1048560
-0xC5 0x70 # GOOD: c.lui ra, 1048561
-0xC9 0x70 # GOOD: c.lui ra, 1048562
-0xCD 0x70 # GOOD: c.lui ra, 1048563
-0xD1 0x70 # GOOD: c.lui ra, 1048564
-0xD5 0x70 # GOOD: c.lui ra, 1048565
-0xD9 0x70 # GOOD: c.lui ra, 1048566
-0xDD 0x70 # GOOD: c.lui ra, 1048567
-0xE1 0x70 # GOOD: c.lui ra, 1048568
-0xE5 0x70 # GOOD: c.lui ra, 1048569
-0xE9 0x70 # GOOD: c.lui ra, 1048570
-0xED 0x70 # GOOD: c.lui ra, 1048571
-0xF1 0x70 # GOOD: c.lui ra, 1048572
-0xF5 0x70 # GOOD: c.lui ra, 1048573
-0xF9 0x70 # GOOD: c.lui ra, 1048574
-0xFD 0x70 # GOOD: c.lui ra, 1048575
-0x81 0x61 # BAD: invalid instruction encoding
-0x81 0x61 # MOP: c.mop.3
-0x85 0x61 # GOOD: c.lui gp, 1
-0x89 0x61 # GOOD: c.lui gp, 2
-0x8D 0x61 # GOOD: c.lui gp, 3
-0x91 0x61 # GOOD: c.lui gp, 4
-0x95 0x61 # GOOD: c.lui gp, 5
-0x99 0x61 # GOOD: c.lui gp, 6
-0x9D 0x61 # GOOD: c.lui gp, 7
-0xA1 0x61 # GOOD: c.lui gp, 8
-0xA5 0x61 # GOOD: c.lui gp, 9
-0xA9 0x61 # GOOD: c.lui gp, 10
-0xAD 0x61 # GOOD: c.lui gp, 11
-0xB1 0x61 # GOOD: c.lui gp, 12
-0xB5 0x61 # GOOD: c.lui gp, 13
-0xB9 0x61 # GOOD: c.lui gp, 14
-0xBD 0x61 # GOOD: c.lui gp, 15
-0xC1 0x61 # GOOD: c.lui gp, 16
-0xC5 0x61 # GOOD: c.lui gp, 17
-0xC9 0x61 # GOOD: c.lui gp, 18
-0xCD 0x61 # GOOD: c.lui gp, 19
-0xD1 0x61 # GOOD: c.lui gp, 20
-0xD5 0x61 # GOOD: c.lui gp, 21
-0xD9 0x61 # GOOD: c.lui gp, 22
-0xDD 0x61 # GOOD: c.lui gp, 23
-0xE1 0x61 # GOOD: c.lui gp, 24
-0xE5 0x61 # GOOD: c.lui gp, 25
-0xE9 0x61 # GOOD: c.lui gp, 26
-0xED 0x61 # GOOD: c.lui gp, 27
-0xF1 0x61 # GOOD: c.lui gp, 28
-0xF5 0x61 # GOOD: c.lui gp, 29
-0xF9 0x61 # GOOD: c.lui gp, 30
-0xFD 0x61 # GOOD: c.lui gp, 31
-0x81 0x71 # GOOD: c.lui gp, 1048544
-0x85 0x71 # GOOD: c.lui gp, 1048545
-0x89 0x71 # GOOD: c.lui gp, 1048546
-0x8D 0x71 # GOOD: c.lui gp, 1048547
-0x91 0x71 # GOOD: c.lui gp, 1048548
-0x95 0x71 # GOOD: c.lui gp, 1048549
-0x99 0x71 # GOOD: c.lui gp, 1048550
-0x9D 0x71 # GOOD: c.lui gp, 1048551
-0xA1 0x71 # GOOD: c.lui gp, 1048552
-0xA5 0x71 # GOOD: c.lui gp, 1048553
-0xA9 0x71 # GOOD: c.lui gp, 1048554
-0xAD 0x71 # GOOD: c.lui gp, 1048555
-0xB1 0x71 # GOOD: c.lui gp, 1048556
-0xB5 0x71 # GOOD: c.lui gp, 1048557
-0xB9 0x71 # GOOD: c.lui gp, 1048558
-0xBD 0x71 # GOOD: c.lui gp, 1048559
-0xC1 0x71 # GOOD: c.lui gp, 1048560
-0xC5 0x71 # GOOD: c.lui gp, 1048561
-0xC9 0x71 # GOOD: c.lui gp, 1048562
-0xCD 0x71 # GOOD: c.lui gp, 1048563
-0xD1 0x71 # GOOD: c.lui gp, 1048564
-0xD5 0x71 # GOOD: c.lui gp, 1048565
-0xD9 0x71 # GOOD: c.lui gp, 1048566
-0xDD 0x71 # GOOD: c.lui gp, 1048567
-0xE1 0x71 # GOOD: c.lui gp, 1048568
-0xE5 0x71 # GOOD: c.lui gp, 1048569
-0xE9 0x71 # GOOD: c.lui gp, 1048570
-0xED 0x71 # GOOD: c.lui gp, 1048571
-0xF1 0x71 # GOOD: c.lui gp, 1048572
-0xF5 0x71 # GOOD: c.lui gp, 1048573
-0xF9 0x71 # GOOD: c.lui gp, 1048574
-0xFD 0x71 # GOOD: c.lui gp, 1048575
-0x01 0x62 # BAD: invalid instruction encoding
-0x05 0x62 # GOOD: c.lui tp, 1
-0x09 0x62 # GOOD: c.lui tp, 2
-0x0D 0x62 # GOOD: c.lui tp, 3
-0x11 0x62 # GOOD: c.lui tp, 4
-0x15 0x62 # GOOD: c.lui tp, 5
-0x19 0x62 # GOOD: c.lui tp, 6
-0x1D 0x62 # GOOD: c.lui tp, 7
-0x21 0x62 # GOOD: c.lui tp, 8
-0x25 0x62 # GOOD: c.lui tp, 9
-0x29 0x62 # GOOD: c.lui tp, 10
-0x2D 0x62 # GOOD: c.lui tp, 11
-0x31 0x62 # GOOD: c.lui tp, 12
-0x35 0x62 # GOOD: c.lui tp, 13
-0x39 0x62 # GOOD: c.lui tp, 14
-0x3D 0x62 # GOOD: c.lui tp, 15
-0x41 0x62 # GOOD: c.lui tp, 16
-0x45 0x62 # GOOD: c.lui tp, 17
-0x49 0x62 # GOOD: c.lui tp, 18
-0x4D 0x62 # GOOD: c.lui tp, 19
-0x51 0x62 # GOOD: c.lui tp, 20
-0x55 0x62 # GOOD: c.lui tp, 21
-0x59 0x62 # GOOD: c.lui tp, 22
-0x5D 0x62 # GOOD: c.lui tp, 23
-0x61 0x62 # GOOD: c.lui tp, 24
-0x65 0x62 # GOOD: c.lui tp, 25
-0x69 0x62 # GOOD: c.lui tp, 26
-0x6D 0x62 # GOOD: c.lui tp, 27
-0x71 0x62 # GOOD: c.lui tp, 28
-0x75 0x62 # GOOD: c.lui tp, 29
-0x79 0x62 # GOOD: c.lui tp, 30
-0x7D 0x62 # GOOD: c.lui tp, 31
-0x01 0x72 # GOOD: c.lui tp, 1048544
-0x05 0x72 # GOOD: c.lui tp, 1048545
-0x09 0x72 # GOOD: c.lui tp, 1048546
-0x0D 0x72 # GOOD: c.lui tp, 1048547
-0x11 0x72 # GOOD: c.lui tp, 1048548
-0x15 0x72 # GOOD: c.lui tp, 1048549
-0x19 0x72 # GOOD: c.lui tp, 1048550
-0x1D 0x72 # GOOD: c.lui tp, 1048551
-0x21 0x72 # GOOD: c.lui tp, 1048552
-0x25 0x72 # GOOD: c.lui tp, 1048553
-0x29 0x72 # GOOD: c.lui tp, 1048554
-0x2D 0x72 # GOOD: c.lui tp, 1048555
-0x31 0x72 # GOOD: c.lui tp, 1048556
-0x35 0x72 # GOOD: c.lui tp, 1048557
-0x39 0x72 # GOOD: c.lui tp, 1048558
-0x3D 0x72 # GOOD: c.lui tp, 1048559
-0x41 0x72 # GOOD: c.lui tp, 1048560
-0x45 0x72 # GOOD: c.lui tp, 1048561
-0x49 0x72 # GOOD: c.lui tp, 1048562
-0x4D 0x72 # GOOD: c.lui tp, 1048563
-0x51 0x72 # GOOD: c.lui tp, 1048564
-0x55 0x72 # GOOD: c.lui tp, 1048565
-0x59 0x72 # GOOD: c.lui tp, 1048566
-0x5D 0x72 # GOOD: c.lui tp, 1048567
-0x61 0x72 # GOOD: c.lui tp, 1048568
-0x65 0x72 # GOOD: c.lui tp, 1048569
-0x69 0x72 # GOOD: c.lui tp, 1048570
-0x6D 0x72 # GOOD: c.lui tp, 1048571
-0x71 0x72 # GOOD: c.lui tp, 1048572
-0x75 0x72 # GOOD: c.lui tp, 1048573
-0x79 0x72 # GOOD: c.lui tp, 1048574
-0x7D 0x72 # GOOD: c.lui tp, 1048575
-0x81 0x62 # BAD: invalid instruction encoding
-0x81 0x62 # MOP: c.mop.5
-0x85 0x62 # GOOD: c.lui t0, 1
-0x89 0x62 # GOOD: c.lui t0, 2
-0x8D 0x62 # GOOD: c.lui t0, 3
-0x91 0x62 # GOOD: c.lui t0, 4
-0x95 0x62 # GOOD: c.lui t0, 5
-0x99 0x62 # GOOD: c.lui t0, 6
-0x9D 0x62 # GOOD: c.lui t0, 7
-0xA1 0x62 # GOOD: c.lui t0, 8
-0xA5 0x62 # GOOD: c.lui t0, 9
-0xA9 0x62 # GOOD: c.lui t0, 10
-0xAD 0x62 # GOOD: c.lui t0, 11
-0xB1 0x62 # GOOD: c.lui t0, 12
-0xB5 0x62 # GOOD: c.lui t0, 13
-0xB9 0x62 # GOOD: c.lui t0, 14
-0xBD 0x62 # GOOD: c.lui t0, 15
-0xC1 0x62 # GOOD: c.lui t0, 16
-0xC5 0x62 # GOOD: c.lui t0, 17
-0xC9 0x62 # GOOD: c.lui t0, 18
-0xCD 0x62 # GOOD: c.lui t0, 19
-0xD1 0x62 # GOOD: c.lui t0, 20
-0xD5 0x62 # GOOD: c.lui t0, 21
-0xD9 0x62 # GOOD: c.lui t0, 22
-0xDD 0x62 # GOOD: c.lui t0, 23
-0xE1 0x62 # GOOD: c.lui t0, 24
-0xE5 0x62 # GOOD: c.lui t0, 25
-0xE9 0x62 # GOOD: c.lui t0, 26
-0xED 0x62 # GOOD: c.lui t0, 27
-0xF1 0x62 # GOOD: c.lui t0, 28
-0xF5 0x62 # GOOD: c.lui t0, 29
-0xF9 0x62 # GOOD: c.lui t0, 30
-0xFD 0x62 # GOOD: c.lui t0, 31
-0x81 0x72 # GOOD: c.lui t0, 1048544
-0x85 0x72 # GOOD: c.lui t0, 1048545
-0x89 0x72 # GOOD: c.lui t0, 1048546
-0x8D 0x72 # GOOD: c.lui t0, 1048547
-0x91 0x72 # GOOD: c.lui t0, 1048548
-0x95 0x72 # GOOD: c.lui t0, 1048549
-0x99 0x72 # GOOD: c.lui t0, 1048550
-0x9D 0x72 # GOOD: c.lui t0, 1048551
-0xA1 0x72 # GOOD: c.lui t0, 1048552
-0xA5 0x72 # GOOD: c.lui t0, 1048553
-0xA9 0x72 # GOOD: c.lui t0, 1048554
-0xAD 0x72 # GOOD: c.lui t0, 1048555
-0xB1 0x72 # GOOD: c.lui t0, 1048556
-0xB5 0x72 # GOOD: c.lui t0, 1048557
-0xB9 0x72 # GOOD: c.lui t0, 1048558
-0xBD 0x72 # GOOD: c.lui t0, 1048559
-0xC1 0x72 # GOOD: c.lui t0, 1048560
-0xC5 0x72 # GOOD: c.lui t0, 1048561
-0xC9 0x72 # GOOD: c.lui t0, 1048562
-0xCD 0x72 # GOOD: c.lui t0, 1048563
-0xD1 0x72 # GOOD: c.lui t0, 1048564
-0xD5 0x72 # GOOD: c.lui t0, 1048565
-0xD9 0x72 # GOOD: c.lui t0, 1048566
-0xDD 0x72 # GOOD: c.lui t0, 1048567
-0xE1 0x72 # GOOD: c.lui t0, 1048568
-0xE5 0x72 # GOOD: c.lui t0, 1048569
-0xE9 0x72 # GOOD: c.lui t0, 1048570
-0xED 0x72 # GOOD: c.lui t0, 1048571
-0xF1 0x72 # GOOD: c.lui t0, 1048572
-0xF5 0x72 # GOOD: c.lui t0, 1048573
-0xF9 0x72 # GOOD: c.lui t0, 1048574
-0xFD 0x72 # GOOD: c.lui t0, 1048575
-0x01 0x63 # BAD: invalid instruction encoding
-0x05 0x63 # GOOD: c.lui t1, 1
-0x09 0x63 # GOOD: c.lui t1, 2
-0x0D 0x63 # GOOD: c.lui t1, 3
-0x11 0x63 # GOOD: c.lui t1, 4
-0x15 0x63 # GOOD: c.lui t1, 5
-0x19 0x63 # GOOD: c.lui t1, 6
-0x1D 0x63 # GOOD: c.lui t1, 7
-0x21 0x63 # GOOD: c.lui t1, 8
-0x25 0x63 # GOOD: c.lui t1, 9
-0x29 0x63 # GOOD: c.lui t1, 10
-0x2D 0x63 # GOOD: c.lui t1, 11
-0x31 0x63 # GOOD: c.lui t1, 12
-0x35 0x63 # GOOD: c.lui t1, 13
-0x39 0x63 # GOOD: c.lui t1, 14
-0x3D 0x63 # GOOD: c.lui t1, 15
-0x41 0x63 # GOOD: c.lui t1, 16
-0x45 0x63 # GOOD: c.lui t1, 17
-0x49 0x63 # GOOD: c.lui t1, 18
-0x4D 0x63 # GOOD: c.lui t1, 19
-0x51 0x63 # GOOD: c.lui t1, 20
-0x55 0x63 # GOOD: c.lui t1, 21
-0x59 0x63 # GOOD: c.lui t1, 22
-0x5D 0x63 # GOOD: c.lui t1, 23
-0x61 0x63 # GOOD: c.lui t1, 24
-0x65 0x63 # GOOD: c.lui t1, 25
-0x69 0x63 # GOOD: c.lui t1, 26
-0x6D 0x63 # GOOD: c.lui t1, 27
-0x71 0x63 # GOOD: c.lui t1, 28
-0x75 0x63 # GOOD: c.lui t1, 29
-0x79 0x63 # GOOD: c.lui t1, 30
-0x7D 0x63 # GOOD: c.lui t1, 31
-0x01 0x73 # GOOD: c.lui t1, 1048544
-0x05 0x73 # GOOD: c.lui t1, 1048545
-0x09 0x73 # GOOD: c.lui t1, 1048546
-0x0D 0x73 # GOOD: c.lui t1, 1048547
-0x11 0x73 # GOOD: c.lui t1, 1048548
-0x15 0x73 # GOOD: c.lui t1, 1048549
-0x19 0x73 # GOOD: c.lui t1, 1048550
-0x1D 0x73 # GOOD: c.lui t1, 1048551
-0x21 0x73 # GOOD: c.lui t1, 1048552
-0x25 0x73 # GOOD: c.lui t1, 1048553
-0x29 0x73 # GOOD: c.lui t1, 1048554
-0x2D 0x73 # GOOD: c.lui t1, 1048555
-0x31 0x73 # GOOD: c.lui t1, 1048556
-0x35 0x73 # GOOD: c.lui t1, 1048557
-0x39 0x73 # GOOD: c.lui t1, 1048558
-0x3D 0x73 # GOOD: c.lui t1, 1048559
-0x41 0x73 # GOOD: c.lui t1, 1048560
-0x45 0x73 # GOOD: c.lui t1, 1048561
-0x49 0x73 # GOOD: c.lui t1, 1048562
-0x4D 0x73 # GOOD: c.lui t1, 1048563
-0x51 0x73 # GOOD: c.lui t1, 1048564
-0x55 0x73 # G...
[truncated]

@topperc
Copy link
Collaborator Author

topperc commented Mar 31, 2025

CC @paulhuggett

Copy link

github-actions bot commented Mar 31, 2025

✅ With the latest revision this PR passed the C/C++ code formatter.

@topperc topperc merged commit e3adf6b into llvm:main Apr 1, 2025
8 of 11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backend:RISC-V mc Machine (object) code
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants