mirror of
https://github.com/RPCS3/llvm.git
synced 2025-05-22 13:26:03 +00:00

This ensures that symbolic relocations are generated for stack pointer manipulations. These relocations are of type R_WEBASSEMBLY_GLOBAL_INDEX_LEB. This change also adds support for reading relocations of this type in WasmObjectFile.cpp. Since its a globally imported symbol this does mean that the get_global/set_global instruction won't be valid until the objects are linked that global used in no longer an imported global. Differential Revision: https://reviews.llvm.org/D34172 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@305616 91177308-0d34-0410-b5e6-96231b3b80d8
22 lines
734 B
LLVM
22 lines
734 B
LLVM
; RUN: llc -mtriple wasm32-unknown-unknown-wasm -filetype=obj %s -o - | obj2yaml | FileCheck %s
|
|
|
|
; Function that uses explict stack, and should generate a reference to
|
|
; __stack_pointer, along with the corresponding reloction entry.
|
|
define hidden void @foo() #0 {
|
|
entry:
|
|
alloca i32, align 4
|
|
ret void
|
|
}
|
|
|
|
; CHECK: - Type: IMPORT
|
|
; CHECK: Imports:
|
|
; CHECK: - Module: env
|
|
; CHECK: Field: __stack_pointer
|
|
; CHECK: Kind: GLOBAL
|
|
; CHECK: GlobalType: I32
|
|
; CHECK: GlobalMutable: false
|
|
; CHECK: - Type: CODE
|
|
; CHECK: Relocations:
|
|
; CHECK: - Type: R_WEBASSEMBLY_GLOBAL_INDEX_LEB
|
|
; CHECK: Index: 0
|