summaryrefslogtreecommitdiff
path: root/lib/Driver/ToolChains/Arch/AArch64.cpp
diff options
context:
space:
mode:
authorTri Vo <trong@android.com>2018-09-25 16:48:40 +0000
committerTri Vo <trong@android.com>2018-09-25 16:48:40 +0000
commit260dbbf3855227c827be14b15cac86126f1d22fe (patch)
tree390359111acec904057ce6a249bbd9f71916c51d /lib/Driver/ToolChains/Arch/AArch64.cpp
parentd6cae43ad5a45c099fa3917def61170a9fdf6c97 (diff)
downloadclang-260dbbf3855227c827be14b15cac86126f1d22fe.tar.gz
[AArch64] Support adding X[8-15,18] registers as CSRs.
Summary: Making X[8-15,18] registers call-saved is used to support CONFIG_ARM64_LSE_ATOMICS in Linux kernel. Signed-off-by: Tri Vo <trong@android.com> Reviewers: srhines, nickdesaulniers, javed.absar Reviewed By: nickdesaulniers Subscribers: kristof.beyls, jfb, cfe-commits Differential Revision: https://reviews.llvm.org/D52399 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@342990 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Driver/ToolChains/Arch/AArch64.cpp')
-rw-r--r--lib/Driver/ToolChains/Arch/AArch64.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/Driver/ToolChains/Arch/AArch64.cpp b/lib/Driver/ToolChains/Arch/AArch64.cpp
index 9488f4d6c0..c76a31a315 100644
--- a/lib/Driver/ToolChains/Arch/AArch64.cpp
+++ b/lib/Driver/ToolChains/Arch/AArch64.cpp
@@ -251,6 +251,33 @@ fp16_fml_fallthrough:
if (Args.hasArg(options::OPT_ffixed_x20))
Features.push_back("+reserve-x20");
+ if (Args.hasArg(options::OPT_fcall_saved_x8))
+ Features.push_back("+call-saved-x8");
+
+ if (Args.hasArg(options::OPT_fcall_saved_x9))
+ Features.push_back("+call-saved-x9");
+
+ if (Args.hasArg(options::OPT_fcall_saved_x10))
+ Features.push_back("+call-saved-x10");
+
+ if (Args.hasArg(options::OPT_fcall_saved_x11))
+ Features.push_back("+call-saved-x11");
+
+ if (Args.hasArg(options::OPT_fcall_saved_x12))
+ Features.push_back("+call-saved-x12");
+
+ if (Args.hasArg(options::OPT_fcall_saved_x13))
+ Features.push_back("+call-saved-x13");
+
+ if (Args.hasArg(options::OPT_fcall_saved_x14))
+ Features.push_back("+call-saved-x14");
+
+ if (Args.hasArg(options::OPT_fcall_saved_x15))
+ Features.push_back("+call-saved-x15");
+
+ if (Args.hasArg(options::OPT_fcall_saved_x18))
+ Features.push_back("+call-saved-x18");
+
if (Args.hasArg(options::OPT_mno_neg_immediates))
Features.push_back("+no-neg-immediates");
}