1## Test that we can handle R_RISCV_ALIGN. 2 3# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+relax,+c %s -o %t.rv32 4# RUN: llvm-jitlink -noexec \ 5# RUN: -slab-allocate 100Kb -slab-address 0x0 -slab-page-size 4096 \ 6# RUN: -check %s %t.rv32 7 8# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+relax,+c %s -o %t.rv64 9# RUN: llvm-jitlink -noexec \ 10# RUN: -slab-allocate 100Kb -slab-address 0x0 -slab-page-size 4096 \ 11# RUN: -check %s %t.rv64 12 13# RUN: llvm-mc -filetype=obj -triple=riscv32 -mattr=+relax,+zca %s -o %t.rv32zca 14# RUN: llvm-jitlink -noexec \ 15# RUN: -slab-allocate 100Kb -slab-address 0x0 -slab-page-size 4096 \ 16# RUN: -check %s %t.rv32zca 17 18# RUN: llvm-mc -filetype=obj -triple=riscv64 -mattr=+relax,+zca %s -o %t.rv64zca 19# RUN: llvm-jitlink -noexec \ 20# RUN: -slab-allocate 100Kb -slab-address 0x0 -slab-page-size 4096 \ 21# RUN: -check %s %t.rv64zca 22 23 .globl main,align2,align4,align8,align16,align32 24 .type main,@function 25main: 26 jump f, t0 27 .balign 2 28align2: 29 jump f, t0 30 .size align2,.-align2 31 .balign 4 32align4: 33 jump f, t0 34 .size align4,.-align4 35 .balign 8 36align8: 37 jump f, t0 38 .size align8,.-align8 39 .balign 16 40align16: 41 jump f, t0 42 .size align16,.-align16 43 .size main, .-main 44 45 .globl f 46f: 47 ret 48 .size f, .-f 49 50# jitlink-check: main = 0x0 51# jitlink-check: align2 = 0x2 52# jitlink-check: align4 = 0x4 53# jitlink-check: align8 = 0x8 54# jitlink-check: align16 = 0x10 55 56## main: c.j f 57# jitlink-check: (*{2}(main))[1:0] = 0x1 58# jitlink-check: (*{2}(main))[15:13] = 0x5 59# jitlink-check: decode_operand(main, 0)[11:0] = (f - main)[11:0] 60 61## align2: c.j f 62# jitlink-check: (*{2}(align2))[1:0] = 0x1 63# jitlink-check: (*{2}(align2))[15:13] = 0x5 64# jitlink-check: decode_operand(align2, 0)[11:0] = (f - align2)[11:0] 65 66## align4: c.j f; c.nop 67# jitlink-check: (*{2}(align4))[1:0] = 0x1 68# jitlink-check: (*{2}(align4))[15:13] = 0x5 69# jitlink-check: decode_operand(align4, 0)[11:0] = (f - align4)[11:0] 70# jitlink-check: (*{2}(align4+2)) = 0x1 71 72## align8: c.j f; nop; c.nop 73# jitlink-check: (*{2}(align8))[1:0] = 0x1 74# jitlink-check: (*{2}(align8))[15:13] = 0x5 75# jitlink-check: decode_operand(align8, 0)[11:0] = (f - align8)[11:0] 76# jitlink-check: (*{4}(align8+2)) = 0x13 77# jitlink-check: (*{2}(align8+6)) = 0x1 78 79## align16: c.j f 80# jitlink-check: (*{2}(align16))[1:0] = 0x1 81# jitlink-check: (*{2}(align16))[15:13] = 0x5 82# jitlink-check: decode_operand(align16, 0)[11:0] = (f - align16)[11:0] 83