[PATCH] D142834: [X86][MC][bugfix] Report error for mismatched modifier in inline asm and remove function getX86SubSuperRegisterOrZero

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Jan 29 21:50:03 PST 2023


craig.topper added inline comments.


================
Comment at: llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp:745
 
-MCRegister llvm::getX86SubSuperRegisterOrZero(MCRegister Reg, unsigned Size,
-                                              bool High) {
+MCRegister llvm::getX86SubSuperRegister(MCRegister Reg, unsigned Size,
+                                        bool High) {
----------------
Didn't the old name more accurately describe this function?


================
Comment at: llvm/lib/Target/X86/X86AsmPrinter.cpp:545
   case 'b': // Print QImode register
     Reg = getX86SubSuperRegister(Reg, 8);
     break;
----------------
Do we need to assert that Reg is valid? We used to have one.


================
Comment at: llvm/lib/Target/X86/X86AsmPrinter.cpp:549
     Reg = getX86SubSuperRegister(Reg, 8, true);
+    if (Reg == X86::NoRegister)
+      return true;
----------------
Reg.isValid()


================
Comment at: llvm/lib/Target/X86/X86FixupBWInsts.cpp:218
     if (!LiveRegs.contains(getX86SubSuperRegister(OrigDestReg, 16)) &&
-        !LiveRegs.contains(getX86SubSuperRegister(SuperDestReg, 8,
-                                                  /*High=*/true)))
+        (HighReg == X86::NoRegister || !LiveRegs.contains(HighReg)))
       return true;
----------------
HighReg.isValid()


================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:57580
+    Register DestReg = getX86SubSuperRegister(Res.first, Size);
+    if (DestReg != X86::NoRegister) {
       bool is64Bit = Subtarget.is64Bit();
----------------
DestReg.isValid()


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D142834/new/

https://reviews.llvm.org/D142834



More information about the llvm-commits mailing list