[clang] [llvm] Add support for flag output operand "=@cc" for SystemZ. (PR #125970)

Ulrich Weigand via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 12 10:46:39 PST 2025


================
@@ -115,10 +115,19 @@ class LLVM_LIBRARY_VISIBILITY SystemZTargetInfo : public TargetInfo {
     return RegName == "r15";
   }
 
+  // CC has interval [0, 4).
+  unsigned getFlagOutputCCUpperBound() const override { return 4; }
   bool validateAsmConstraint(const char *&Name,
                              TargetInfo::ConstraintInfo &info) const override;
 
   std::string convertConstraint(const char *&Constraint) const override {
+    if (llvm::StringRef(Constraint).starts_with("@cc")) {
+      auto Len = llvm::StringRef("@cc").size();
+      std::string Converted =
+          std::string("{") + std::string(Constraint, Len) + std::string("}");
+      Constraint += Len - 1;
----------------
uweigand wrote:

And then all of these are just constants.

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


More information about the cfe-commits mailing list