aboutsummaryrefslogtreecommitdiff
path: root/bolt/test/AArch64/invalid-code-padding.s
blob: 4706e600621abb9983689d32ab2243816f816839 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# RUN: %clang %cflags %s -o %t.so -Wl,-q
# RUN: not llvm-bolt %t.so -o %t.bolt --fail-on-invalid-padding \
# RUN:   2>&1 | FileCheck %s
# CHECK: BOLT-ERROR: found 1 instance(s) of invalid code padding

  .text
  .align 2
  .global foo
  .type foo, %function
foo:
  cmp x0, x1
  b.eq .Ltmp1
  adrp x1, jmptbl
  add x1, x1, :lo12:jmptbl
  ldrsw x2, [x1, x2, lsl #2]
  br x2
  b .Ltmp1
.Ltmp2:
  add x0, x0, x1
  ret
  .size foo, .-foo

.Ltmp1:
  add x0, x0, x1
  b .Ltmp2

  # Dummy relocation to force relocation mode
  .reloc 0, R_AARCH64_NONE

  .section .rodata, "a"
  .align 2
  .global jmptbl
jmptbl:
  .word .text+0x28 - .