[llvm] [X86] Use MCRegister instead of int64_t in X86MCExpr. NFC (PR #106569)

via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 29 08:25:05 PDT 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-backend-x86

Author: Craig Topper (topperc)

<details>
<summary>Changes</summary>



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


2 Files Affected:

- (modified) llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp (+3-3) 
- (modified) llvm/lib/Target/X86/MCTargetDesc/X86MCExpr.h (+7-7) 


``````````diff
diff --git a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
index 864b7d8e769ab1..2b6b0ad16bcf76 100644
--- a/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
+++ b/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
@@ -2789,7 +2789,7 @@ bool X86AsmParser::parseATTOperand(OperandVector &Operands) {
       if (auto *RE = dyn_cast<X86MCExpr>(Expr)) {
         // Segment Register. Reset Expr and copy value to register.
         Expr = nullptr;
-        Reg = RE->getRegNo();
+        Reg = RE->getReg();
 
         // Check the register.
         if (Reg == X86::EIZ || Reg == X86::RIZ)
@@ -3052,7 +3052,7 @@ bool X86AsmParser::ParseMemOperand(unsigned SegReg, const MCExpr *Disp,
       return true;
 
     // Check the register.
-    BaseReg = cast<X86MCExpr>(E)->getRegNo();
+    BaseReg = cast<X86MCExpr>(E)->getReg();
     if (BaseReg == X86::EIZ || BaseReg == X86::RIZ)
       return Error(BaseLoc, "eiz and riz can only be used as index registers",
                    SMRange(BaseLoc, EndLoc));
@@ -3079,7 +3079,7 @@ bool X86AsmParser::ParseMemOperand(unsigned SegReg, const MCExpr *Disp,
           Warning(Loc, "scale factor without index register is ignored");
         Scale = 1;
       } else { // IndexReg Found.
-        IndexReg = cast<X86MCExpr>(E)->getRegNo();
+        IndexReg = cast<X86MCExpr>(E)->getReg();
 
         if (BaseReg == X86::RIP)
           return Error(Loc,
diff --git a/llvm/lib/Target/X86/MCTargetDesc/X86MCExpr.h b/llvm/lib/Target/X86/MCTargetDesc/X86MCExpr.h
index c159d30194cc64..37e15193b04357 100644
--- a/llvm/lib/Target/X86/MCTargetDesc/X86MCExpr.h
+++ b/llvm/lib/Target/X86/MCTargetDesc/X86MCExpr.h
@@ -26,16 +26,16 @@ namespace llvm {
 class X86MCExpr : public MCTargetExpr {
 
 private:
-  const int64_t RegNo; // All
+  const MCRegister Reg; // All
 
-  explicit X86MCExpr(int64_t R) : RegNo(R) {}
+  explicit X86MCExpr(MCRegister R) : Reg(R) {}
 
 public:
   /// @name Construction
   /// @{
 
-  static const X86MCExpr *create(int64_t RegNo, MCContext &Ctx) {
-    return new (Ctx) X86MCExpr(RegNo);
+  static const X86MCExpr *create(MCRegister Reg, MCContext &Ctx) {
+    return new (Ctx) X86MCExpr(Reg);
   }
 
   /// @}
@@ -43,14 +43,14 @@ class X86MCExpr : public MCTargetExpr {
   /// @{
 
   /// getSubExpr - Get the child of this expression.
-  int64_t getRegNo() const { return RegNo; }
+  MCRegister getReg() const { return Reg; }
 
   /// @}
 
   void printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const override {
     if (!MAI || MAI->getAssemblerDialect() == 0)
       OS << '%';
-    OS << X86ATTInstPrinter::getRegisterName(RegNo);
+    OS << X86ATTInstPrinter::getRegisterName(Reg);
   }
 
   bool evaluateAsRelocatableImpl(MCValue &Res, const MCAssembler *Asm,
@@ -61,7 +61,7 @@ class X86MCExpr : public MCTargetExpr {
   bool inlineAssignedExpr() const override { return true; }
   bool isEqualTo(const MCExpr *X) const override {
     if (auto *E = dyn_cast<X86MCExpr>(X))
-      return getRegNo() == E->getRegNo();
+      return getReg() == E->getReg();
     return false;
   }
   void visitUsedExpr(MCStreamer &Streamer) const override {}

``````````

</details>


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


More information about the llvm-commits mailing list