brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.0 KiB · 4c5ec4f Raw
227 lines · plain
1# RUN: llvm-mc -triple=wasm64-unknown-unknown -filetype=obj < %s | obj2yaml | FileCheck %s2# RUN: llvm-mc -triple=wasm64-unknown-unknown -mattr=+reference-types -filetype=obj < %s | obj2yaml | FileCheck --check-prefix=REF %s3 4# Verify that @GOT relocation entries result in R_WASM_GLOBAL_INDEX_LEB against5# against the corrsponding function or data symbol and that the corresponding6# data symbols are imported as a wasm globals.7 8.functype default_func () -> (i32)9 10.globaltype __memory_base, i6411.globaltype __table_base, i6412 13load_default_data:14    .functype   load_default_data () -> (i32)15    global.get  default_data@GOT16    i32.load    017    end_function18 19load_default_func:20    .functype   load_default_func () -> (i32)21    global.get  default_func@GOT22    i32.load    023    end_function24 25load_hidden_data:26    .functype   load_hidden_data () -> (i64)27    global.get  __memory_base28    i64.const   .L.hidden_data@MBREL29    i64.add30    end_function31 32load_hidden_func:33    .functype   load_hidden_func () -> (i64)34    global.get  __table_base35    i64.const   hidden_func@TBREL36    i64.add37    end_function38 39hidden_func:40    .functype   hidden_func () -> (i32)41    i32.const 042    end_function43 44.section .rodata.hidden_data,"",@45.L.hidden_data:46    .int8 10047    .size .L.hidden_data, 148 49#.hidden hidden_func50#.hidden hidden_data51.size default_data, 452 53# CHECK:      --- !WASM54# CHECK-NEXT: FileHeader:55# CHECK-NEXT:   Version:         0x156# CHECK-NEXT: Sections:57# CHECK-NEXT:   - Type:            TYPE58# CHECK-NEXT:     Signatures:59# CHECK-NEXT:       - Index:           060# CHECK-NEXT:         ParamTypes:      []61# CHECK-NEXT:         ReturnTypes:62# CHECK-NEXT:           - I3263# CHECK-NEXT:       - Index:           164# CHECK-NEXT:         ParamTypes:      []65# CHECK-NEXT:         ReturnTypes:66# CHECK-NEXT:           - I6467# CHECK-NEXT:   - Type:            IMPORT68# CHECK-NEXT:     Imports:69# CHECK-NEXT:       - Module:          env70# CHECK-NEXT:         Field:           __linear_memory71# CHECK-NEXT:         Kind:            MEMORY72# CHECK-NEXT:         Memory:73# CHECK-NEXT:           Flags:           [ IS_64 ]74# CHECK-NEXT:           Minimum:         0x175# CHECK-NEXT:       - Module:          env76# CHECK-NEXT:         Field:           default_func77# CHECK-NEXT:         Kind:            FUNCTION78# CHECK-NEXT:         SigIndex:        079# CHECK-NEXT:       - Module:          env80# CHECK-NEXT:         Field:           __memory_base81# CHECK-NEXT:         Kind:            GLOBAL82# CHECK-NEXT:         GlobalType:      I6483# CHECK-NEXT:         GlobalMutable:   true84# CHECK-NEXT:       - Module:          env85# CHECK-NEXT:         Field:           __table_base86# CHECK-NEXT:         Kind:            GLOBAL87# CHECK-NEXT:         GlobalType:      I6488# CHECK-NEXT:         GlobalMutable:   true89# CHECK-NEXT:       - Module:          env90# CHECK-NEXT:         Field:           __indirect_function_table91# CHECK-NEXT:         Kind:            TABLE92# CHECK-NEXT:         Table:93# CHECK-NEXT:           Index:           094# CHECK-NEXT:           ElemType:        FUNCREF95# CHECK-NEXT:           Limits:96# CHECK-NEXT:             Flags:           [ IS_64 ]97# CHECK-NEXT:             Minimum:         0x198# CHECK-NEXT:       - Module:          GOT.mem99# CHECK-NEXT:         Field:           default_data100# CHECK-NEXT:         Kind:            GLOBAL101# CHECK-NEXT:         GlobalType:      I32102# CHECK-NEXT:         GlobalMutable:   true103# CHECK-NEXT:       - Module:          GOT.func104# CHECK-NEXT:         Field:           default_func105# CHECK-NEXT:         Kind:            GLOBAL106# CHECK-NEXT:         GlobalType:      I32107# CHECK-NEXT:         GlobalMutable:   true108# CHECK-NEXT:   - Type:            FUNCTION109# CHECK-NEXT:     FunctionTypes:   [ 0, 0, 1, 1, 0 ]110# CHECK-NEXT:   - Type:            ELEM111# CHECK-NEXT:     Segments:112# CHECK-NEXT:        Offset:113# CHECK-NEXT:          Opcode:          I64_CONST114# CHECK-NEXT:          Value:           1115# CHECK-NEXT:        Functions:       [ 5 ]116# CHECK-NEXT:   - Type:            DATACOUNT117# CHECK-NEXT:     Count:           1118# CHECK-NEXT:   - Type:            CODE119# CHECK-NEXT:     Relocations:120# CHECK-NEXT:       - Type:            R_WASM_GLOBAL_INDEX_LEB121# CHECK-NEXT:         Index:           1122# CHECK-NEXT:         Offset:          0x4123# CHECK-NEXT:       - Type:            R_WASM_GLOBAL_INDEX_LEB124# CHECK-NEXT:         Index:           3125# CHECK-NEXT:         Offset:          0x10126# CHECK-NEXT:       - Type:            R_WASM_GLOBAL_INDEX_LEB127# CHECK-NEXT:         Index:           5128# CHECK-NEXT:         Offset:          0x1C129# CHECK-NEXT:       - Type:            R_WASM_MEMORY_ADDR_REL_SLEB64130# CHECK-NEXT:         Index:           6131# CHECK-NEXT:         Offset:          0x22132# CHECK-NEXT:       - Type:            R_WASM_GLOBAL_INDEX_LEB133# CHECK-NEXT:         Index:           8134# CHECK-NEXT:         Offset:          0x31135# CHECK-NEXT:       - Type:            R_WASM_TABLE_INDEX_REL_SLEB64136# CHECK-NEXT:         Index:           9137# CHECK-NEXT:         Offset:          0x37138# CHECK-NEXT:     Functions:139# CHECK-NEXT:       - Index:           1140# CHECK-NEXT:         Locals:          []141# CHECK-NEXT:         Body:            2382808080002802000B142# CHECK-NEXT:       - Index:           2143# CHECK-NEXT:         Locals:          []144# CHECK-NEXT:         Body:            2383808080002802000B145# CHECK-NEXT:       - Index:           3146# CHECK-NEXT:         Locals:          []147# CHECK-NEXT:         Body:            23808080800042808080808080808080007C0B148# CHECK-NEXT:       - Index:           4149# CHECK-NEXT:         Locals:          []150# CHECK-NEXT:         Body:            23818080800042808080808080808080007C0B151# CHECK-NEXT:       - Index:           5152# CHECK-NEXT:         Locals:          []153# CHECK-NEXT:         Body:            41000B154# CHECK-NEXT:   - Type:            DATA155# CHECK-NEXT:     Segments:156# CHECK-NEXT:       - SectionOffset:   6157# CHECK-NEXT:         InitFlags:       0158# CHECK-NEXT:         Offset:159# CHECK-NEXT:           Opcode:          I64_CONST160# CHECK-NEXT:           Value:           0161# CHECK-NEXT:         Content:         '64'162# CHECK-NEXT:   - Type:            CUSTOM163# CHECK-NEXT:     Name:            linking164# CHECK-NEXT:     Version:         2165# CHECK-NEXT:     SymbolTable:166# CHECK-NEXT:       - Index:           0167# CHECK-NEXT:         Kind:            FUNCTION168# CHECK-NEXT:         Name:            load_default_data169# CHECK-NEXT:         Flags:           [ BINDING_LOCAL ]170# CHECK-NEXT:         Function:        1171# CHECK-NEXT:       - Index:           1172# CHECK-NEXT:         Kind:            DATA173# CHECK-NEXT:         Name:            default_data174# CHECK-NEXT:         Flags:           [ UNDEFINED ]175# CHECK-NEXT:       - Index:           2176# CHECK-NEXT:         Kind:            FUNCTION177# CHECK-NEXT:         Name:            load_default_func178# CHECK-NEXT:         Flags:           [ BINDING_LOCAL ]179# CHECK-NEXT:         Function:        2180# CHECK-NEXT:       - Index:           3181# CHECK-NEXT:         Kind:            FUNCTION182# CHECK-NEXT:         Name:            default_func183# CHECK-NEXT:         Flags:           [ UNDEFINED ]184# CHECK-NEXT:         Function:        0185# CHECK-NEXT:       - Index:           4186# CHECK-NEXT:         Kind:            FUNCTION187# CHECK-NEXT:         Name:            load_hidden_data188# CHECK-NEXT:         Flags:           [ BINDING_LOCAL ]189# CHECK-NEXT:         Function:        3190# CHECK-NEXT:       - Index:           5191# CHECK-NEXT:         Kind:            GLOBAL192# CHECK-NEXT:         Name:            __memory_base193# CHECK-NEXT:         Flags:           [ UNDEFINED ]194# CHECK-NEXT:         Global:          0195# CHECK-NEXT:       - Index:           6196# CHECK-NEXT:         Kind:            DATA197# CHECK-NEXT:         Name:            .L.hidden_data198# CHECK-NEXT:         Flags:           [ BINDING_LOCAL ]199# CHECK-NEXT:         Segment:         0200# CHECK-NEXT:         Size:            1201# CHECK-NEXT:       - Index:           7202# CHECK-NEXT:         Kind:            FUNCTION203# CHECK-NEXT:         Name:            load_hidden_func204# CHECK-NEXT:         Flags:           [ BINDING_LOCAL ]205# CHECK-NEXT:         Function:        4206# CHECK-NEXT:       - Index:           8207# CHECK-NEXT:         Kind:            GLOBAL208# CHECK-NEXT:         Name:            __table_base209# CHECK-NEXT:         Flags:           [ UNDEFINED ]210# CHECK-NEXT:         Global:          1211# CHECK-NEXT:       - Index:           9212# CHECK-NEXT:         Kind:            FUNCTION213# CHECK-NEXT:         Name:            hidden_func214# CHECK-NEXT:         Flags:           [ BINDING_LOCAL ]215# CHECK-NEXT:         Function:        5216# REF:              - Index:           10217# REF-NEXT:           Kind:            TABLE218# REF-NEXT:           Name:            __indirect_function_table219# REF-NEXT:           Flags:           [ UNDEFINED, NO_STRIP ]220# REF-NEXT:           Table:           0221# CHECK-NEXT:     SegmentInfo:222# CHECK-NEXT:       - Index:           0223# CHECK-NEXT:         Name:            .rodata.hidden_data224# CHECK-NEXT:         Alignment:       0225# CHECK-NEXT:         Flags:           [  ]226# CHECK-NEXT: ...227