[WebAssembly] Fix stack pointer relocations
This line was mistakenly deleted in rL319813 Add a test for stackpointer relocations. Differential Revision: https://reviews.llvm.org/D40847 llvm-svn: 319828
This commit is contained in:
parent
795ab0d94d
commit
b3974ffda0
|
@ -0,0 +1,67 @@
|
|||
; RUN: llc -filetype=obj %s -o %t.o
|
||||
; RUN: lld -flavor wasm --emit-relocs -o %t.wasm %t.o
|
||||
; RUN: obj2yaml %t.wasm | FileCheck %s
|
||||
|
||||
target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128"
|
||||
target triple = "wasm32-unknown-unknown-wasm"
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define hidden i32 @_start() local_unnamed_addr {
|
||||
entry:
|
||||
%retval = alloca i32, align 4
|
||||
ret i32 0
|
||||
}
|
||||
|
||||
; CHECK: --- !WASM
|
||||
; CHECK-NEXT: FileHeader:
|
||||
; CHECK-NEXT: Version: 0x00000001
|
||||
; CHECK-NEXT: Sections:
|
||||
; CHECK-NEXT: - Type: TYPE
|
||||
; CHECK-NEXT: Signatures:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: ReturnType: I32
|
||||
; CHECK-NEXT: ParamTypes:
|
||||
; CHECK-NEXT: - Type: FUNCTION
|
||||
; CHECK-NEXT: FunctionTypes: [ 0 ]
|
||||
; CHECK-NEXT: - Type: TABLE
|
||||
; CHECK-NEXT: Tables:
|
||||
; CHECK-NEXT: - ElemType: ANYFUNC
|
||||
; CHECK-NEXT: Limits:
|
||||
; CHECK-NEXT: Flags: 0x00000001
|
||||
; CHECK-NEXT: Initial: 0x00000001
|
||||
; CHECK-NEXT: Maximum: 0x00000001
|
||||
; CHECK-NEXT: - Type: MEMORY
|
||||
; CHECK-NEXT: Memories:
|
||||
; CHECK-NEXT: - Initial: 0x00000002
|
||||
; CHECK-NEXT: - Type: GLOBAL
|
||||
; CHECK-NEXT: Globals:
|
||||
; CHECK-NEXT: - Type: I32
|
||||
; CHECK-NEXT: Mutable: true
|
||||
; CHECK-NEXT: InitExpr:
|
||||
; CHECK-NEXT: Opcode: I32_CONST
|
||||
; CHECK-NEXT: Value: 66560
|
||||
; CHECK-NEXT: - Type: EXPORT
|
||||
; CHECK-NEXT: Exports:
|
||||
; CHECK-NEXT: - Name: memory
|
||||
; CHECK-NEXT: Kind: MEMORY
|
||||
; CHECK-NEXT: Index: 0
|
||||
; CHECK-NEXT: - Name: _start
|
||||
; CHECK-NEXT: Kind: FUNCTION
|
||||
; CHECK-NEXT: Index: 0
|
||||
; CHECK-NEXT: - Type: CODE
|
||||
; CHECK-NEXT: Relocations:
|
||||
; CHECK-NEXT: - Type: R_WEBASSEMBLY_GLOBAL_INDEX_LEB
|
||||
; CHECK-NEXT: Index: 0
|
||||
; CHECK-NEXT: Offset: 0x00000004
|
||||
; CHECK-NEXT: Functions:
|
||||
; CHECK-NEXT: - Locals:
|
||||
; CHECK-NEXT: Body: 23808080800041106B1A41000B
|
||||
; CHECK-NEXT: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: linking
|
||||
; CHECK-NEXT: DataSize: 0
|
||||
; CHECK-NEXT: - Type: CUSTOM
|
||||
; CHECK-NEXT: Name: name
|
||||
; CHECK-NEXT: FunctionNames:
|
||||
; CHECK-NEXT: - Index: 0
|
||||
; CHECK-NEXT: Name: _start
|
||||
; CHECK-NEXT: ...
|
|
@ -142,6 +142,7 @@ static Symbol* addSyntheticGlobal(StringRef Name, int32_t Value) {
|
|||
log("injecting global: " + Name);
|
||||
Symbol *S = Symtab->addDefinedGlobal(Name);
|
||||
S->setVirtualAddress(Value);
|
||||
S->setOutputIndex(Config->SyntheticGlobals.size());
|
||||
Config->SyntheticGlobals.emplace_back(S);
|
||||
return S;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue