brintos

brintos / llvm-project-archived public Read only

0
0
Text · 7.0 KiB · 559c53d Raw
193 lines · yaml
1# Tests RISC-V relocations. We provide a .debug_info section with multiple2# DW_AT_high_pc entries (that's one of the attributes for which relocations are3# resolved by llvm-dwarfdump) and we add a relocation for each of them.4#5# RUN: yaml2obj %s | llvm-dwarfdump - | FileCheck %s6 7# To add more tests you need to modify the Content of the .debug_abbrev and8# .debug_info sections. To do that create a test.s which matches the assembly9# code below, run the command that follows and copy over the "Content" value of10# the respective sections:11#12# ```13# $ cat test.s14# .section .debug_abbrev,"",@progbits15#  .byte 1                  # Abbreviation Code16#  .byte 0x11               # DW_TAG_compile_unit17#  .byte 0                  # DW_CHILDREN_no18#19#  # Add a DW_AT_high_pc for each relocation we test.20#  .rept 14                 # (UPDATE HERE)21#  .byte 0x12               # DW_AT_high_pc22#  .byte 0x01               # DW_FORM_addr23#  .endr24#25#  .byte 0                  # EOM(1)26#  .byte 0                  # EOM(2)27#  .byte 0                  # EOM(3)28#29# .section .debug_info,"",@progbits30#  .4byte 2+4+1+1+8*14      # Length of Unit (UPDATE HERE)31#  .2byte 4                 # DWARF version number32#  .4byte .debug_abbrev     # Offset Into Abbrev. Section33#  .byte 8                  # Address Size (in bytes)34#  .byte 1                  # Abbrev 135#  .8byte 0x00000000000042  # Test 136#  .8byte 0x00000000000042  # Test 237#  .8byte 0x00000000000042  # Test 338#  .8byte 0x00000000000042  # Test 439#  .8byte 0x00000000000042  # Test 540#  .8byte 0x00000000000042  # Test 641#  .8byte 0x00000000000042  # Test 742#  .8byte 0x00000000000042  # Test 843#  .8byte 0x00000000004242  # Test 944#  .8byte 0x00000000004242  # Test 1045#  .8byte 0x00000042424242  # Test 1146#  .8byte 0x00000042424242  # Test 1247#  .8byte 0x42424242424242  # Test 1348#  .8byte 0x42424242424242  # Test 1449# $ llvm-mc test.s -filetype obj -triple riscv64 -o - | obj2yaml50# ```51 52--- !ELF53FileHeader:54  Class:           ELFCLASS6455  Data:            ELFDATA2LSB56  Type:            ET_REL57  Machine:         EM_RISCV58Sections:59  - Name:            .debug_abbrev60    Type:            SHT_PROGBITS61    Content:         0111001201120112011201120112011201120112011201120112011201120100000062  - Name:            .debug_info63    Type:            SHT_PROGBITS64    Content:         7800000004000000000008014200000000000000420000000000000042000000000000004200000000000000420000000000000042000000000000004200000000000000420000000000000042420000000000004242000000000000424242420000000042424242000000004242424242424200424242424242420065  - Name:            .rela.debug_info66    Type:            SHT_RELA67    Flags:           [ SHF_INFO_LINK ]68    Link:            .symtab69    EntSize:         0x000000000000001870    Info:            .debug_info71    Relocations:72 73      # Test 174      # 0x42 with R_RISCV_NONE(0x1) = 0x4275      # CHECK: DW_AT_high_pc (0x0000000000000042)76      - Offset:          0x000000000000000C # 0xC + 8*077        Symbol:          v178        Type:            R_RISCV_NONE79 80      # Test 281      # 0x42 with R_RISCV_32(0xFFFFFFFFFFFFFFFF) = 0x00000000FFFFFFFF82      # CHECK-NEXT: DW_AT_high_pc (0x00000000ffffffff)83      - Offset:          0x0000000000000014 # 0xC + 8*184        Symbol:          vFFFFFFFFFFFFFFFF85        Type:            R_RISCV_3286 87      # Test 388      # 0x42 with R_RISCV_32_PCREL(0x4) = 0x4-0x1C = 0x00000000FFFFFFE889      # CHECK-NEXT: DW_AT_high_pc (0x00000000ffffffe8)90      - Offset:          0x000000000000001C # 0xC + 8*291        Symbol:          v492        Type:            R_RISCV_32_PCREL93 94      # Test 495      # 0x42 with R_RISCV_64(0xFFFFFFFFFFFFFFFF) = 0xFFFFFFFFFFFFFFFF96      # CHECK-NEXT: DW_AT_high_pc (0xffffffffffffffff)97      - Offset:          0x0000000000000024 # 0xC + 8*398        Symbol:          vFFFFFFFFFFFFFFFF99        Type:            R_RISCV_64100 101      # Test 5102      # 0x42 with R_RISCV_SET6(1) = 0x41103      # CHECK-NEXT: DW_AT_high_pc (0x0000000000000041)104      - Offset:          0x000000000000002C # 0xC + 8*4105        Symbol:          v1106        Type:            R_RISCV_SET6107 108      # Test 6109      # 0x42 with R_RISCV_SUB6(0x4) = 0x7E110      # CHECK-NEXT: DW_AT_high_pc (0x000000000000007e)111      - Offset:          0x0000000000000034 # 0xC + 8*5112        Symbol:          v4113        Type:            R_RISCV_SUB6114 115      # Test 7116      # 0x42 with R_RISCV_ADD8(0x04020103) = 0x45117      # CHECK-NEXT: DW_AT_high_pc (0x0000000000000045)118      - Offset:          0x000000000000003C # 0xC + 8*6119        Symbol:          v04020103120        Type:            R_RISCV_ADD8121 122      # Test 8123      # 0x42 with R_RISCV_SUB8(0x04020103) = 0x3F124      # CHECK-NEXT: DW_AT_high_pc (0x000000000000003f)125      - Offset:          0x0000000000000044 # 0xC + 8*7126        Symbol:          v04020103127        Type:            R_RISCV_SUB8128 129      # Test 9130      # 0x4242 with R_RISCV_ADD16(0x04020103) = 0x4345131      # CHECK-NEXT: DW_AT_high_pc (0x0000000000004345)132      - Offset:          0x000000000000004C # 0xC + 8*8133        Symbol:          v04020103134        Type:            R_RISCV_ADD16135 136      # Test 10137      # 0x4242 with R_RISCV_SUB16(0x04020103) = 0x413F138      # CHECK-NEXT: DW_AT_high_pc (0x000000000000413f)139      - Offset:          0x0000000000000054 # 0xC + 8*9140        Symbol:          v04020103141        Type:            R_RISCV_SUB16142 143      # Test 11144      # 0x42424242 with R_RISCV_ADD32(0x04020103) = 0x46444345145      # CHECK-NEXT: DW_AT_high_pc (0x0000000046444345)146      - Offset:          0x000000000000005C # 0xC + 8*10147        Symbol:          v04020103148        Type:            R_RISCV_ADD32149 150      # Test 12151      # 0x42424242 with R_RISCV_SUB32(0x04020103) = 0x3E40413F152      # CHECK-NEXT: DW_AT_high_pc (0x000000003e40413f)153      - Offset:          0x0000000000000064 # 0xC + 8*11154        Symbol:          v04020103155        Type:            R_RISCV_SUB32156 157      # Test 13158      # 0x0042424242424242 with R_RISCV_ADD64(0x0100000000000000) = 0x0142424242424242159      # CHECK-NEXT: DW_AT_high_pc (0x0142424242424242)160      - Offset:          0x000000000000006C # 0xC + 8*12161        Symbol:          v0100000000000000162        Type:            R_RISCV_ADD64163 164      # Test 14165      # 0x0042424242424242 with R_RISCV_SUB64(0x0100000000000000) = 0xFF42424242424242166      # CHECK-NEXT: DW_AT_high_pc (0xff42424242424242)167      - Offset:          0x0000000000000074 # 0xC + 8*13168        Symbol:          v0100000000000000169        Type:            R_RISCV_SUB64170 171Symbols:172  - Name:            v1173    Type:            STT_SECTION174    Section:         .debug_info175    Value:           0x0000000000000001176  - Name:            v4177    Type:            STT_SECTION178    Section:         .debug_info179    Value:           0x0000000000000004180  - Name:            v04020103181    Type:            STT_SECTION182    Section:         .debug_info183    Value:           0x0000000004020103184  - Name:            vFFFFFFFFFFFFFFFF185    Type:            STT_SECTION186    Section:         .debug_info187    Value:           0xFFFFFFFFFFFFFFFF188  - Name:            v0100000000000000189    Type:            STT_SECTION190    Section:         .debug_info191    Value:           0x0100000000000000192...193