1## Test that we can handle R_RISCV_ALIGN. 2 3# RUN: rm -rf %t && mkdir %t && cd %t 4 5# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+relax %s -o %t.rv32 6# RUN: llvm-jitlink -noexec \ 7# RUN: -slab-allocate 100Kb -slab-address 0x0 -slab-page-size 4096 \ 8# RUN: -check %s %t.rv32 9 10# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+relax %s -o %t.rv64 11# RUN: llvm-jitlink -noexec \ 12# RUN: -slab-allocate 100Kb -slab-address 0x0 -slab-page-size 4096 \ 13# RUN: -check %s %t.rv64 14 15 .globl main,align4,align8,align16,align32 16 .size align4, 1 17 .size align8, 1 18 .size align16, 1 19 .size align32, 1 20main: 21 call f 22 .balign 4 23align4: 24 call f 25 .balign 8 26align8: 27 call f 28 .balign 16 29align16: 30 call f 31 .balign 32 32align32: 33 call f 34 .size main, .-main 35 36 .globl f 37f: 38 ret 39 .size f, .-f 40 41# jitlink-check: main = 0x0 42# jitlink-check: align4 = 0x4 43# jitlink-check: align8 = 0x8 44# jitlink-check: align16 = 0x10 45# jitlink-check: align32 = 0x20 46 47## main: jal f 48# jitlink-check: (*{4}(main))[11:0] = 0xef 49# jitlink-check: decode_operand(main, 1) = (f - main) 50 51## align 4: jal f 52# jitlink-check: (*{4}(align4))[11:0] = 0xef 53# jitlink-check: decode_operand(align4, 1) = (f - align4) 54 55## align8: jal f; nop 56# jitlink-check: (*{4}(align8))[11:0] = 0xef 57# jitlink-check: decode_operand(align8, 1) = (f - align8) 58# jitlink-check: (*{4}(align8+4)) = 0x13 59 60## align16: jal f; nop; nop; nop 61# jitlink-check: (*{4}(align16))[11:0] = 0xef 62# jitlink-check: decode_operand(align16, 1) = (f - align16) 63# jitlink-check: (*{4}(align16+4)) = 0x13 64# jitlink-check: (*{4}(align16+8)) = 0x13 65# jitlink-check: (*{4}(align16+12)) = 0x13 66 67## align32: jal f 68# jitlink-check: (*{4}(align32))[11:0] = 0xef 69# jitlink-check: decode_operand(align32, 1) = (f - align32) 70