Sam Clegg | a06de02 | 2017-04-28 21:22:38 +0000 | [diff] [blame] | 1 | ; 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 Clegg | 7c39594 | 2017-09-14 23:07:53 +0000 | [diff] [blame] | 9 | @c = global [3 x i32*] [i32* @foo, i32* @foo, i32* @foo], align 16 |
Sam Clegg | a06de02 | 2017-04-28 21:22:38 +0000 | [diff] [blame] | 10 | |
Sam Clegg | 7c39594 | 2017-09-14 23:07:53 +0000 | [diff] [blame] | 11 | ; CHECK: Format: WASM |
| 12 | ; CHECK: Relocations [ |
Sam Clegg | f950b24 | 2017-12-11 23:03:38 +0000 | [diff] [blame] | 13 | ; CHECK-NEXT: Section (4) DATA { |
Sam Clegg | 7c39594 | 2017-09-14 23:07:53 +0000 | [diff] [blame] | 14 | ; 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: ] |