From 24632cab8a0c7485d3c7b3a77625967ff9c7958f Mon Sep 17 00:00:00 2001 From: Dimitry Andric Date: Mon, 2 Sep 2019 17:49:08 +0000 Subject: Vendor import of clang release_90 branch r370514: https://llvm.org/svn/llvm-project/cfe/branches/release_90@370514 --- lib/Basic/Targets/RISCV.cpp | 4 ++++ lib/Basic/Targets/RISCV.h | 14 ++++++++++++++ 2 files changed, 18 insertions(+) (limited to 'lib/Basic') diff --git a/lib/Basic/Targets/RISCV.cpp b/lib/Basic/Targets/RISCV.cpp index 939ac46d671b..930b825e94d2 100644 --- a/lib/Basic/Targets/RISCV.cpp +++ b/lib/Basic/Targets/RISCV.cpp @@ -60,6 +60,10 @@ bool RISCVTargetInfo::validateAsmConstraint( // A floating-point register. Info.setAllowsRegister(); return true; + case 'A': + // An address that is held in a general-purpose register. + Info.setAllowsMemory(); + return true; } } diff --git a/lib/Basic/Targets/RISCV.h b/lib/Basic/Targets/RISCV.h index ce193feaeb98..9118494a87ab 100644 --- a/lib/Basic/Targets/RISCV.h +++ b/lib/Basic/Targets/RISCV.h @@ -93,6 +93,13 @@ public: } return false; } + + void setMaxAtomicWidth() override { + MaxAtomicPromoteWidth = 128; + + if (HasA) + MaxAtomicInlineWidth = 32; + } }; class LLVM_LIBRARY_VISIBILITY RISCV64TargetInfo : public RISCVTargetInfo { public: @@ -110,6 +117,13 @@ public: } return false; } + + void setMaxAtomicWidth() override { + MaxAtomicPromoteWidth = 128; + + if (HasA) + MaxAtomicInlineWidth = 64; + } }; } // namespace targets } // namespace clang -- cgit v1.3