From 138943fe25f91dc2be46b97a7d6dd2426ddfa2c7 Mon Sep 17 00:00:00 2001 From: Derek Schuff Date: Tue, 10 May 2016 00:14:07 +0000 Subject: [WebAssembly] Disable 128-bit shift libcalls Currently the signature of the functions i128(i128, i32) aka void(i32, i64, i64, i32) doesn't match the signature of the call emitted by the default lowering, void(i32, i64, i64). llvm-svn: 268991 --- llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp') diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp index 4839a324214..3292dc485d8 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp @@ -135,6 +135,13 @@ WebAssemblyTargetLowering::WebAssemblyTargetLowering( // Trap lowers to wasm unreachable setOperationAction(ISD::TRAP, MVT::Other, Legal); + + // Disable 128-bit shift libcalls. Currently the signature of the functions + // i128(i128, i32) aka void(i32, i64, i64, i32) doesn't match the signature + // of the call emitted by the default lowering, void(i32, i64, i64). + setLibcallName(RTLIB::SRL_I128, nullptr); + setLibcallName(RTLIB::SRA_I128, nullptr); + setLibcallName(RTLIB::SHL_I128, nullptr); } FastISel *WebAssemblyTargetLowering::createFastISel( -- cgit v1.2.3