[lld] [llvm] [lld][WebAssembly] Support for the custom-page-sizes WebAssembly proposal (PR #128942)
Sam Clegg via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 28 12:28:19 PST 2025
================
@@ -0,0 +1,61 @@
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %s -o %t.o
+
+ .globl _start
+_start:
+ .functype _start () -> (i32)
+ i32.const __wasm_first_page_end
+ end_function
+
+# Add a symbol to smoke test that `__wasm_first_page_end` is absolute and not
+# relative to other data.
+ .section .data.foo,"",@
+foo:
+ .int32 0x11111111
+ .size foo, 4
+
+# RUN: wasm-ld -no-gc-sections -o %t.custom.wasm %t.o --page-size=1
+# RUN: obj2yaml %t.custom.wasm | FileCheck %s --check-prefix=CHECK-CUSTOM
+
+# CHECK-CUSTOM: - Type: MEMORY
+# CHECK-CUSTOM-NEXT: Memories:
+# CHECK-CUSTOM-NEXT: - Flags: [ ]
+# CHECK-CUSTOM-NEXT: Minimum: 0x10410
+# CHECK-CUSTOM-NEXT: PageSize: 0x1
+
+# CHECK-CUSTOM: - Type: DATA
+# CHECK-CUSTOM-NEXT: Segments:
+# CHECK-CUSTOM-NEXT: - SectionOffset: 7
+# CHECK-CUSTOM-NEXT: InitFlags: 0
+# CHECK-CUSTOM-NEXT: Offset:
+# CHECK-CUSTOM-NEXT: Opcode: I32_CONST
+# CHECK-CUSTOM-NEXT: Value: 1024
+# CHECK-CUSTOM-NEXT: Content: '11111111'
+
+# RUN: llvm-objdump --disassemble-symbols=_start %t.custom.wasm | FileCheck %s --check-prefix=CHECK-CUSTOM-DIS
+
+# CHECK-CUSTOM-DIS: <_start>:
+# CHECK-CUSTOM-DIS: i32.const 1
+# CHECK-CUSTOM-DIS-NEXT: end
+
+# RUN: wasm-ld -no-gc-sections -o %t.default.wasm %t.o
+# RUN: obj2yaml %t.default.wasm | FileCheck %s --check-prefix=CHECK-DEFAULT
+
+# CHECK-DEFAULT: - Type: MEMORY
+# CHECK-DEFAULT-NEXT: Memories:
+# CHECK-DEFAULT-NEXT: Minimum: 0x2
+# CHECK-DEFAULT-NEXT: - Type: GLOBAL
+
+# CHECK-DEFAULT: - Type: DATA
+# CHECK-DEFAULT-NEXT: Segments:
+# CHECK-DEFAULT-NEXT: - SectionOffset: 7
+# CHECK-DEFAULT-NEXT: InitFlags: 0
+# CHECK-DEFAULT-NEXT: Offset:
+# CHECK-DEFAULT-NEXT: Opcode: I32_CONST
+# CHECK-DEFAULT-NEXT: Value: 1024
+# CHECK-DEFAULT-NEXT: Content: '11111111'
----------------
sbc100 wrote:
You should use a second check called `CHECK` or `CHECK-BOTH` here to avoid repeating yourself (`--check-prefixes=FOO,BAR`).. but maybe overkill. lgtm either way.
https://github.com/llvm/llvm-project/pull/128942
More information about the llvm-commits
mailing list