[PATCH] D133863: [RISCV] Add MC support of RISCV zcmt Extension
Jessica Clarke via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Sep 30 10:17:05 PDT 2022
jrtc27 added inline comments.
================
Comment at: llvm/lib/Target/RISCV/RISCV.td:366
+ "'Zcmt' (table jump instuctions for code-size reduction)",
+ [FeatureExtZca]>; // TODO: add Zicsr as another dependence
+def HasStdExtZcmt : Predicate<"Subtarget->hasStdExtZcmt() && !Subtarget->hasStdExtC()">,
----------------
This is an odd implication, Zcmt works just fine without Zca?
================
Comment at: llvm/lib/Target/RISCV/RISCV.td:367
+ [FeatureExtZca]>; // TODO: add Zicsr as another dependence
+def HasStdExtZcmt : Predicate<"Subtarget->hasStdExtZcmt() && !Subtarget->hasStdExtC()">,
+ AssemblerPredicate<(all_of FeatureExtZcmt, (not FeatureStdExtC)),
----------------
craig.topper wrote:
> reames wrote:
> > Wait, Zcmt can't be enabled if C is? That seems odd...
> I think Zcmt reuses encodings from the FP part of C. That's why C was split into Zca, Zcf, and Zcd.
Shouldn't the conflict be enforced at a higher level? Otherwise you're silently making +c,+zcmt resolve to +c here.
================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoZc.td:19
+//===----------------------------------------------------------------------===//
+def uimm8 : Operand<XLenVT>,
+ ImmLeaf<XLenVT, [{return isUInt<8>(Imm);}]> {
----------------
Blank line
================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoZc.td:20
+def uimm8 : Operand<XLenVT>,
+ ImmLeaf<XLenVT, [{return isUInt<8>(Imm);}]> {
+ let ParserMatchClass = UImmAsmOperand<8>;
----------------
This should line up?
================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoZc.td:28
+ return false;
+ return MCOp.isBareSymbolRef();
+ }];
----------------
I don't think we want this? `cm.jt sym` isn't a meaningful thing.
================
Comment at: llvm/lib/Target/RISCV/RISCVSystemOperands.td:383
+//===-----------------------------------------------
+// Table jump base CSR
+//===-----------------------------------------------
----------------
Capitalise (and maybe Jump Vector Table, assuming that's what jvt stands for? these headings come from the priv spec but that's woefully outdated for all the new asciidoc extensions...)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D133863/new/
https://reviews.llvm.org/D133863
More information about the llvm-commits
mailing list