diff options
author | Derek Schuff <dschuff@google.com> | 2016-05-10 00:14:07 +0000 |
---|---|---|
committer | Derek Schuff <dschuff@google.com> | 2016-05-10 00:14:07 +0000 |
commit | 138943fe25f91dc2be46b97a7d6dd2426ddfa2c7 (patch) | |
tree | 826dd42b67fc9fefdf3b813731c2793db1f0a234 /llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp | |
parent | ffb273d21a13c7db80f58b4d9c0384ffc9dde7fe (diff) | |
download | llvm-138943fe25f91dc2be46b97a7d6dd2426ddfa2c7.zip llvm-138943fe25f91dc2be46b97a7d6dd2426ddfa2c7.tar.gz llvm-138943fe25f91dc2be46b97a7d6dd2426ddfa2c7.tar.bz2 |
[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
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp index 4839a32..3292dc4 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( |