llvm-project/lld/test/wasm/startstop.ll

54 lines
1.8 KiB
LLVM

; RUN: llc -filetype=obj -o %t.o %s
; RUN: llc -filetype=obj %p/Inputs/explicit-section.ll -o %t2.o
; RUN: wasm-ld --export=get_start --export=get_end --export=foo --export=var1 %t.o %t2.o -o %t.wasm
; RUN: obj2yaml %t.wasm | FileCheck %s
target triple = "wasm32-unknown-unknown"
@foo = global i32 3, section "mysection", align 4
@bar = global i32 4, section "mysection", align 4
@__start_mysection = external global i8*
@__stop_mysection = external global i8*
define i8** @get_start() {
ret i8** @__start_mysection
}
define i8** @get_end() {
ret i8** @__stop_mysection
}
define void @_start() {
entry:
ret void
}
; CHECK: - Type: CODE
; CHECK-NEXT: Functions:
; CHECK-NEXT: - Index: 0
; CHECK-NEXT: Locals: []
; CHECK-NEXT: Body: 4180888080000B
; CHECK-NEXT: - Index: 1
; CHECK-NEXT: Locals: []
; CHECK-NEXT: Body: 4190888080000B
; CHECK-NEXT: - Index: 2
; CHECK-NEXT: Locals: []
; CHECK-NEXT: Body: 0B
; CHECK-NEXT: - Type: DATA
; CHECK-NEXT: Segments:
; CHECK-NEXT: - SectionOffset: 7
; CHECK-NEXT: InitFlags: 0
; CHECK-NEXT: Offset:
; CHECK-NEXT: Opcode: I32_CONST
; CHECK-NEXT: Value: 1024
; CHECK-NEXT: Content: 03000000040000002A0000002B000000
; CHECK-NEXT: - Type: CUSTOM
; CHECK-NEXT: Name: name
; CHECK-NEXT: FunctionNames:
; CHECK-NEXT: - Index: 0
; CHECK-NEXT: Name: get_start
; CHECK-NEXT: - Index: 1
; CHECK-NEXT: Name: get_end
; CHECK-NEXT: - Index: 2
; CHECK-NEXT: Name: _start