forked from OSchip/llvm-project
[WebAssembly] support Memory64 in target_features section
Differential Revision: https://reviews.llvm.org/D112266
This commit is contained in:
parent
97ddf49e43
commit
5694dbccc3
llvm
lib/Target/WebAssembly
test
|
@ -503,6 +503,15 @@ void WebAssemblyAsmPrinter::EmitTargetFeatures(Module &M) {
|
||||||
// This pseudo-feature tells the linker whether shared memory would be safe
|
// This pseudo-feature tells the linker whether shared memory would be safe
|
||||||
EmitFeature("shared-mem");
|
EmitFeature("shared-mem");
|
||||||
|
|
||||||
|
// This is an "architecture", not a "feature", but we emit it as such for
|
||||||
|
// the benefit of tools like Binaryen and consistency with other producers.
|
||||||
|
// FIXME: Subtarget is null here, so can't Subtarget->hasAddr64() ?
|
||||||
|
if (M.getDataLayout().getMaxPointerSize() == 8) {
|
||||||
|
// Can't use EmitFeature since "wasm-feature-memory64" is not a module
|
||||||
|
// flag.
|
||||||
|
EmittedFeatures.push_back({wasm::WASM_FEATURE_PREFIX_USED, "memory64"});
|
||||||
|
}
|
||||||
|
|
||||||
if (EmittedFeatures.size() == 0)
|
if (EmittedFeatures.size() == 0)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
; RUN: llc < %s | FileCheck %s
|
||||||
|
|
||||||
|
; Test that wasm64 is properly emitted into the target features section
|
||||||
|
|
||||||
|
target triple = "wasm64-unknown-unknown"
|
||||||
|
|
||||||
|
define void @foo() {
|
||||||
|
ret void
|
||||||
|
}
|
||||||
|
|
||||||
|
; CHECK-LABEL: .custom_section.target_features
|
||||||
|
; CHECK-NEXT: .int8 1
|
||||||
|
; CHECK-NEXT: .int8 43
|
||||||
|
; CHECK-NEXT: .int8 8
|
||||||
|
; CHECK-NEXT: .ascii "memory64"
|
|
@ -129,6 +129,12 @@
|
||||||
; CHECK-NEXT: Offset: 1073
|
; CHECK-NEXT: Offset: 1073
|
||||||
; CHECK-NEXT: Name: producers
|
; CHECK-NEXT: Name: producers
|
||||||
; CHECK-NEXT: }
|
; CHECK-NEXT: }
|
||||||
|
; CHECK-NEXT: Section {
|
||||||
|
; CHECK-NEXT: Type: CUSTOM (0x0)
|
||||||
|
; CHECK-NEXT: Size: 11
|
||||||
|
; CHECK-NEXT: Offset: 1166
|
||||||
|
; CHECK-NEXT: Name: target_features
|
||||||
|
; CHECK-NEXT: }
|
||||||
; CHECK-NEXT: ]
|
; CHECK-NEXT: ]
|
||||||
; CHECK-NEXT: Relocations [
|
; CHECK-NEXT: Relocations [
|
||||||
; CHECK-NEXT: Section (7) DATA {
|
; CHECK-NEXT: Section (7) DATA {
|
||||||
|
|
Loading…
Reference in New Issue