brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.7 KiB · ec1aceb Raw
96 lines · plain
1# RUN: rm -rf %t && mkdir %t && cd %t2 3# RUN: llvm-mc --filetype=obj --triple=loongarch32 -mattr=+relax %s -o %t.la324# RUN: llvm-jitlink --noexec \5# RUN:     -slab-allocate 100Kb -slab-address 0x0 -slab-page-size 16384 \6# RUN:     --check %s %t.la327 8# RUN: llvm-mc --filetype=obj --triple=loongarch64 -mattr=+relax %s -o %t.la649# RUN: llvm-jitlink --noexec \10# RUN:     -slab-allocate 100Kb -slab-address 0x0 -slab-page-size 16384 \11# RUN:     --check %s %t.la6412 13## Test that we can handle R_LARCH_ALIGN.14 15    .text16 17    .globl main,align4,align8,align16,align32,alignmax12,alignmax818    .type  main,@function19main:20    bl f21    .align 222align4:23    bl f24    .size align4, .-align425    .align 326align8:27    bl f28    .size align8, .-align829    .align 430align16:31    bl f32    .size align16, .-align1633    .align 534align32:35    bl f36    .size align32, .-align3237    .align 4,,1238alignmax12:39    bl f40    .size alignmax12, .-alignmax1241    .align 4,,842alignmax8:43    bl f44    .size alignmax8, .-alignmax845    .size main, .-main46 47    .globl f48f:49    ret50    .size f, .-f51 52# jitlink-check: main = 0x053# jitlink-check: align4 = 0x454# jitlink-check: align8 = 0x855# jitlink-check: align16 = 0x1056# jitlink-check: align32 = 0x2057# jitlink-check: alignmax12 = 0x3058## 3 nops (12 bytes) should be inserted to satisfy alignment.59## But the max bytes we can insert is 8. So alignment is ignored.60# jitlink-check: alignmax8 = 0x3461 62## main: bl f63# jitlink-check: (*{4}(main))[31:26] = 0x1564# jitlink-check: decode_operand(main, 0)[27:0] = (f - main)[27:0]65 66## align 4: bl f67# jitlink-check: (*{4}(align4))[31:26] = 0x1568# jitlink-check: decode_operand(align4, 0)[27:0] = (f - align4)[27:0]69 70## align8: bl f; nop71# jitlink-check: (*{4}(align8))[31:26] = 0x1572# jitlink-check: decode_operand(align8, 0)[27:0] = (f - align8)[27:0]73# jitlink-check: (*{4}(align8+4)) = 0x340000074 75## align16: bl f; nop; nop; nop76# jitlink-check: (*{4}(align16))[31:26] = 0x1577# jitlink-check: decode_operand(align16, 0)[27:0] = (f - align16)[27:0]78# jitlink-check: (*{4}(align16+4)) = 0x340000079# jitlink-check: (*{4}(align16+8)) = 0x340000080# jitlink-check: (*{4}(align16+12)) = 0x340000081 82## align32: bl f; nop; nop; nop83# jitlink-check: (*{4}(align32))[31:26] = 0x1584# jitlink-check: decode_operand(align32, 0)[27:0] = (f - align32)[27:0]85# jitlink-check: (*{4}(align32+4)) = 0x340000086# jitlink-check: (*{4}(align32+8)) = 0x340000087# jitlink-check: (*{4}(align32+12)) = 0x340000088 89## alignmax12: bl f90# jitlink-check: (*{4}(alignmax12))[31:26] = 0x1591# jitlink-check: decode_operand(alignmax12, 0)[27:0] = (f - alignmax12)[27:0]92 93## alignmax8: bl f94# jitlink-check: (*{4}(alignmax8))[31:26] = 0x1595# jitlink-check: decode_operand(alignmax8, 0)[27:0] = (f - alignmax8)[27:0]96