summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorDerek Schuff <dschuff@google.com>2016-05-10 00:14:07 +0000
committerDerek Schuff <dschuff@google.com>2016-05-10 00:14:07 +0000
commit138943fe25f91dc2be46b97a7d6dd2426ddfa2c7 (patch)
tree826dd42b67fc9fefdf3b813731c2793db1f0a234 /llvm/lib
parentffb273d21a13c7db80f58b4d9c0384ffc9dde7fe (diff)
downloadbcm5719-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')
-rw-r--r--llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp7
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(
OpenPOWER on IntegriCloud