brintos

brintos / llvm-project-archived public Read only

0
0
Text · 9.0 KiB · 974d6cb Raw
229 lines · plain
1# RUN: sed -e '/^REF-/d' %s | llvm-mc -triple=wasm32-unknown-unknown -filetype=obj | obj2yaml | FileCheck %s2# RUN: sed -e 's/^REF-//g' %s | llvm-mc -triple=wasm32-unknown-unknown -mattr=+reference-types -filetype=obj | obj2yaml | FileCheck --check-prefix=REF %s3 4# Verify that @GOT relocation entryes 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, i3211.globaltype __table_base, i3212 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 () -> (i32)27    global.get  __memory_base28    i32.const   .L.hidden_data@MBREL29    i32.add30    end_function31 32load_hidden_func:33    .functype   load_hidden_func () -> (i32)34    global.get  __table_base35    i32.const   hidden_func@TBREL36    i32.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 53REF-mytable:54REF-.tabletype mytable, externref55 56# CHECK:      --- !WASM57# CHECK-NEXT: FileHeader:58# CHECK-NEXT:   Version:         0x159# CHECK-NEXT: Sections:60# CHECK-NEXT:   - Type:            TYPE61# CHECK-NEXT:     Signatures:62# CHECK-NEXT:       - Index:           063# CHECK-NEXT:         ParamTypes:      []64# CHECK-NEXT:         ReturnTypes:65# CHECK-NEXT:           - I3266# CHECK-NEXT:   - Type:            IMPORT67# CHECK-NEXT:     Imports:68# CHECK-NEXT:       - Module:          env69# CHECK-NEXT:         Field:           __linear_memory70# CHECK-NEXT:         Kind:            MEMORY71# CHECK-NEXT:         Memory:72# CHECK-NEXT:           Minimum:         0x173# CHECK-NEXT:       - Module:          env74# CHECK-NEXT:         Field:           default_func75# CHECK-NEXT:         Kind:            FUNCTION76# CHECK-NEXT:         SigIndex:        077# CHECK-NEXT:       - Module:          env78# CHECK-NEXT:         Field:           __memory_base79# CHECK-NEXT:         Kind:            GLOBAL80# CHECK-NEXT:         GlobalType:      I3281# CHECK-NEXT:         GlobalMutable:   true82# CHECK-NEXT:       - Module:          env83# CHECK-NEXT:         Field:           __table_base84# CHECK-NEXT:         Kind:            GLOBAL85# CHECK-NEXT:         GlobalType:      I3286# CHECK-NEXT:         GlobalMutable:   true87# CHECK-NEXT:       - Module:          env88# CHECK-NEXT:         Field:           __indirect_function_table89# CHECK-NEXT:         Kind:            TABLE90# CHECK-NEXT:         Table:91# CHECK-NEXT:           Index:           092# CHECK-NEXT:           ElemType:        FUNCREF93# CHECK-NEXT:           Limits:94# CHECK-NEXT:             Minimum:         0x195# CHECK-NEXT:       - Module:          GOT.mem96# CHECK-NEXT:         Field:           default_data97# CHECK-NEXT:         Kind:            GLOBAL98# CHECK-NEXT:         GlobalType:      I3299# CHECK-NEXT:         GlobalMutable:   true100# CHECK-NEXT:       - Module:          GOT.func101# CHECK-NEXT:         Field:           default_func102# CHECK-NEXT:         Kind:            GLOBAL103# CHECK-NEXT:         GlobalType:      I32104# CHECK-NEXT:         GlobalMutable:   true105# CHECK-NEXT:   - Type:            FUNCTION106# CHECK-NEXT:     FunctionTypes:   [ 0, 0, 0, 0, 0 ]107# CHECK-NEXT:   - Type:            ELEM108# CHECK-NEXT:     Segments:109# CHECK-NEXT:        Offset:110# CHECK-NEXT:          Opcode:          I32_CONST111# CHECK-NEXT:          Value:           1112# CHECK-NEXT:        Functions:       [ 5 ]113# CHECK-NEXT:   - Type:            DATACOUNT114# CHECK-NEXT:     Count:           1115# CHECK-NEXT:   - Type:            CODE116# CHECK-NEXT:     Relocations:117# CHECK-NEXT:       - Type:            R_WASM_GLOBAL_INDEX_LEB118# CHECK-NEXT:         Index:           1119# CHECK-NEXT:         Offset:          0x4120# CHECK-NEXT:       - Type:            R_WASM_GLOBAL_INDEX_LEB121# CHECK-NEXT:         Index:           3122# CHECK-NEXT:         Offset:          0x10123# CHECK-NEXT:       - Type:            R_WASM_GLOBAL_INDEX_LEB124# CHECK-NEXT:         Index:           5125# CHECK-NEXT:         Offset:          0x1C126# CHECK-NEXT:       - Type:            R_WASM_MEMORY_ADDR_REL_SLEB127# CHECK-NEXT:         Index:           6128# CHECK-NEXT:         Offset:          0x22129# CHECK-NEXT:       - Type:            R_WASM_GLOBAL_INDEX_LEB130# CHECK-NEXT:         Index:           8131# CHECK-NEXT:         Offset:          0x2C132# CHECK-NEXT:       - Type:            R_WASM_TABLE_INDEX_REL_SLEB133# CHECK-NEXT:         Index:           9134# CHECK-NEXT:         Offset:          0x32135# CHECK-NEXT:     Functions:136# CHECK-NEXT:       - Index:           1137# CHECK-NEXT:         Locals:          []138# CHECK-NEXT:         Body:            2382808080002802000B139# CHECK-NEXT:       - Index:           2140# CHECK-NEXT:         Locals:          []141# CHECK-NEXT:         Body:            2383808080002802000B142# CHECK-NEXT:       - Index:           3143# CHECK-NEXT:         Locals:          []144# CHECK-NEXT:         Body:            2380808080004180808080006A0B145# CHECK-NEXT:       - Index:           4146# CHECK-NEXT:         Locals:          []147# CHECK-NEXT:         Body:            2381808080004180808080006A0B148# CHECK-NEXT:       - Index:           5149# CHECK-NEXT:         Locals:          []150# CHECK-NEXT:         Body:            41000B151# CHECK-NEXT:   - Type:            DATA152# CHECK-NEXT:     Segments:153# CHECK-NEXT:       - SectionOffset:   6154# CHECK-NEXT:         InitFlags:       0155# CHECK-NEXT:         Offset:156# CHECK-NEXT:           Opcode:          I32_CONST157# CHECK-NEXT:           Value:           0158# CHECK-NEXT:         Content:         '64'159# CHECK-NEXT:   - Type:            CUSTOM160# CHECK-NEXT:     Name:            linking161# CHECK-NEXT:     Version:         2162# CHECK-NEXT:     SymbolTable:163# CHECK-NEXT:       - Index:           0164# CHECK-NEXT:         Kind:            FUNCTION165# CHECK-NEXT:         Name:            load_default_data166# CHECK-NEXT:         Flags:           [ BINDING_LOCAL ]167# CHECK-NEXT:         Function:        1168# CHECK-NEXT:       - Index:           1169# CHECK-NEXT:         Kind:            DATA170# CHECK-NEXT:         Name:            default_data171# CHECK-NEXT:         Flags:           [ UNDEFINED ]172# CHECK-NEXT:       - Index:           2173# CHECK-NEXT:         Kind:            FUNCTION174# CHECK-NEXT:         Name:            load_default_func175# CHECK-NEXT:         Flags:           [ BINDING_LOCAL ]176# CHECK-NEXT:         Function:        2177# CHECK-NEXT:       - Index:           3178# CHECK-NEXT:         Kind:            FUNCTION179# CHECK-NEXT:         Name:            default_func180# CHECK-NEXT:         Flags:           [ UNDEFINED ]181# CHECK-NEXT:         Function:        0182# CHECK-NEXT:       - Index:           4183# CHECK-NEXT:         Kind:            FUNCTION184# CHECK-NEXT:         Name:            load_hidden_data185# CHECK-NEXT:         Flags:           [ BINDING_LOCAL ]186# CHECK-NEXT:         Function:        3187# CHECK-NEXT:       - Index:           5188# CHECK-NEXT:         Kind:            GLOBAL189# CHECK-NEXT:         Name:            __memory_base190# CHECK-NEXT:         Flags:           [ UNDEFINED ]191# CHECK-NEXT:         Global:          0192# CHECK-NEXT:       - Index:           6193# CHECK-NEXT:         Kind:            DATA194# CHECK-NEXT:         Name:            .L.hidden_data195# CHECK-NEXT:         Flags:           [ BINDING_LOCAL ]196# CHECK-NEXT:         Segment:         0197# CHECK-NEXT:         Size:            1198# CHECK-NEXT:       - Index:           7199# CHECK-NEXT:         Kind:            FUNCTION200# CHECK-NEXT:         Name:            load_hidden_func201# CHECK-NEXT:         Flags:           [ BINDING_LOCAL ]202# CHECK-NEXT:         Function:        4203# CHECK-NEXT:       - Index:           8204# CHECK-NEXT:         Kind:            GLOBAL205# CHECK-NEXT:         Name:            __table_base206# CHECK-NEXT:         Flags:           [ UNDEFINED ]207# CHECK-NEXT:         Global:          1208# CHECK-NEXT:       - Index:           9209# CHECK-NEXT:         Kind:            FUNCTION210# CHECK-NEXT:         Name:            hidden_func211# CHECK-NEXT:         Flags:           [ BINDING_LOCAL ]212# CHECK-NEXT:         Function:        5213# REF:              - Index:           10214# REF-NEXT:           Kind:            TABLE215# REF-NEXT:           Name:            mytable216# REF-NEXT:           Flags:           [ BINDING_LOCAL ]217# REF-NEXT:           Table:           1218# REF-NEXT:         - Index:           11219# REF-NEXT:           Kind:            TABLE220# REF-NEXT:           Name:            __indirect_function_table221# REF-NEXT:           Flags:           [ UNDEFINED, NO_STRIP ]222# REF-NEXT:           Table:           0223# CHECK-NEXT:     SegmentInfo:224# CHECK-NEXT:       - Index:           0225# CHECK-NEXT:         Name:            .rodata.hidden_data226# CHECK-NEXT:         Alignment:       0227# CHECK-NEXT:         Flags:           [  ]228# CHECK-NEXT: ...229