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 | bcm5719-llvm-138943fe25f91dc2be46b97a7d6dd2426ddfa2c7.tar.gz bcm5719-llvm-138943fe25f91dc2be46b97a7d6dd2426ddfa2c7.zip |
[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 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( |