[clang] [llvm] [X86] Support EGPR for inline assembly. (PR #92338)
Freddy Ye via llvm-commits
llvm-commits at lists.llvm.org
Fri May 24 01:36:31 PDT 2024
================
@@ -58024,15 +58043,22 @@ X86TargetLowering::getRegForInlineAsmConstraint(const TargetRegisterInfo *TRI,
case 'r': // GENERAL_REGS
case 'l': // INDEX_REGS
if (VT == MVT::i8 || VT == MVT::i1)
- return std::make_pair(0U, &X86::GR8_NOREX2RegClass);
+ return std::make_pair(0U, Subtarget.useInlineAsmGPR32()
+ ? &X86::GR8_NOREX2RegClass
+ : &X86::GR8RegClass);
if (VT == MVT::i16)
- return std::make_pair(0U, &X86::GR16_NOREX2RegClass);
+ return std::make_pair(0U, Subtarget.useInlineAsmGPR32()
+ ? &X86::GR16_NOREX2RegClass
+ : &X86::GR16RegClass);
if (VT == MVT::i32 || VT == MVT::f32 ||
(!VT.isVector() && !Subtarget.is64Bit()))
- return std::make_pair(0U, &X86::GR32_NOREX2RegClass);
+ return std::make_pair(0U, Subtarget.useInlineAsmGPR32()
----------------
FreddyLeaf wrote:
covered by getPreserverdRegister in RA.
https://github.com/llvm/llvm-project/pull/92338
More information about the llvm-commits
mailing list