[lld][WebAssembly] Use llvm-objdump to test __wasm_init_memory
Rather than depending on the hex dump from obj2yaml. Now the test shows the expected function body in a human readable format. Differential Revision: https://reviews.llvm.org/D109730
This commit is contained in:
parent
4a36e96c3f
commit
962acf0a27
|
|
@ -19,19 +19,23 @@
|
|||
|
||||
; atomics, bulk memory, shared memory => passive segments
|
||||
; RUN: wasm-ld -no-gc-sections --no-entry --shared-memory --max-memory=131072 %t.atomics.bulk-mem.o -o %t.atomics.bulk-mem.wasm
|
||||
; RUN: obj2yaml %t.atomics.bulk-mem.wasm | FileCheck %s --check-prefixes PASSIVE,PASSIVE32
|
||||
; RUN: obj2yaml %t.atomics.bulk-mem.wasm | FileCheck %s --check-prefix PASSIVE
|
||||
; RUN: llvm-objdump --disassemble-symbols=__wasm_init_memory --no-show-raw-insn --no-leading-addr %t.atomics.bulk-mem.wasm | FileCheck %s --check-prefixes DIS,NOPIC-DIS -DPTR=i32
|
||||
|
||||
; atomics, bulk memory, shared memory, wasm64 => passive segments
|
||||
; RUN: wasm-ld -mwasm64 -no-gc-sections --no-entry --shared-memory --max-memory=131072 %t.atomics.bulk-mem64.o -o %t.atomics.bulk-mem64.wasm
|
||||
; RUN: obj2yaml %t.atomics.bulk-mem64.wasm | FileCheck %s --check-prefixes PASSIVE,PASSIVE64
|
||||
; RUN: obj2yaml %t.atomics.bulk-mem64.wasm | FileCheck %s --check-prefix PASSIVE
|
||||
; RUN: llvm-objdump --disassemble-symbols=__wasm_init_memory --no-show-raw-insn --no-leading-addr %t.atomics.bulk-mem64.wasm | FileCheck %s --check-prefixes DIS,NOPIC-DIS -DPTR=i64
|
||||
|
||||
; Also test in combination with PIC/pie
|
||||
; RUN: wasm-ld --experimental-pic -pie -no-gc-sections --no-entry --shared-memory --max-memory=131072 %t.atomics.bulk-mem.pic.o -o %t.pic.wasm
|
||||
; RUN: obj2yaml %t.pic.wasm | FileCheck %s --check-prefixes PASSIVE-PIC,PASSIVE32-PIC
|
||||
; RUN: llvm-objdump --disassemble-symbols=__wasm_init_memory --no-show-raw-insn --no-leading-addr %t.pic.wasm | FileCheck %s --check-prefixes DIS,PIC-DIS -DPTR=i32
|
||||
|
||||
; Also test in combination with PIC/pie + wasm64
|
||||
; RUN: wasm-ld -mwasm64 --experimental-pic -pie -no-gc-sections --no-entry --shared-memory --max-memory=131072 %t.atomics.bulk-mem.pic-mem64.o -o %t.pic-mem64.wasm
|
||||
; RUN: obj2yaml %t.pic-mem64.wasm | FileCheck %s --check-prefixes PASSIVE-PIC,PASSIVE64-PIC
|
||||
; RUN: llvm-objdump --disassemble-symbols=__wasm_init_memory --no-show-raw-insn --no-leading-addr %t.pic-mem64.wasm | FileCheck %s --check-prefixes DIS,PIC-DIS -DPTR=i64
|
||||
|
||||
@a = hidden global [6 x i8] c"hello\00", align 1
|
||||
@b = hidden global [8 x i8] c"goodbye\00", align 1
|
||||
|
|
@ -84,8 +88,7 @@
|
|||
; PASSIVE-NEXT: Body: 0B
|
||||
; PASSIVE-NEXT: - Index: 2
|
||||
; PASSIVE-NEXT: Locals: []
|
||||
; PASSIVE32-NEXT: Body: 02400240024041B4D60041004101FE4802000E020001020B4180084100410DFC08000041900841004114FC08010041B4D6004102FE17020041B4D600417FFE0002001A0C010B41B4D6004101427FFE0102001A0BFC0900FC09010B
|
||||
; PASSIVE64-NEXT: Body: 02400240024042B4D60041004101FE4802000E020001020B4280084100410DFC08000042900841004114FC08010042B4D6004102FE17020042B4D600417FFE0002001A0C010B42B4D6004101427FFE0102001A0BFC0900FC09010B
|
||||
; PASSIVE-NEXT: Body: {{.*}}
|
||||
; PASSIVE-NEXT: - Type: DATA
|
||||
; PASSIVE-NEXT: Segments:
|
||||
; PASSIVE-NEXT: - SectionOffset: 3
|
||||
|
|
@ -120,9 +123,8 @@
|
|||
; PASSIVE-PIC-NEXT: Locals:
|
||||
; PASSIVE32-PIC-NEXT: - Type: I32
|
||||
; PASSIVE64-PIC-NEXT: - Type: I64
|
||||
; PASSIVE-PIC-NEXT: Count: 1
|
||||
; PASSIVE32-PIC-NEXT: Body: 230141B4CE006A2100024002400240200041004101FE4802000E020001020B410023016A4100410DFC080000411023016A41004114FC08010020004102FE1702002000417FFE0002001A0C010B20004101427FFE0102001A0BFC0900FC09010B
|
||||
; PASSIVE64-PIC-NEXT: Body: 230142B4CE007C2100024002400240200041004101FE4802000E020001020B420023017C4100410DFC080000421023017C41004114FC08010020004102FE1702002000417FFE0002001A0C010B20004101427FFE0102001A0BFC0900FC09010B
|
||||
; PASSIVE-PIC-NEXT: Count: 1
|
||||
; PASSIVE-PIC-NEXT: Body: {{.*}}
|
||||
; PASSIVE-PIC-NEXT: - Index: 3
|
||||
; PASSIVE-PIC-NEXT: Locals: []
|
||||
; PASSIVE-PIC-NEXT: Body: 0B
|
||||
|
|
@ -145,3 +147,70 @@
|
|||
; PASSIVE-PIC-NEXT: Name: __wasm_init_memory
|
||||
; PASSIVE-PIC-NEXT: - Index: 3
|
||||
; PASSIVE-PIC-NEXT: Name: __wasm_apply_data_relocs
|
||||
|
||||
; DIS-LABEL: <__wasm_init_memory>:
|
||||
|
||||
; PIC-DIS: .local [[PTR]]
|
||||
; PIC-DIS-NEXT: global.get 1
|
||||
; PIC-DIS-NEXT: [[PTR]].const 10036
|
||||
; PIC-DIS-NEXT: [[PTR]].add
|
||||
; PIC-DIS-NEXT: local.set 0
|
||||
|
||||
; DIS: block
|
||||
; DIS-NEXT: block
|
||||
; DIS-NEXT: block
|
||||
|
||||
; NOPIC-DIS-NEXT: [[PTR]].const 11060
|
||||
; PIC-DIS-NEXT: local.get 0
|
||||
|
||||
; DIS-NEXT: i32.const 0
|
||||
; DIS-NEXT: i32.const 1
|
||||
; DIS-NEXT: i32.atomic.rmw.cmpxchg 0
|
||||
; DIS-NEXT: br_table {0, 1, 2} # 1: down to label1
|
||||
; DIS-NEXT: # 2: down to label0
|
||||
; DIS-NEXT: end
|
||||
|
||||
; NOPIC-DIS-NEXT: [[PTR]].const 1024
|
||||
; PIC-DIS-NEXT: [[PTR]].const 0
|
||||
; PIC-DIS-NEXT: global.get 1
|
||||
; PIC-DIS-NEXT: [[PTR]].add
|
||||
|
||||
; DIS-NEXT: i32.const 0
|
||||
; DIS-NEXT: i32.const 13
|
||||
; DIS-NEXT: memory.init 0, 0
|
||||
|
||||
; NOPIC-DIS-NEXT: [[PTR]].const 1040
|
||||
; PIC-DIS-NEXT: [[PTR]].const 16
|
||||
; PIC-DIS-NEXT: global.get 1
|
||||
; PIC-DIS-NEXT: [[PTR]].add
|
||||
|
||||
; DIS-NEXT: i32.const 0
|
||||
; DIS-NEXT: i32.const 20
|
||||
; DIS-NEXT: memory.init 1, 0
|
||||
|
||||
; NOPIC-DIS-NEXT: [[PTR]].const 11060
|
||||
; PIC-DIS-NEXT: local.get 0
|
||||
|
||||
; DIS-NEXT: i32.const 2
|
||||
; DIS-NEXT: i32.atomic.store 0
|
||||
|
||||
; NOPIC-DIS-NEXT: [[PTR]].const 11060
|
||||
; PIC-DIS-NEXT: local.get 0
|
||||
|
||||
; DIS-NEXT: i32.const -1
|
||||
; DIS-NEXT: memory.atomic.notify 0
|
||||
; DIS-NEXT: drop
|
||||
; DIS-NEXT: br 1 # 1: down to label1
|
||||
; DIS-NEXT: end
|
||||
|
||||
; NOPIC-DIS-NEXT: [[PTR]].const 11060
|
||||
; PIC-DIS-NEXT: local.get 0
|
||||
|
||||
; DIS-NEXT: i32.const 1
|
||||
; DIS-NEXT: i64.const -1
|
||||
; DIS-NEXT: memory.atomic.wait32 0
|
||||
; DIS-NEXT: drop
|
||||
; DIS-NEXT: end
|
||||
; DIS-NEXT: data.drop 0
|
||||
; DIS-NEXT: data.drop 1
|
||||
; DIS-NEXT: end
|
||||
|
|
|
|||
Loading…
Reference in New Issue