================ @@ -717,8 +717,15 @@ bool TargetInfo::validateOutputConstraint(ConstraintInfo &Info) const { if (*Name != '=' && *Name != '+') return false; - if (*Name == '+') + if (*Name == '+') { Info.setIsReadWrite(); + // To align with GCC asm: "=f" is not allowed, the + // operand constraints must select a class with a single reg. + auto Flag = Name + 1; + if (Flag && *Flag == 'f') { + return false; + } + } ---------------- phoebewang wrote:
Need to change from here: https://github.com/llvm/llvm-project/blob/main/clang/lib/Basic/Targets/X86.cpp#L1436 https://github.com/llvm/llvm-project/pull/75208 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits