aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backend/lib/Target/RISCV/RISCV.rccdesc2
-rw-r--r--backend/unittests/Target/RISCVTargetTest.cpp9
2 files changed, 6 insertions, 5 deletions
diff --git a/backend/lib/Target/RISCV/RISCV.rccdesc b/backend/lib/Target/RISCV/RISCV.rccdesc
index bf5c288..8325777 100644
--- a/backend/lib/Target/RISCV/RISCV.rccdesc
+++ b/backend/lib/Target/RISCV/RISCV.rccdesc
@@ -488,7 +488,7 @@ instructions:
encoding: 1344531
operands:
- { kinds: [register], role: def, register_class: GPR, register_bank: GPR, name: RD }
- - { kinds: [register], role: use, register_class: GPR, register_bank: GPR, name: RS1 }
+ - { kinds: [register, frame_index], role: use, register_class: GPR, register_bank: GPR, name: RS1 }
- { kinds: [immediate, constant_pool_index, jump_table_index, global_symbol, external_symbol, block_address, mc_symbol], immediate_predicate: SIMM12, allowed_target_flags: 68, name: IMM }
num_explicit_defs: 1
flags: [produces_code, rematerializable]
diff --git a/backend/unittests/Target/RISCVTargetTest.cpp b/backend/unittests/Target/RISCVTargetTest.cpp
index 3438ec9..4e36e1e 100644
--- a/backend/unittests/Target/RISCVTargetTest.cpp
+++ b/backend/unittests/Target/RISCVTargetTest.cpp
@@ -195,10 +195,11 @@ void testInstructionFacts(TestContext &Context) {
Target->instructions().descriptors().size() ==
TargetInstructionCount + rcc::genericInstructionDescriptors().size() &&
Addi != nullptr && Addi->Name == "ADDI" && Addi->NumExplicitDefs == 1 &&
- Addi->Operands.size() == 3 && Addi->Operands.back().ImmediatePredicate &&
- Load != nullptr && Load->Flags.has(rcc::InstructionFlag::MayLoad) &&
- Load->RequiresMemoryOperands && Branch != nullptr &&
- Branch->Flags.has(rcc::InstructionFlag::Terminator) &&
+ Addi->Operands.size() == 3 &&
+ Addi->Operands[1].Kinds.contains(rcc::MachineOperand::Kind::FrameIndex) &&
+ Addi->Operands.back().ImmediatePredicate && Load != nullptr &&
+ Load->Flags.has(rcc::InstructionFlag::MayLoad) && Load->RequiresMemoryOperands &&
+ Branch != nullptr && Branch->Flags.has(rcc::InstructionFlag::Terminator) &&
Branch->Flags.has(rcc::InstructionFlag::Branch) && Floating != nullptr &&
Floating->Operands.size() == 4 && Floating->Operands.back().ImmediatePredicate &&
Floating->AllowExtraImplicitOperands && Atomic != nullptr &&