diff options
author | Derek Schuff <dschuff@chromium.org> | 2021-07-09 15:15:35 -0700 |
---|---|---|
committer | Derek Schuff <dschuff@chromium.org> | 2021-07-09 16:51:36 -0700 |
commit | ac02baab48c2ff512e40140e2fe6845d2b6a636f (patch) | |
tree | 21055751a5bef29eb7b2ea6a294d5a9014c0e4b0 /llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp | |
parent | fc01fafa3e7f05c2cc88352d3e07d4bff13b4f3a (diff) | |
download | llvm-ac02baab48c2ff512e40140e2fe6845d2b6a636f.zip llvm-ac02baab48c2ff512e40140e2fe6845d2b6a636f.tar.gz llvm-ac02baab48c2ff512e40140e2fe6845d2b6a636f.tar.bz2 |
WebAssembly: Update datalayout to match fp128 ABI change
This fix goes along with d1a96e906cc03a95cfd41a1f22bdda92651250c7
and makes the fp128 alignment match clang's long double alignment.
Differential Revision: https://reviews.llvm.org/D105749
Diffstat (limited to 'llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp b/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp index a0c7c77..6a37903 100644 --- a/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp +++ b/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp @@ -120,12 +120,17 @@ WebAssemblyTargetMachine::WebAssemblyTargetMachine( const Target &T, const Triple &TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Optional<Reloc::Model> RM, Optional<CodeModel::Model> CM, CodeGenOpt::Level OL, bool JIT) - : LLVMTargetMachine(T, - TT.isArch64Bit() - ? "e-m:e-p:64:64-i64:64-n32:64-S128-ni:1" - : "e-m:e-p:32:32-i64:64-n32:64-S128-ni:1", - TT, CPU, FS, Options, getEffectiveRelocModel(RM, TT), - getEffectiveCodeModel(CM, CodeModel::Large), OL), + : LLVMTargetMachine( + T, + TT.isArch64Bit() + ? (TT.isOSEmscripten() + ? "e-m:e-p:64:64-i64:64-f128:64-n32:64-S128-ni:1" + : "e-m:e-p:64:64-i64:64-n32:64-S128-ni:1") + : (TT.isOSEmscripten() + ? "e-m:e-p:32:32-i64:64-f128:64-n32:64-S128-ni:1" + : "e-m:e-p:32:32-i64:64-n32:64-S128-ni:1"), + TT, CPU, FS, Options, getEffectiveRelocModel(RM, TT), + getEffectiveCodeModel(CM, CodeModel::Large), OL), TLOF(new WebAssemblyTargetObjectFile()) { // WebAssembly type-checks instructions, but a noreturn function with a return // type that doesn't match the context will cause a check failure. So we lower |