brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.6 KiB · ddbf02c Raw
145 lines · plain
1# RUN: rm -rf %t && mkdir -p %t2# RUN: llvm-mc --triple=loongarch64 --filetype=obj -o %t/reloc.o %s3# RUN: llvm-rtdyld --triple=loongarch64 --verify --check=%s %t/reloc.o \4# RUN:     --map-section reloc.o,.got=0x21f00 \5# RUN:     --map-section reloc.o,.sec.large.pc=0x0000000012345000 \6# RUN:     --map-section reloc.o,.sec.large.got=0x44433333abcde000 \7# RUN:     --map-section reloc.o,.sec.dummy=0x4443333334567111 \8# RUN:     --dummy-extern abs=0x0123456789abcdef \9# RUN:     --dummy-extern external_data=0x123410 11    .text12    .globl main13    .p2align 214    .type   main,@function15main:16## Check R_LARCH_ABS_HI2017# rtdyld-check: *{4}(main) = 0x1513578c18    lu12i.w $t0, %abs_hi20(abs)19## Check R_LARCH_ABS_LO1220# rtdyld-check: *{4}(main + 4) = 0x03b7bd8c21    ori $t0, $t0, %abs_lo12(abs)22## Check R_LARCH_ABS64_LO2023# rtdyld-check: *{4}(main + 8) = 0x1668acec24    lu32i.d $t0, %abs64_lo20(abs)25## Check R_LARCH_ABS64_HI1226# rtdyld-check: *{4}(main + 12) = 0x0300498c27    lu52i.d $t0, $t0, %abs64_hi12(abs)28		ret29	  .size main, .-main30 31    .globl local_func32    .p2align 233    .type local_func,@function34local_func:35    ret36    .size local_func, .-local_func37 38    .globl local_func_call2639    .p2align 240local_func_call26:41## Check R_LARCH_B2642# rtdyld-check: decode_operand(local_func_call26, 0)[27:0] = \43# rtdyld-check:   (local_func - local_func_call26)[27:0]44    bl local_func45    .size local_func_call26, .-local_func_call2646 47    .globl local_func_call3648    .p2align 249local_func_call36:50## Check R_LARCH_CALL3651# rtdyld-check: decode_operand(local_func_call36, 1)[19:0] = \52# rtdyld-check:   ((local_func - local_func_call36) + \53# rtdyld-check:    (((local_func - local_func_call36)[17:17]) << 17))[37:18]54# rtdyld-check: decode_operand(local_func_call36 + 4, 2)[17:0] = \55# rtdyld-check:   (local_func - local_func_call36)[17:0]56    pcaddu18i $ra, %call36(local_func)57    jirl $ra, $ra, 058    .size local_func_call36, .-local_func_call3659 60    .globl test_pc_hi2061    .p2align 262test_pc_hi20:63## Check R_LARCH_PCALA_HI2064# rtdyld-check: decode_operand(test_pc_hi20, 1)[19:0] = \65# rtdyld-check:   (named_data - test_pc_hi20)[31:12] + \66# rtdyld-check:      named_data[11:11]67    pcalau12i $a0, %pc_hi20(named_data)68    .size test_pc_hi20, .-test_pc_hi2069 70    .globl test_pc_lo1271    .p2align 272test_pc_lo12:73## Check R_LARCH_PCALA_LO1274# rtdyld-check: decode_operand(test_pc_lo12, 2)[11:0] = \75# rtdyld-check:   (named_data)[11:0]76    addi.d $a0, $a0, %pc_lo12(named_data)77    .size test_pc_lo12, .-test_pc_lo1278 79    .globl test_got_pc_hi2080    .p2align 281test_got_pc_hi20:82## Check R_LARCH_GOT_PC_HI2083# rtdyld-check: decode_operand(test_got_pc_hi20, 1)[19:0] = \84# rtdyld-check:   (section_addr(reloc.o, .got)[31:12] - \85# rtdyld-check:    test_got_pc_hi20[31:12] + \86# rtdyld-check:    section_addr(reloc.o, .got)[11:11])87    pcalau12i $a0, %got_pc_hi20(external_data)88    .size test_got_pc_hi20, .-test_got_pc_hi2089 90    .globl test_got_pc_lo1291    .p2align 292test_got_pc_lo12:93## Check R_LARCH_GOT_PC_LO1294# rtdyld-check: decode_operand(test_got_pc_lo12, 2)[11:0] = \95# rtdyld-check:   (section_addr(reloc.o, .got)[11:0])96    ld.d $a0, $a0, %got_pc_lo12(external_data)97    .size test_gotoffset12_external, .-test_gotoffset12_external98 99    .globl named_data100    .p2align 4101    .type named_data,@object102named_data:103    .quad 0x2222222222222222104    .quad 0x3333333333333333105    .size named_data, .-named_data106 107    .section .sec.large.pc,"ax"108    .globl test_large_pc109test_large_pc:110## Code after link should be:111## 1a44444d pcalau12i $t1, 139810112## 02c4440c addi.d    $t0, $zero, 273113## 1666666c lu32i.d   $t0, 209715114## 0311118c lu52i.d   $t0, $t0, 1092115 116# rtdyld-check: *{4}(test_large_pc) = 0x1a44444d117    pcalau12i $t1, %pc_hi20(.sec.dummy)118# rtdyld-check: *{4}(test_large_pc + 4) = 0x02c4440c119    addi.d $t0, $zero, %pc_lo12(.sec.dummy)120# rtdyld-check: *{4}(test_large_pc + 8) = 0x1666666c121    lu32i.d $t0, %pc64_lo20(.sec.dummy)122# rtdyld-check: *{4}(test_large_pc + 12) = 0x0311118c123    lu52i.d $t0, $t0, %pc64_hi12(.sec.dummy)124 125    .section .sec.large.got,"ax"126    .globl test_large_got127test_large_got:128## Code after link should be:129## 1aa8688d pcalau12i $t1, 344900130## 02fc000c addi.d    $t0, $zero, -256131## 1799996c lu32i.d   $t0, -209717132## 032eed8c lu52i.d   $t0, $t0, -1093133 134# rtdyld-check: *{4}(test_large_got) = 0x1aa8688d135    pcalau12i $t1, %got_pc_hi20(external_data)136# rtdyld-check: *{4}(test_large_got + 4) = 0x02fc000c137    addi.d $t0, $zero, %got_pc_lo12(external_data)138# rtdyld-check: *{4}(test_large_got + 8) = 0x1799996c139    lu32i.d $t0, %got64_pc_lo20(external_data)140# rtdyld-check: *{4}(test_large_got + 12) = 0x032eed8c141    lu52i.d $t0, $t0, %got64_pc_hi12(external_data)142 143    .section .sec.dummy,"a"144    .word 0145