[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