[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).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@268991 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Derek Schuff 2016-05-10 00:14:07 +00:00
parent 6d523e1b0e
commit 42a5196098

View File

@ -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(