brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.4 KiB · c7b05f8 Raw
130 lines · plain
1# RUN: llvm-mc -triple=wasm32-unknown-unknown -filetype=obj %s -o - | llvm-readobj -r --expand-relocs - | FileCheck %s2# RUN: llvm-mc -triple=wasm32-unknown-unknown -mattr=+reference-types -filetype=obj %s -o - | llvm-readobj -r --expand-relocs - | FileCheck --check-prefix=REF %s3 4# External functions5.functype c () -> (i32)6.functype d () -> (i32)7 8.globl  f19.globl  a10.globl  b11 12f1:13  .functype f1 () -> (i32)14 15  # Call functions at `a` and `b` indirectly.16  i32.const 017  i32.load  a - 1018  call_indirect  () -> (i64)19  drop20 21  i32.const 022  i32.load  b + 2023  call_indirect  () -> (i32)24  drop25 26  # Call functions `c` and `d` directly27  call  c28  drop29  call  d30  end_function31 32# Pointers to functions of two different types33.section  .data.a,"",@34.p2align  335a:36  .int32  537  .size a, 438 39.section  .data.b,"",@40.p2align  341b:42  .int32  743  .size b, 444 45# CHECK: Format: WASM46# CHECK: Relocations [47# CHECK-NEXT:   Section (5) CODE {48# CHECK-NEXT:     Relocation {49# CHECK-NEXT:       Type: R_WASM_MEMORY_ADDR_LEB (3)50# CHECK-NEXT:       Offset: 0x751# CHECK-NEXT:       Symbol: a52# CHECK-NEXT:       Addend: -1053# CHECK-NEXT:     }54# CHECK-NEXT:     Relocation {55# CHECK-NEXT:       Type: R_WASM_TYPE_INDEX_LEB (6)56# CHECK-NEXT:       Offset: 0xD57# CHECK-NEXT:       Index: 0x158# CHECK-NEXT:     }59# CHECK-NEXT:     Relocation {60# CHECK-NEXT:       Type: R_WASM_MEMORY_ADDR_LEB (3)61# CHECK-NEXT:       Offset: 0x1862# CHECK-NEXT:       Symbol: b63# CHECK-NEXT:       Addend: 2064# CHECK-NEXT:     }65# CHECK-NEXT:     Relocation {66# CHECK-NEXT:       Type: R_WASM_TYPE_INDEX_LEB (6)67# CHECK-NEXT:       Offset: 0x1E68# CHECK-NEXT:       Index: 0x069# CHECK-NEXT:     }70# CHECK-NEXT:     Relocation {71# CHECK-NEXT:       Type: R_WASM_FUNCTION_INDEX_LEB (0)72# CHECK-NEXT:       Offset: 0x2673# CHECK-NEXT:       Symbol: c74# CHECK-NEXT:     }75# CHECK-NEXT:     Relocation {76# CHECK-NEXT:       Type: R_WASM_FUNCTION_INDEX_LEB (0)77# CHECK-NEXT:       Offset: 0x2D78# CHECK-NEXT:       Symbol: d79# CHECK-NEXT:     }80# CHECK-NEXT:   }81# CHECK-NEXT: ]82 83# REF: Format: WASM84# REF: Relocations [85# REF-NEXT:   Section (5) CODE {86# REF-NEXT:     Relocation {87# REF-NEXT:       Type: R_WASM_MEMORY_ADDR_LEB (3)88# REF-NEXT:       Offset: 0x789# REF-NEXT:       Symbol: a90# REF-NEXT:       Addend: -1091# REF-NEXT:     }92# REF-NEXT:     Relocation {93# REF-NEXT:       Type: R_WASM_TYPE_INDEX_LEB (6)94# REF-NEXT:       Offset: 0xD95# REF-NEXT:       Index: 0x196# REF-NEXT:     }97# REF-NEXT:     Relocation {98# REF-NEXT:       Type: R_WASM_TABLE_NUMBER_LEB (20)99# REF-NEXT:       Offset: 0x12100# REF-NEXT:       Symbol: __indirect_function_table101# REF-NEXT:     }102# REF-NEXT:     Relocation {103# REF-NEXT:       Type: R_WASM_MEMORY_ADDR_LEB (3)104# REF-NEXT:       Offset: 0x1C105# REF-NEXT:       Symbol: b106# REF-NEXT:       Addend: 20107# REF-NEXT:     }108# REF-NEXT:     Relocation {109# REF-NEXT:       Type: R_WASM_TYPE_INDEX_LEB (6)110# REF-NEXT:       Offset: 0x22111# REF-NEXT:       Index: 0x0112# REF-NEXT:     }113# REF-NEXT:     Relocation {114# REF-NEXT:       Type: R_WASM_TABLE_NUMBER_LEB (20)115# REF-NEXT:       Offset: 0x27116# REF-NEXT:       Symbol: __indirect_function_table117# REF-NEXT:     }118# REF-NEXT:     Relocation {119# REF-NEXT:       Type: R_WASM_FUNCTION_INDEX_LEB (0)120# REF-NEXT:       Offset: 0x2E121# REF-NEXT:       Symbol: c122# REF-NEXT:     }123# REF-NEXT:     Relocation {124# REF-NEXT:       Type: R_WASM_FUNCTION_INDEX_LEB (0)125# REF-NEXT:       Offset: 0x35126# REF-NEXT:       Symbol: d127# REF-NEXT:     }128# REF-NEXT:   }129# REF-NEXT: ]130