From 90c200464e00b6004e9f91b18a33cfd51202f3d8 Mon Sep 17 00:00:00 2001 From: Dan Gohman Date: Fri, 4 Dec 2015 18:27:03 +0000 Subject: [PATCH] [WebAssembly] Add several more calling conventions to the supported list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254741 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Target/WebAssembly/WebAssemblyISelLowering.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp b/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp index b651855eea7..a7eba561113 100644 --- a/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp +++ b/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp @@ -260,9 +260,14 @@ static void fail(SDLoc DL, SelectionDAG &DAG, const char *msg) { // Test whether the given calling convention is supported. static bool CallingConvSupported(CallingConv::ID CallConv) { // We currently support the language-independent target-independent - // conventions. + // conventions. We don't yet have a way to annotate calls with properties like + // "cold", and we don't have any call-clobbered registers, so these are mostly + // all handled the same. return CallConv == CallingConv::C || CallConv == CallingConv::Fast || - CallConv == CallingConv::Cold; + CallConv == CallingConv::Cold || + CallConv == CallingConv::PreserveMost || + CallConv == CallingConv::PreserveAll || + CallConv == CallingConv::CXX_FAST_TLS; } SDValue -- 2.34.1