blob: ca78d8b158f76258af70d3abba586e0f1d4d2f30 [file] [log] [blame]
Sam Clegga06de022017-04-28 21:22:38 +00001; RUN: llc -O0 -mtriple wasm32-unknown-unknown-wasm -filetype=obj %s -o - | llvm-readobj -r -expand-relocs | FileCheck %s
2
3; foo and bar are external and internal symbols. a and b are pointers
4; initialized to these locations offset by 2 and -2 elements respecitively.
5@foo = external global i32, align 4
6@bar = global i64 7, align 4
7@a = global i32* getelementptr (i32, i32* @foo, i32 2), align 8
8@b = global i64* getelementptr (i64, i64* @bar, i64 -2), align 8
Sam Clegg7c395942017-09-14 23:07:53 +00009@c = global [3 x i32*] [i32* @foo, i32* @foo, i32* @foo], align 16
Sam Clegga06de022017-04-28 21:22:38 +000010
Sam Clegg7c395942017-09-14 23:07:53 +000011; CHECK: Format: WASM
12; CHECK: Relocations [
Sam Cleggf950b242017-12-11 23:03:38 +000013; CHECK-NEXT: Section (4) DATA {
Sam Clegg7c395942017-09-14 23:07:53 +000014; CHECK-NEXT: Relocation {
15; CHECK-NEXT: Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 (5)
16; CHECK-NEXT: Offset: 0x13
17; CHECK-NEXT: Index: 0x0
18; CHECK-NEXT: Addend: 8
19; CHECK-NEXT: }
20; CHECK-NEXT: Relocation {
21; CHECK-NEXT: Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 (5)
22; CHECK-NEXT: Offset: 0x1C
23; CHECK-NEXT: Index: 0x1
24; CHECK-NEXT: Addend: -16
25; CHECK-NEXT: }
26; CHECK-NEXT: Relocation {
27; CHECK-NEXT: Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 (5)
28; CHECK-NEXT: Offset: 0x25
29; CHECK-NEXT: Index: 0x0
30; CHECK-NEXT: Addend: 0
31; CHECK-NEXT: }
32; CHECK-NEXT: Relocation {
33; CHECK-NEXT: Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 (5)
34; CHECK-NEXT: Offset: 0x29
35; CHECK-NEXT: Index: 0x0
36; CHECK-NEXT: Addend: 0
37; CHECK-NEXT: }
38; CHECK-NEXT: Relocation {
39; CHECK-NEXT: Type: R_WEBASSEMBLY_MEMORY_ADDR_I32 (5)
40; CHECK-NEXT: Offset: 0x2D
41; CHECK-NEXT: Index: 0x0
42; CHECK-NEXT: Addend: 0
43; CHECK-NEXT: }
44; CHECK-NEXT: }
45; CHECK-NEXT: ]