brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.0 KiB · 0d60cc4 Raw
107 lines · plain
1# RUN: llvm-mc -filetype=obj -crel -triple=x86_64 %s -o %t.o2# RUN: llvm-readelf -Sr -x .crelrodata2 -x .crelrodata16 %t.o | FileCheck %s3 4# RUN: %if aarch64-registered-target %{ llvm-mc -filetype=obj -crel -triple=aarch64_be %s -o %t.be.o %}5# RUN: %if aarch64-registered-target %{ llvm-readelf -r %t.be.o | FileCheck %s --check-prefix=A64BE %}6 7# CHECK:      [ 4] .data             PROGBITS      0000000000000000 {{.*}} 000008 00  WA  0   0  18# CHECK-NEXT: [ 5] .crel.data        CREL          0000000000000000 {{.*}} 00002c 01   I 14   4  19# CHECK-NEXT: [ 6] .rodata           PROGBITS      0000000000000000 {{.*}} 00002b 00   A  0   0  110# CHECK-NEXT: [ 7] .crel.rodata      CREL          0000000000000000 {{.*}} 000010 01   I 14   6  111# CHECK-NEXT: [ 8] rodata2           PROGBITS      0000000000000000 {{.*}} 000008 00   A  0   0  112# CHECK-NEXT: [ 9] .crelrodata2      CREL          0000000000000000 {{.*}} 000005 01   I 14   8  113# CHECK-NEXT: [10] rodata16          PROGBITS      0000000000000000 {{.*}} 000010 00   A  0   0  114# CHECK-NEXT: [11] .crelrodata16     CREL          0000000000000000 {{.*}} 000004 01   I 14  10  115# CHECK-NEXT: [12] noalloc           PROGBITS      0000000000000000 {{.*}} 000004 00      0   0  116# CHECK-NEXT: [13] .crelnoalloc      CREL          0000000000000000 {{.*}} 000005 01   I 14  12  117# CHECK-NEXT: [14] .symtab           SYMTAB18 19# CHECK:      Relocation section '.crel.data' at offset {{.*}} contains 8 entries:20# CHECK-NEXT:     Offset             Info             Type               Symbol's Value  Symbol's Name + Addend21# CHECK-NEXT: 0000000000000000  {{.*}}           R_X86_64_NONE          0000000000000000 a0 + 022# CHECK-NEXT: 0000000000000001  {{.*}}           R_X86_64_NONE          0000000000000000 a1 - 123# CHECK-NEXT: 0000000000000002  {{.*}}           R_X86_64_NONE          0000000000000000 a2 - 124# CHECK-NEXT: 0000000000000004  {{.*}}           R_X86_64_32            0000000000000000 a3 + 400025# CHECK-NEXT: 0000000000000005  {{.*}}           R_X86_64_64            0000000000000000 a3 - 800000000000000026# CHECK-NEXT: 0000000000000005  {{.*}}           R_X86_64_64            0000000000000000 a1 + 7fffffffffffffff27# CHECK-NEXT: 0000000000000005  {{.*}}           R_X86_64_32            0000000000000000 a1 - 128# CHECK-NEXT: 0000000000000005  {{.*}}           R_X86_64_64            0000000000000000 a2 - 129# CHECK-EMPTY:30# CHECK-NEXT: Relocation section '.crel.rodata' at offset {{.*}} contains 4 entries:31# CHECK-NEXT:     Offset             Info             Type               Symbol's Value  Symbol's Name + Addend32# CHECK-NEXT: 0000000000000000  {{.*}}           R_X86_64_PC32          0000000000000000 foo + 033# CHECK-NEXT: 000000000000000f  {{.*}}           R_X86_64_PC32          0000000000000000 foo + 3f34# CHECK-NEXT: 000000000000001f  {{.*}}           R_X86_64_PC64          0000000000000000 foo + 7f35# CHECK-NEXT: 0000000000000027  {{.*}}           R_X86_64_PC32          0000000000000000 _start - 1f8136# CHECK-EMPTY:37# CHECK-NEXT: Relocation section '.crelrodata2' at offset {{.*}} contains 2 entries:38# CHECK-NEXT:     Offset             Info             Type               Symbol's Value  Symbol's Name + Addend39# CHECK-NEXT: 0000000000000002  {{.*}}           R_X86_64_32            0000000000000000 .data + 040# CHECK-NEXT: 0000000000000008  {{.*}}           R_X86_64_32            0000000000000000 .data + 041# CHECK-EMPTY:42# CHECK-NEXT: Relocation section '.crelrodata16' at offset {{.*}} contains 1 entries:43# CHECK-NEXT:     Offset             Info             Type               Symbol's Value  Symbol's Name + Addend44# CHECK-NEXT: 0000000000000008  {{.*}}           R_X86_64_64            0000000000000000 rodata16 + 045# CHECK-EMPTY:46# CHECK-NEXT: Relocation section '.crelnoalloc' at offset {{.*}} contains 1 entries:47# CHECK-NEXT:     Offset             Info             Type               Symbol's Value  Symbol's Name + Addend48# CHECK-NEXT: 0000000000000000  {{.*}}           R_X86_64_32            0000000000000000 .text + 449 50## count * 8 + 4 + shift = 2*8+4+1 = 2151# CHECK:      Hex dump of section '.crelrodata2':52# CHECK-NEXT: 0x00000000 150b020a 18                         .53## count * 8 + 4 + shift = 1*8+4+3 = 1554# CHECK:      Hex dump of section '.crelrodata16':55# CHECK-NEXT: 0x00000000 0f0b0301 .56 57# A64BE:      0000000000000000  {{.*}}           R_AARCH64_NONE         0000000000000000 a0 + 058# A64BE-NEXT: 0000000000000001  {{.*}}           R_AARCH64_NONE         0000000000000000 a1 - 159# A64BE-NEXT: 0000000000000002  {{.*}}           R_AARCH64_NONE         0000000000000000 a2 - 160# A64BE-NEXT: 0000000000000004  {{.*}}           R_AARCH64_ABS32        0000000000000000 a3 + 400061# A64BE-NEXT: 0000000000000005  {{.*}}           R_AARCH64_ABS64        0000000000000000 a3 - 800000000000000062# A64BE-NEXT: 0000000000000005  {{.*}}           R_AARCH64_ABS64        0000000000000000 a1 + 7fffffffffffffff63# A64BE-NEXT: 0000000000000005  {{.*}}           R_AARCH64_ABS32        0000000000000000 a1 - 164# A64BE-NEXT: 0000000000000005  {{.*}}           R_AARCH64_ABS64        0000000000000000 a2 - 165# A64BE-EMPTY:66 67.globl _start68_start:69  ret70 71.section .text.1,"ax"72  ret73 74## Test various combinations of delta offset and flags, delta symbol index75## (if present), delta type (if present), delta addend (if present).76.data77.reloc .+0, BFD_RELOC_NONE, a078.reloc .+1, BFD_RELOC_NONE, a1-1  // same type79.reloc .+2, BFD_RELOC_NONE, a2-1  // same type and addend80.reloc .+4, BFD_RELOC_32, a3+0x400081.reloc .+5, BFD_RELOC_64, a3-0x8000000000000000  // same symbol index82.reloc .+5, BFD_RELOC_64, a1+0x7fffffffffffffff  // same offset and type; addend+=UINT64_MAX83.reloc .+5, BFD_RELOC_32, a1-1  // same offset and symbol index84.reloc .+5, BFD_RELOC_64, a2-1  // same offset and addend85.quad 086 87.section .rodata,"a"88.long foo - .89.space 15-490.long foo - . + 63  // offset+=1591.space 16-492.quad foo - . + 127  // offset+=1693.long _start - . - 806594 95.section rodata2,"a"96.space 297.reloc ., BFD_RELOC_32, .data98.space 699.reloc ., BFD_RELOC_32, .data100 101.section rodata16,"a"102.quad 0103.quad rodata16104 105.section noalloc106.long .text + 4107